docker 安装ROS
环境配置
新建文件 /etc/docker/daemon.json, 输入国内docker hub地址(暂时可用)
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] }
修改/etc/resolv.conf
nameserver 114.114.114.114 nameserver 8.8.8.8
运行一下命令生效修改
sudo systemctl daemon-reload sudo systemctl restart docker
安装ROS 1
安装ros1 melodic 版本
按下“Ctrl+Alt+T” , 打开命令行终端, 在终端输入“docker pull ros:melodic”,下载ROS1镜像, 镜像下载需要一些时间, 请耐心等待一会
docker pull ros:melodic
镜像下载完成后,在终端运行一下命令,运行容器并指定名称为melodic
docker run -it --network=host -d -v=/dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix --name melodic -e DISPLAY=${DISPLAY} --restart=always ros:melodic /bin/bash
在终端输入“xhost +” ,开启 X Server 的访问控制。
xhost +
在终端输入“docker ps -a” 查看新创建容器的ID
在终端输入“docker exec -it 75b6634e6227 /bin/bash” 进入容器。(75b6634e6227 为容器ID,请根据实际情况修改)
- 在终端输入“useradd -m -s /bin/bash ubuntu” , 创建一个新用户ubuntu (请根据情况修改新用户名)
- 在终端输入“passwd ubuntu” , 设置“ubuntu” 的密码, 输入密码按下之后,需要重新输入一遍密码
- 在终端输入“usermod -aG sudo ubuntu” , 将新用户 ubuntu 添加sudo , 使其具有超级用户权限
- 在终端输入“sudo apt-get update -y && sudo apt-get upgrade -y” , 更新可用软件包列表并升级系统上已安装的软件包
- 在终端输入“sudo apt-get install vim -y” , 安装 Vim 文本编辑器
- 在终端输入“sudo apt-get install ros-melodic-desktop-full -y” , 安装 ROS Melodic 版本的完整桌面环境, 下载需要一些时间, 请耐心等待一会
测试ROS 1环境
输入“docker exec -it -u ubuntu -w /home/ubuntu 75b6 /bin/bash” 指令, 进入容器。 (注意: 75b6是装有ROS1环境的容器ID)
输入“source /opt/ros/melodic/setup.bash” 指令,因为 每 一 次 打 开 终 端 都 执 行 步 骤1 加 载 工 作 空 间 , 可 以 在 终 端 输 入 “ echo “source /opt/ros/melodic/setup.bash” >> ~/.bashrc” 指令, 将该指令写入.bashrc文件中。
- 输入“source ~/.bashrc” 指令, 让.bashrc文件生效。 这样就不需要每一次加载工作空间环境
- 输入“rosrun turtlesim turtlesim_node” , 启动小海龟GUI界面, 启动成功即说明ROS1安装成功。
安装 ROS2
安装ROS2 humble版本
按下“Ctrl+Alt+T” , 打开命令行终端, 在终端输入“docker pull ros:humble”,下载ROS2镜像, 镜像下载需要一些时间, 请耐心等待一会
docker pull ros:humble
镜像下载完成后, 在终端输入如下指令, 运行容器并指定名称为 humble。
docker run -it --network=host -d -v=/dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix --name humble -e DISPLAY=${DISPLAY} --restart=always ros:humble /bin/bash
在终端输入“xhost +” ,开启 X Server 的访问控制。
xhost +
在终端输入“docker ps -a” 查看新创建容器的ID
在终端输入“docker exec -it 76a092503f2e /bin/bash” 进入容器。 (76a092503f2e是容器ID,请根据实际情况修改)
在终端输入“useradd -m -s /bin/bash ubuntu” , 创建一个新用户
在终端输入“passwd ubuntu” , 设置“ubuntu” 的密码, 这里我们设置为“ubuntu”输入密码按下之后, 需要重新输入一遍密码
在终端输入“usermod -aG sudo ubuntu” , 将新用户 ubuntu 添加sudo , 使其具有超级用户权限
在终端输入“sudo apt-get update -y && sudo apt-get upgrade -y” , 更新可用软件包列表并升级系统上已安装的软件包
在终端输入“sudo apt-get install vim -y” , 安装 Vim 文本编辑器
在终端输入“sudo apt-get install ros-humble-desktop-full -y” , 安装ROS Humble 版本的完整桌面环境
测试ROS2环境
输入“docker exec -it -u ubuntu -w /home/ubuntu 55ce /bin/bash” 指令, 进入容器。 (注意: 55ce是装有ROS2环境的容器ID)
docker exec -it -u ubuntu -w /home/ubuntu 55ce /bin/bash
输入“source /opt/ros/humble/setup.bash” 指令, 手动配置ROS2环境。
每一次打开终端都执行2) 步骤加载工作空间, 可以在终端输入“
echo “source /opt/ros/humble/setup.bash” >> ~/.bashrc ” 指令, 将该指令写入.bashrc文件中
echo “source /opt/ros/humble/setup.bash” >> ~/.bashrc
输入“source ~/.bashrc” 指令, 让.bashrc文件生效。 这样就不需要每一次加载工作空间环境
输入“ros2 run turtlesim turtlesim_node” , 启动小海龟GUI界面, 启动成功即说明ROS2安装成功
ros2 run turtlesim turtlesim_node