通过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相关的参数,并将其他参数返回

相关推荐
yaoxin52112327 分钟前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
阿里嘎多学长1 小时前
2026-07-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管
中微极客1 小时前
解锁LLM开发全栈能力:Python + LangChain + RAG 工程实战指南
人工智能·python·langchain
hhzz1 小时前
Barbershop:基于GAN和分割Mask的图像合成技术——从理论到实战全解析
图像处理·人工智能·python·深度学习·计算机视觉
charlie1145141912 小时前
Cinux: 为大内核铺路
开发语言·c++·操作系统·现代c++
2501_914245932 小时前
C语言设计模式详解:从理论到实践的完整指南
c语言·开发语言·设计模式
Hazenix2 小时前
Go 指南:一篇文章速通 Golang
开发语言·后端·golang
灯澜忆梦2 小时前
GO_复合类型---指针
开发语言·后端·golang
Ulyanov2 小时前
雷达导引头Python仿真框架:GPU加速、6-DOF模型与半实物仿真接口
开发语言·python·雷达信号处理·雷达导引头
列逍3 小时前
博客系统测试
自动化测试·python·性能测试