转载请注明出处!!!
前段时间客户反馈问题,说基于ros开发的软件在Ubuntu下可以显示点云。切换环境为,在docker中运行ros,并回放数据,在Ubuntu下显示点云时,就没有点云数据了。
于是就安排我进行相关配置,解决这一问题。
ubuntu18.04 docker ros
1.需要一台安装好ubuntu18.04的PC机。 2.需要安装好docker,并在docker中安装好ros环境。(客户提供的docker镜像) 3.需要在ubuntu18.04中安装好ros环境。
注: (1)以上所有的安装网上应该都有,不过我在亲自安装Ubuntu18.04下的ros环境时,确实走了很多坑,因为和ros教程中的结果不太一样,不过经过不断努力,都还是可以解决的。环境搭建这块就不详细说明了。 (2)会创建docker容器,会容器的基本操作。 (3)会ros基本命令。
下面就说说我是怎么解决的。。。
1.首先需要在Ubuntu18.04的终端下开启ros,还有在创建的容器中开启ros
roscore2.新建Ubuntu终端,查看ip
ifconfig (或ifconfig -a)查看得到宿主机decker0的ip:172.17.0.1
3.新建容器,并进入容器,查看容器ip
ifconfig (或ifconfig -a)查看得到容器的ip:172.17.0.2
4.重新开启Ubuntu终端
输入
vim ~/.bashrc (无权限则执行sudo vim ~/.bashrc)打开文件,添加
export ROS_HOSTNAME=172.17.0.1 export ROS_MASTER_URL=http://172.17.0.2:11311保存文件,重新source
source ~/.bashrc5.重新开启容器终端
输入
vim ~/.bashrc (无权限则执行sudo vim ~/.bashrc)打开文件,添加
export ROS_HOSTNAME=172.17.0.2 export ROS_MASTER_URL=http://172.17.0.2:11311保存文件,重新source
source ~/.bashrc6.拷贝回放数据到容器中,在容器中运行回放数据
输入
rosbag play 2020-08-12-07-31-18.bag我的bag名称是 2020-08-12-07-31-18.bag。以实际为准,回车,能看到数据在回放。
7.分别开启新的Ubuntu终端和容器终端,执行
rostopic list能发现有相同节点在目录下 /lidar_points
8.在Ubuntu终端中执行显示点云窗口
输入
rosrun rviz rviz在弹出的窗口中,将lidar_points ,add进去。
注:需要将Displays部分的Fixed Frame改成world
9.点云即可正常显示
至此一步,点云已经能在docker中回放,在宿主机上显示了。我接手这个环境配置也只有一周时间,这一周,真不知道怎么过来的,搭建docker是坑,搭建ros是坑,配置ROS_MASTER_URL也是坑。。。但是只要坚持,还是都挺过来了,各位小伙伴加油!
“不相信有战胜不了的困难,不相信有完成不了的任务!”
最后,各位有什么单片机嵌入式的相关项目,也可以接哈!!!(QQ:134-125-4608)