ROS Docker 下使用的一点小得。

in 工作记录 with 0 comment

image.png

最近经常需要轻度使用下 ROS,ros2 和 ros1 都要用,我本身又用惯了 Windows,所以用 Docker 是比较好的解决方案, 桌面需求用 Web-vnc 解决。

所使用项目:

//ros2
https://github.com/Tiryoh/docker-ros2-desktop-vnc

//ros
https://github.com/Tiryoh/docker-ros-desktop-vnc

Tiryoh 提供了几乎所有版本的,多平台的 Base Image,所以我这里相当是提供了个具体的使用经验分享。

用 ROS2:humble 版本为例子。

源:

https://github.com/Tiryoh/docker-ros2-desktop-vnc/blob/master/humble

由 DockerFile 可以看到作者是按 ubuntu:jammy-20230804 作为基础镜像, 一点点装ROS进去的,同时也装了 Tigervnc, 因为有很清晰的 DockerFileentrypoint.sh, 你也可以自己定制一个 Image。

例如在镜像中装上 bridge :

FROM tiryoh/ros2-desktop-vnc:humble

RUN apt-get update

RUN apt-get install ros-humble-foxglove-bridge -y

RUN apt-get install ros-humble-rosbridge-server -y

使用中遇到的一个问题:

有的环境下(例如比较老的CentOS),VNC会启动异常,导致无法进入 Desktop, 这个问题的解决重点在 entrypoint.sh

image.png

Supervisor 是个进程管理工具,可以看到是在这一步中启动的VNC

gosu '$USER', 是转换成当前用户执行,如果你的VNC启动出现问题,可以试着用root启动试试。