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

相关推荐
外收内放9 分钟前
Python基础语法练习题(拓展2)
python·pygame
“AI国潮设计-小江”14 分钟前
《Python+SDXL实战:用ControlNet批量生成“英歌舞草莓蛋糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc
为啥全要学18 分钟前
大模型流式输出过滤敏感词
开发语言·python
小溪学编程19 分钟前
C语言篇:语言结构
c语言·开发语言·算法
老王爱玩车20 分钟前
字符串和字符串函数
c语言·开发语言·数据结构·学习
2601_9628857227 分钟前
如何用 Python 统计 A 股连续涨停(几连板)?
java·linux·python
Carl_奕然37 分钟前
【智能体】Loop 的四种设计模式之:Event-Driven Loop(2026 最新版)
人工智能·驱动开发·python·设计模式
mlidongfeng39 分钟前
【学习笔记】【NV】GIN
开发语言·php
Carl_奕然1 小时前
【智能体】Loop 的四种设计模式之:Hill Climbing Loop(2026 最新版)
人工智能·python·设计模式
Omics Pro1 小时前
~30,000+引用!理论2005,R包2008,多组学集成AI增强
开发语言·数据库·人工智能·算法·机器学习·自然语言处理·r语言