[具身智能-715]:ROS2 运行功能包可执行文件完整教程

📅 2026/8/2 18:34:51 👁️ 阅读次数 📝 编程学习
[具身智能-715]:ROS2 运行功能包可执行文件完整教程

前置前提(必须全部满足,否则找不到程序)

  1. 工作空间根目录执行编译

bash

运行

cd ~/yahboomcar_ros2_ws/yahboomcar_ws colcon build --symlink-install
  1. 刷新环境变量(新开终端必执行)

bash

运行

source install/setup.bash

永久方案(一次配置)

bash

运行

echo "source ~/yahboomcar_ros2_ws/yahboomcar_ws/install/setup.bash" >> ~/.bashrc source ~/.bashrc

方式 1:ros2 run (直接启动单个节点,最常用)

语法

bash

运行

ros2 run 功能包名 可执行文件名

结合你的工程实例

你的包:yahboomcar_ctrl可执行文件:yahboom_joy_M1

bash

运行

ros2 run yahboomcar_ctrl yahboom_joy_M1

额外同时启动 joy 手柄原生节点示例:

bash

运行

ros2 run joy joy_node

快速查找【包内有哪些可执行文件】

bash

运行

# 方式1 ros2 pkg executables yahboomcar_ctrl # 方式2,直接浏览文件夹 ls install/yahboomcar_ctrl/lib/yahboomcar_ctrl/

⚠️ Python 包踩坑重点: Python 脚本必须在package.xmlsetup.py正确注册为入口程序,否则 ros2 run 无法识别。


方式 2:ros2 launch(推荐机器人使用,一键批量启动多个节点)

你的工程自带 launch 启动文件一次性启动 joy_node + 手柄控制节点 + 底盘驱动,不用开多个终端!

语法

bash

运行

ros2 launch 功能包名 launch启动文件名

你的小车遥控命令

bash

运行

ros2 launch yahboomcar_ctrl yahboomcar_joy_launch.py

launch 文件支持自动拉起多个节点,还能配置参数、环境变量,ROS2 机器人项目标准用法。


方式 3:直接运行二进制文件(底层原生方式,极少用)

不推荐日常开发,仅调试使用

bash

运行

# C++程序 ./install/yahboomcar_ctrl/lib/yahboomcar_ctrl/yahboom_joy_M1 # Python脚本 python3 install/yahboomcar_ctrl/lib/yahboomcar_ctrl/yahboom_joy_M1

高频故障排查(你大概率会遇到)

故障 1:ros2 run提示 “Package not found”

原因:没有执行source install/setup.bash解决:执行 source;新开终端每次都要加载环境

故障 2:包找到了,但提示 Executable not found

  1. Python 脚本:检查 setup.py 中entry_points是否配置
  2. C++ 程序:检查 CMakeLists 是否添加install(TARGETS ...)
  3. 编译是否成功,有没有报错

故障 3:运行 launch 后话题看不到

  1. 确认编译无报错
  2. 确认设备权限(手柄/dev/input/js0

bash

运行

sudo chmod 666 /dev/input/js0

补充实用查询命令

bash

运行

# 查看本机所有已识别的ROS2功能包 ros2 pkg list # 查看指定包信息 ros2 pkg describe yahboomcar_ctrl # 查看正在运行的话题(验证节点正常工作) ros2 topic list