如何在 Ubuntu 中设置 MoveIt 2 Docker 容器
本指南将逐步介绍如何快速设置一个包含 MoveIt 2 依赖的 Docker 容器。它附带一个 docker-compose 配置文件,让你能够快速上手 MoveIt。本指南面向那些希望快速建立一个独立环境来使用 MoveIt、且无需过多配置的用户。在本指南中,我们将设置一个 ROS 2 Rolling 环境。
- 如何使用
docker compose运行 MoveIt 2 Docker 容器和教程
- Ubuntu 22.04 或 24.04
- 在 Ubuntu 上安装 Docker
- Docker 的 NVIDIA 驱动
- docker compose(如果尚未通过 Docker Desktop 安装)
-
安装 Docker 和 docker compose(链接可在“要求”部分找到),并务必遵循 Linux 安装后说明。如果你未完成这些额外步骤,则需要在所有
docker命令前加上sudo。 -
打开一个终端会话并下载
docker-compose.yml:Terminal window wget https://raw.githubusercontent.com/moveit/moveit2_tutorials/main/.docker/docker-compose.yml -
启动容器(如果使用 compose V1,可能需要将
docker-compose用连字符连接):Terminal window DOCKER_IMAGE=main-rolling-tutorial-source docker compose run --rm --name moveit2_container gpu你可以将
DOCKER_IMAGE替换为其他 Docker 镜像名称,例如main-jazzy-tutorial-source或humble-humble-tutorial-source。其命名约定为<MoveIt 分支名>-<ROS 发行版名>-tutorial-source。同样,如果你不想使用 NVIDIA GPU 驱动,可以将
gpu服务名替换为cpu;也可以通过替换moveit2_container来更改容器名称。--rm参数会在你停止或退出容器时自动移除容器;否则你可以将修改后的容器保留在磁盘上,并使用docker start moveit2_container再次启动它。 -
你现在应该已位于 Docker 容器内的工作区目录中。请继续尝试其中一个启动命令,例如
ros2 launch moveit2_tutorials demo.launch.py,并完成在物体周围规划和使用 MoveIt Task Constructor 实现抓取与放置教程。如果你想通过另一个终端进入容器,请使用:
Terminal window docker exec -it moveit2_container /bin/bash
-
有关 MoveIt 相关的 Docker 最佳实践的更多信息,请参阅 Vatan Aksoy Tezer 和 Brennand Pierce 撰写的这篇博客文章。
-
面向
rolling、jazzy和humble的带标签镜像,基于 这里 的 MoveIt 2 Docker 镜像构建。 -
你可以在 这里 找到更多 MoveIt 2 Docker 容器的带标签镜像。这些镜像与 ROS 2 版本发布相对应。容器的
release版本提供通过二进制文件安装 MoveIt 2 的环境。Docker 镜像的source版本则会从源码构建 MoveIt 2。你可以通过将DOCKER_IMAGE环境变量替换为上面链接中的标签名(如main-rolling-tutorial-source)来使用这些镜像中的任何一个,但必须改用这个 docker-compose.yml(只需将其复制到其他位置,并在那里运行你的docker compose命令)。