使用Docker配置ROS noetic环境
1. 提要
最近需要将一段感知代码移植到实验室的pipeline上进行测试,然而之前一直在使用ROS_melodic,原始感知代码目前只在melodic上测试成功,为了实验室其他用noetic的老哥们能测试,就想搭建一个noetic的docker来尝试一下同样的代码能否在noetic上编译成功。(借机学习一下docker)
2. 安装过程
2.1 安装Docker
这一步基本参考Docker-从入门到实践[1]的教程,最后在测试安装是否成功时遇到了permission相关的问题,最终通过下面这行代码扩充权限解决:
1
sudo chmod 666 /var/run/docker.sock
首先下载ROS container镜像: 1
docker pull ros
1
2
3docker pull ros:noetic
## 如果需要下载noetic全部功能:
# docker pull osrf/ros:noetic-desktop-full1
docker run -it ros:noetic
roscore
,如果成功就表示配置完成啦!
3. 基本操作
首先引入一下docker的基本概念,主要是镜像(image)、容器(container)
的概念。这里可以将镜像理解为c++中定义的类的概念,而容器是该类实例化之后的对象。在上一章中所提到的docker run
的操作就可以理解为根据提供的镜像创建一个容器。运行选项-it
的含义如下:
通过vscode插件,我们可以很方便地对镜像和容器进行管理。其操作界面如下图:-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。
在container中可以很方便地进行运行和终止容器的操作,也可以删除不需要的容器。最右边的灰字为容器的名称(返回到之前提到c++中类的类比,这里的名字可以理解为变量名),通过下面的files可以对容器中的文件进行管理。
后续有时间会更新一些dockerfile的使用,目前只手动在docker中安装了git
以及catkin tool
,似乎这些步骤都能直接写进dockerfile中。