ROS 2 工作空间编译与运行
ROS 2 工作空间环境加载、colcon 构建、启动和测试的通用检查清单。
- 问题
- ROS 2 工作空间环境加载、colcon 构建、启动和测试的通用检查清单。
- 环境
- ROS2 · colcon · launch
- 状态
- 待发布
- 首次发布
- 2026年7月13日
- 最后更新
- 2026年8月10日
- 预计阅读
- 2 分钟
说明:版本边界 本文命令以 ROS 2 Humble 的目录为例。Foxy 已结束支持;已有工程可以在隔离的原始环境中复现,新建工程应先确认目标 ROS 2 发行版的支持状态和依赖兼容性。
先加载基础环境,再加载覆盖层
在终端中先加载系统安装的 ROS 2,再加载已构建工作空间的覆盖层。首次构建前没有 install/setup.bash,因此不要预先执行第二条命令。
source /opt/ros/humble/setup.bashsource install/setup.bash同一个终端不要混用不兼容的 ROS 2 发行版或无序叠加多个工作空间。出现包名、接口或库版本异常时,使用新的终端从基础环境开始加载,通常比继续修补当前 shell 更可靠。
构建、选择性构建和测试
# 在工作空间根目录运行colcon build --symlink-install
# 只构建一个功能包及其直接目标colcon build --packages-select <package_name>
# 运行测试并读取详细结果colcon testcolcon test-result --verbose--symlink-install 有利于调试 Python 脚本和已正确安装的 launch、配置等资源;C++ 源文件变更后仍必须重新编译。构建完成后重新 source install/setup.bash,确保当前终端使用最新产物。
启动方式
| 方式 | 入口 | 适用场景 |
|---|---|---|
| 单节点 | ros2 run <package> <executable> |
单模块调试 |
| Launch | ros2 launch <package> <launch_file> |
多节点、参数与整体启动 |
| 组件容器 | ros2 component |
需要同进程组合的节点 |
| 生命周期节点 | ros2 lifecycle |
驱动和设备状态管理 |
日常启动优先使用 ros2 run 或 ros2 launch,让包索引、资源路径和命名空间按 ROS 2 约定解析。直接运行 install/ 内的可执行文件只适合确认安装结果。
最小验证顺序
ros2 pkg executables <package>能列出目标可执行文件。- 启动后用
ros2 node list确认节点出现。 - 用
ros2 topic list和ros2 topic echo <topic>检查数据流。 - 在 CI 或交付前执行
colcon test,并保存test-result的失败详情。
通信模型和 QoS 排查要点见 ROS 2 节点通信基础。