当前位置: 首页 > news >正文

docker容器中安装ROS1/ROS2(不用配任何环境,10分钟搞定)

默认电脑已经安装了docker,没安装看这篇文章Docker 安装 (完整详细版)

ROS和docker各种结合看官方文档 dockerTutorials
在OSRF中拉取想要的 ROS 版本 docker 镜像
网址为 拉取命令在这里
我是安装noetic版本,因为这个兼容比较多现有的工程

docker pull osrf/ros:noetic-desktop-full

拉取完后创建容器,但是为了能在docker中能打开窗口,将使用以下参数,只需要修改名字即可,your_name 改成你想要的名字,必须英文
如果想远程部署的,具体参数看这个链接Using GUI’s with Docker

docker run -it  \--name your_name \--env="DISPLAY" \--env="QT_X11_NO_MITSHM=1" \--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \osrf/ros:noetic-desktop-full \rqt

这个时候必然会报错,上步的目的是为了创建有对应参数的容器,
错误内容正常应该为

Authorization required, but no authorization protocol specified
could not connect to display :1
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

然后

docker ps -a

查看刚刚创建的容器的 id
运行下面这句,把 $containerId 替换为容器的 id

xhost +local:`docker inspect --format='{{ .Config.Hostname }}' $containerId`

提示信息出现这个就是成功了

non-network local connections being added to access control list

然后就可以运行容器啦,$containerId 换成容器名字也可以

docker start $containerId

然后再运行以下进入容器

docker exec -it your_name /bin/bash

此时进入容器了,再在容器里面运行这句

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

然后

source ~/.bashrc 

这时候再开2个终端,每个终端都使用以下命令进入

docker exec -it your_name /bin/bash

然后把下面的3行指令按顺序分别执行在3个终端中

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

能用键盘控制就成功了

使用以下命令退出容器
exit

每次进入容器前都需要先启动容器

docker start $containerId
http://www.lryc.cn/news/213010.html

相关文章:

  • 如何解决ssh登录报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  • Mysql5.7安装配置详细图文教程(msi版本)
  • 运行dl4j-examples的主要一些依赖
  • PSRAM伪静态RAM芯片APS6404L
  • 低级语言汇编真的各个面不如汇编吗?
  • PyG edge index 转换回 邻接矩阵
  • JavaSE19——file文件类
  • mongodb记录
  • Go语言:数组和切片
  • OPENCV 闭运算实验示例代码morphologyEx()函数
  • UE4 体积云制作 学习笔记
  • visual studio编译QtAV
  • 喜报!CACTER邮件安全网关荣获2023鲲鹏应用创新大赛广东赛区三等奖
  • Spark On Hive原理和配置
  • 驱动第十天
  • 工作中常用的git命令,千万不能忘
  • 计组之存储系统
  • 【Jenkins】新建任务FAQ
  • 生产环境使用boost::fiber
  • TSINGSEE青犀AI视频识别技术+危化安全生产智慧监管方案
  • 小程序request请求封装
  • Easy Javadoc插件的使用教程
  • 一篇文章让你弄懂Java中的方法
  • SAP MM学习笔记39 - MRP(资材所要量计划)
  • 总线类设备驱动——IIC
  • MES 的价值点之动态调度
  • dfs序及相关例题
  • python入门实战:爬取图片到本地
  • day02 矩阵 2023.10.26
  • 浪潮信息inMerge超融合 刷新全球vSAN架构虚拟化VMmark最佳成绩