You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

roslaunch启动apriltag_ros节点返回退出码2 rosrun运行正常如何解决

问题根因

roslaunch启动ROS节点时,会自动向启动命令追加__name:=<节点名>、__log:=<日志路径>两类内置重映射参数,用于配置节点的基础属性。你的代码直接使用argparse解析全部命令行参数,未过滤ROS自带的特殊参数,导致argparse将这两个参数识别为非法输入,触发错误返回退出码2。
直接用rosrun运行节点时不会自动追加上述特殊参数,因此不会触发报错。

修复方案

1. 启用ROS参数过滤

取消你代码中# rospy.myargv(argv=sys.argv)这行的注释,该方法会自动过滤掉命令行中ROS自带的特殊参数。

2. 修改参数解析逻辑

调整argparse的入参,只传入过滤后的非ROS参数,修改后的参数解析部分代码如下:

# 过滤ROS内置特殊参数
filtered_argv = rospy.myargv(argv=sys.argv)
# 仅将过滤后的业务参数传入argparse解析,filtered_argv[0]为脚本文件名,无需传入
options = parser.parse_args(args=filtered_argv[1:])

修改完成后重新编译工作空间,再执行roslaunch即可正常启动节点。

内容的提问来源于stack exchange,提问作者NOVA1323

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:15:02