Skip to content

如何在 Ubuntu 中设置 MoveIt 2 Docker 容器

本指南将逐步介绍如何快速设置一个包含 MoveIt 2 依赖的 Docker 容器。它附带一个 docker-compose 配置文件,让你能够快速上手 MoveIt。本指南面向那些希望快速建立一个独立环境来使用 MoveIt、且无需过多配置的用户。在本指南中,我们将设置一个 ROS 2 Rolling 环境。

  • 如何使用 docker compose 运行 MoveIt 2 Docker 容器和教程
  1. 安装 Docker 和 docker compose(链接可在“要求”部分找到),并务必遵循 Linux 安装后说明。如果你未完成这些额外步骤,则需要在所有 docker 命令前加上 sudo。

  2. 打开一个终端会话并下载 docker-compose.yml:

    Terminal window
    wget https://raw.githubusercontent.com/moveit/moveit2_tutorials/main/.docker/docker-compose.yml
  3. 启动容器(如果使用 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 再次启动它。

  4. 你现在应该已位于 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 命令)。