Docker ROS 2 开发环境
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/docker-ros2-development-4wa1。
技能介绍
问题:本地 ROS 2 环境经常“能跑,但难复现”
ROS 2 开发依赖 colcon 工作区、DDS 发现、节点、工具链与设备驱动。直接在主机装依赖容易遇到版本漂移,多机器人系统里容器间通信失败、rviz2 无显示、摄像头/LiDAR 无法透传、CI 构建缓存低效等问题尤其常见。该技能面向的是“用容器把开发环境和部署环境对齐”的工程问题。
工作方式:围绕 Docker 与 ROS 2 工具链生成配置
它会把任务拆成几类可落地的输出:
- 为 ROS 2 workspace 编写 Dockerfile,关注
colcon build的依赖安装与层缓存。 - 用 docker-compose 组织多容器机器人系统,处理服务名、网络、端口和环境变量。
- 排查
CycloneDDS/FastDDS在容器间的 DDS discovery 失败,而不是只把节点跑起来。 - 为感知节点配置 NVIDIA Container Toolkit GPU 透传,并处理
X11/Wayland显示转发,让rviz2、rqt可用。 - 为相机、LiDAR、串口设备规划 USB device passthrough。
- 基于 Docker 构建 CI/CD 流水线、测试运行器,以及 VS Code 的 devcontainer 配置。
- 结合官方 OSRF 镜像的分层选择原则,尽量使用满足依赖的较小基础镜像。
适用边界
适合需要可复现开发容器、多节点调试、设备透传和 CI 化的 ROS 2 团队;不适合替代 ROS 2 节点算法本身,也不保证在缺失 GPU、显示服务器或设备权限的平台上直接完成硬件联调。
使用场景
- 在本地用 docker-compose 拉起多个 ROS 2 节点,排查 CycloneDDS 跨容器发现失败。
- 为感知节点配置 NVIDIA 容器透传,并转发 X11 显示让 rviz2 能打开。
- 把 colcon workspace 构建成带缓存的 Docker 镜像,用于 CI 中的构建和测试。
- 为 VS Code 配置 devcontainer,安装 ROS 2 扩展并复用统一开发环境。
适合人员
- 负责 ROS 2 机器人节点联调的机器人工程师,需要可复现的容器化调试环境。
- 维护 CI/CD 流水线的 DevOps 工程师,要把 colcon 构建与测试跑在 Docker 中。
- 使用 rviz2、rqt 和传感器设备的嵌入式/感知工程师,需要显示与 USB 设备透传配置。
- 在 VS Code 中做 ROS 2 开发的软件工程师,需要 devcontainer 统一扩展和环境。