通过python启动参数配置ros参数

在基于python进行ROS程序开发时,往往遇到这样的问题:想要利用pycharm、vscode等工具对代码进行单步调试,但是程序中有很多参数需要通过roslaunch才能加载,配置roslaunch的调试又有点费劲。

因此,我们可以直接将roslaunch中的参数作为python的启动参数传入 ,然后直接通过python xxx.py进行启动,从而避免了配置roslaunch调试的复杂问题。

以如下launch文件为例

bash 复制代码
    <node name="NodeName" pkg="PkgName" type="Node.py" ns="uav1">
        <param name="uav_id" value="1" />
        <param name="uav_sum" value="2" />
    </node>

该launch文件转写为python脚本启动形式为:

bash 复制代码
python Node.py __ns:=uav1 _uav_id:=1 _uav_sum:=2

读者可参考此形式自行转写。

此外,如果python程序中本身就带有一些通过argparse读取的参数,可以混合书写这些参数,例如:

bash 复制代码
python Node.py --trial=317 --epoch=100 --use_tensorrt=1 __ns:=uav1 _uav_id:=1 _uav_sum:=2

不过需要注意的是,argparse是无法区分正常的argparse参数和ros参数的,我们需要将

bash 复制代码
args = parser().parse_args()

替换为

bash 复制代码
args = parser().parse_args(rospy.myargv()[1:])

rospy.myargv()[1:]为ros提供的接口,可以自动过滤掉ros相关的参数,并将其他参数返回

相关推荐
chushiyunen1 小时前
python轻量级框架flask、做桌面小程序
python·小程序·flask
毕设源码-朱学姐2 小时前
【开题答辩全过程】以 基于java的书店用户管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
kyle~2 小时前
C++--- dlsym 调用封装好的算法动态库的核心工具 <dlfcn.h>
开发语言·c++·算法
qwehjk20082 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python
一晌小贪欢2 小时前
Python办公自动化指南:Pandas与Openpyxl的全面比较与选择
开发语言·python·pandas·python基础·python入门·python小白
于先生吖2 小时前
2026 新版上门回收系统源码 JAVA 同城服务平台搭建指南
java·开发语言
MX_93592 小时前
Spring整合Web环境实现思路
java·开发语言·后端·spring
七夜zippoe2 小时前
边缘计算:Python在IoT中的应用
python·物联网·esp32·边缘计算·iot
2301_818419012 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python