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

BeagleBone Black运行ROS项目launch文件报节点路径错误求助

错误诱因
  • 功能包名称拼写错误:launch文件中pkg属性填写的是pulse_sensor,但实际工作空间下的功能包文件夹名为puls_sensor(缺少字母e),ROS无法匹配到对应功能包,这是最核心的错误原因。
  • 节点执行文件名拼写错误:launch文件中第三个节点的type属性写为do_filter__calc.py(两个连续下划线),与实际文件名do_filter_calc.py不一致。
  • Python脚本未配置可执行权限:存放在scripts目录下的.py节点文件如果没有执行权限,ROS无法识别为可执行节点。
  • CMakeLists.txt未正确配置脚本安装规则:功能包的CMakeLists.txt没有声明scripts目录下的Python脚本为可执行安装项,编译后ROS无法索引到节点文件。
  • 脚本缺少shebang声明:Python脚本首行未添加对应Python版本的shebang声明,系统无法识别脚本的执行环境。
排查解决步骤
    1. 修正功能包名称拼写,两种方案二选一:
    • 方案1:将launch文件中所有pkg = "pulse_sensor"修改为pkg = "puls_sensor",和实际文件夹名保持一致
    • 方案2:将~/catkin_ws/src/下的puls_sensor文件夹重命名为pulse_sensor,和launch中的包名匹配
    1. 修正节点文件名拼写:将launch文件中第三个节点的type="do_filter__calc.py"修改为type="do_filter_calc.py",删除多余的下划线。
    1. 给Python脚本添加可执行权限,进入scripts目录执行命令:
    chmod +x *.py
    
    1. 检查Python脚本首行声明:确保所有.py节点文件的第一行添加了对应Python版本的shebang,ROS Melodic默认使用Python2的话写#!/usr/bin/env python2,使用Python3的话写#!/usr/bin/env python3。
    1. 修正CMakeLists.txt配置:打开功能包下的CMakeLists.txt,找到catkin_install_python相关配置段,取消注释并添加所有脚本文件:
    catkin_install_python(PROGRAMS
      scripts/fotopletysmograf.py
      scripts/lp_filter.py
      scripts/do_filter_calc.py
      scripts/evaluate_data.py
      DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    )
    
    同时确认package.xml中已添加<exec_depend>python</exec_depend>(使用Python3则改为<exec_depend>python3</exec_depend>)。
    1. 重新编译工作空间:回到catkin_ws根目录执行编译并刷新环境:
    catkin_make
    source devel/setup.bash
    
    1. 验证节点可访问性:编译完成后执行以下命令验证ROS是否能找到节点,不报错即为配置正常:
    rospack find puls_sensor # 替换为你最终使用的功能包名
    rosrun puls_sensor fotopletysmograf.py --help
    

内容的提问来源于stack exchange,提问作者Nicholai Mørch Rindarøy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:00