[具身智能-715]:ROS2 运行功能包可执行文件完整教程
前置前提(必须全部满足,否则找不到程序)
- 在工作空间根目录执行编译
bash
运行
cd ~/yahboomcar_ros2_ws/yahboomcar_ws colcon build --symlink-install- 刷新环境变量(新开终端必执行)
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.xml、setup.py正确注册为入口程序,否则 ros2 run 无法识别。
方式 2:ros2 launch(推荐机器人使用,一键批量启动多个节点)
你的工程自带 launch 启动文件,一次性启动 joy_node + 手柄控制节点 + 底盘驱动,不用开多个终端!
语法
bash
运行
ros2 launch 功能包名 launch启动文件名你的小车遥控命令
bash
运行
ros2 launch yahboomcar_ctrl yahboomcar_joy_launch.pylaunch 文件支持自动拉起多个节点,还能配置参数、环境变量,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
- Python 脚本:检查 setup.py 中
entry_points是否配置 - C++ 程序:检查 CMakeLists 是否添加
install(TARGETS ...) - 编译是否成功,有没有报错
故障 3:运行 launch 后话题看不到
- 确认编译无报错
- 确认设备权限(手柄
/dev/input/js0)
bash
运行
sudo chmod 666 /dev/input/js0补充实用查询命令
bash
运行
# 查看本机所有已识别的ROS2功能包 ros2 pkg list # 查看指定包信息 ros2 pkg describe yahboomcar_ctrl # 查看正在运行的话题(验证节点正常工作) ros2 topic list