在 Ubuntu 24.04 中使用 Docker 运行 ROS 2 Humble 是最稳妥的方案,能完美绕过系统版本不兼容的问题。这里为你整理了一份"开箱即用"的配置流程。
- 安装并配置 Docker
如果你的系统尚未安装 Docker,执行以下命令:
bash
复制
安装 Docker
sudo apt update
sudo apt install docker.io
将当前用户加入 docker 组(避免每次输 sudo)
sudo usermod -aG docker $USER
重新登录或重启终端生效
newgrp docker
验证安装:docker --version
- 拉取 ROS 2 Humble 镜像
直接拉取官方预构建的桌面版镜像(内含 RViz、Gazebo 等 GUI 工具):
bash
复制
docker pull osrf/ros:humble-desktop
若需极简版(仅命令行),可改用 humble-ros-base。
- 启动容器(完整开发配置)
为了在容器内进行开发并显示图形界面(如 Rviz),使用以下命令启动:
bash
复制
允许 Docker 访问 X11 图形服务
xhost +local:docker
启动 Humble 容器(推荐配置)
docker run -it --rm
--name ros2_humble
--network=host \ # 使用主机网络,方便与宿主机通信
--env="DISPLAY=KaTeX parse error: Expected 'EOF', got '#' at position 17: ...ISPLAY" \ #̲ 传递显示变量 --env...HOME/ros2_ws:/root/ros2_ws" \ # 挂载工作空间(宿主机:容器)
osrf/ros:humble-desktop
bash
- 容器内验证环境
进入容器后,执行以下命令测试环境:
bash
复制
加载环境(官方镜像通常已自动加载,手动执行更保险)
source /opt/ros/humble/setup.bash
验证版本
ros2 --version # 应输出: ros2 version humble
测试小乌龟(需图形支持)
ros2 run turtlesim turtlesim_node
如果能看到小乌龟窗口,说明 GUI 和 ROS 环境均配置成功 。
- 开发工作流建议
代码编辑:在宿主机(Ubuntu 24.04)上用 VSCode 编辑 ~/ros2_ws下的代码。
编译运行:在 Docker 容器内执行 colcon build和 ros2 run。
多终端:如需新开终端进入正在运行的容器,使用:
bash
复制
docker exec -it ros2_humble bash
⚠️ 常见问题排查
GUI 无法显示:确保宿主机已安装 X11,并正确执行了 xhost +local:docker。
网络不通:上述命令使用了 --network=host,容器与宿主机网络互通。若使用 bridge 模式,需注意端口映射。
性能优化:如需 GPU 加速(如运行 Gazebo),需额外添加 --gpus all参数(需提前安装 NVIDIA Container Toolkit)。
此方案将 Humble 环境完全隔离在容器中,既利用了 Ubuntu 24.04 的新特性,又保证了 ROS 2 项目的稳定运行