参考链接:【Ubuntu】Docker中配置ROS并可视化Rviz及Gazebo_docker ros-CSDN博客

前言:

其实这个东西是相当必要的,因为我们有时候需要在一台电脑上跑好几个项目,每个项目都有不同的依赖,这些依赖冲突搞得人头皮发麻,与其整理乱糟糟的依赖关系,不如直接给每个项目一个环境。

一、详细步骤

1.拉取镜像

sudo docker pull osrf/ros:noetic-desktop-full

2.允许本地机器上的用户或进程连接到 X server

sudo xhost +local: 

不允许就是sudo xhost -local

如果报错

那就

xhost +local:

3.构建容器

# volume=/tmp/.X11-unix:/tmp/.X11-unix  挂载宿主机和docker文件互传
# --device=/dev/dri:/dev/dri   有了这个才能够显示,可能让docker使用显卡
docker run -it \
  --volume=/tmp/.X11-unix:/tmp/.X11-unix \
  --device=/dev/dri:/dev/dri \     
  --device=/dev/snd \
  --env="DISPLAY=$DISPLAY" \
  --env="QT_X11_NO_MITSHM=1" \
  --name=ros_noetic_test_new \
  osrf/ros:noetic-desktop-full




docker run -it --volume=/tmp/.X11-unix:/tmp/.X11-unix --device=/dev/dri:/dev/dri --device=/dev/snd --env="DISPLAY=$DISPLAY" --env="QT_X11_NO_MITSHM=1" --name=ros_noetic_turtlebot3 osrf/ros:noetic-desktop-full

4.显示rviz和gazebo

(1)打开两个终端,进入容器内

#ros_noetic_test 是容器名
docker exec -it ros_noetic_test bash

(2)刷新环境变量

source ./ros_entrypoint.sh

(3)一个启动roscore 一个启动rviz或者gazebo

二、docker 相关指令

1. 查看当前容器

#只能查看当前正在启动的容器
docker ps
#查看所有容器
docker ps -a

2. 启动容器

docker start 容器名

3. 停止容器

docker stop 容器名

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐