ROS in Docker

 主要参考 An Updated Guide to Docker and ROS 2

Docker 安装

Docker Desktop 为了统一性,在 Linux 上为虚拟机,请安装 Docker Engine:FAQs for Docker Desktop for Linux

管理容器和镜像使用 VsCode 的 Docker 插件就够了。

Dockerfile 编写

参考 turtlebot3_behavior_demos_dockerfile

osrf镜像 https://github.com/osrf/docker_images

通常 osrf 开发,ros官方生产部署。

base 层从现有镜像开始,适配项目所需环境(设备驱动,功能包依赖)。

overlay 层将代码复制到镜像内,一般用于部署。

dev 层适配项目开发环境,将代码直接映射至容器内。

可能会用到的实用工具参考 https://github.com/sskorol/ros2-humble-docker-dev-template

docker-compose.yml

参考 turtlebot3_behavior_docker_compose

根据镜像层分为三个服务,将配置设置分开,使用时仅需启动对应的一个服务。

如果是部署,则基于 overlay 层配置,编写 command 参数启动相应服务。

如果是开发,则启动 dev 层服务。

如果需要用到显卡

https://github.com/dusty-nv/jetson-containers

https://github.com/niladut/ros2-docker-workspace