![00b6e88cfdd6d3a49236c296a758fbcd.png](https://i-blog.csdnimg.cn/blog_migrate/a34a89c54124a2c7660023e0e029cfba.jpeg)
最近在学习docker,顺便在自己的mac上搞了下docker中跑ros的方法,目前ros对macos的支持很不友好,ros官网上虽然有测试版本的介绍,但是还存在很多问题,并不保证可以完全安装完成并运行正常。
1. docker下载
国内官方下载渠道太慢,在网上找到阿里云的下载地址,速度在1-2M/s,很快就下载好了。
Index of /docker-toolbox/mac/docker-for-mac/mirrors.aliyun.com2. docker 安装
双击docker.dmg即可运行安装程序,拖动到applications即可,第一次运行需要输入用户密码。
运行docker --version可以得到
Docker version 19.03.5, build 633a0ea
3. docker安装ros
运行docker pull osrf/ros:melodic-desktop即可得到melodic版本的ros image。
按照下面这个博主的方法就可以在docker中运行ros节点。
https://www.baidu.com/link?url=46Dpg3WyAkmAHVwSXWEP7ltRtDg52Y3G8RxBNq8k7zrIu53NM8hTknAk-Up7gxRsk8rnM_rE3GNucjl0GDxEO3TPavcDh_c8-X9qAoJyX2O&wd=&eqid=a55b7f430019321d000000065e5676e0www.baidu.com通过在不同的container中分别启动roscore,talker,listener节点,并且设置ROS_MASTER_URL为roscore节点所在容器的ip实现不同container之间的通信,同时通过XQuartz对结果进行显示,解决了docker不能显示的问题。
4. 存在的问题
- 不明白为什么需要在不同的container启动不同的ros节点,在当前container中启动了roscore之后,再启动其他ros节点会报rosrun不存在的问题,待后续发现解决;
- rviz当前显示不正常,可能是显卡程序的问题;