笔记 / 返回列表

机器人系统

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,因此不要预先执行第二条命令。

Terminal window
source /opt/ros/humble/setup.bash
source install/setup.bash

同一个终端不要混用不兼容的 ROS 2 发行版或无序叠加多个工作空间。出现包名、接口或库版本异常时,使用新的终端从基础环境开始加载,通常比继续修补当前 shell 更可靠。

构建、选择性构建和测试

Terminal window
# 在工作空间根目录运行
colcon build --symlink-install
# 只构建一个功能包及其直接目标
colcon build --packages-select <package_name>
# 运行测试并读取详细结果
colcon test
colcon 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/ 内的可执行文件只适合确认安装结果。

最小验证顺序

  1. ros2 pkg executables <package> 能列出目标可执行文件。
  2. 启动后用 ros2 node list 确认节点出现。
  3. 用 ros2 topic list 和 ros2 topic echo <topic> 检查数据流。
  4. 在 CI 或交付前执行 colcon test,并保存 test-result 的失败详情。

通信模型和 QoS 排查要点见 ROS 2 节点通信基础。

SEARCH / QUICK JUMP

搜索工程档案

↑↓ 选择 · Enter 打开 · Esc 关闭