Ubuntu18.04在docker中回放ros的点云数据,并在Ubuntu中不点云(解决方法)

it2024-11-02  3

转载请注明出处!!!

概述

前段时间客户反馈问题,说基于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

roscore

2.新建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 ~/.bashrc

5.重新开启容器终端

输入

vim ~/.bashrc (无权限则执行sudo vim ~/.bashrc)

打开文件,添加

export ROS_HOSTNAME=172.17.0.2 export ROS_MASTER_URL=http://172.17.0.2:11311

保存文件,重新source

source ~/.bashrc

6.拷贝回放数据到容器中,在容器中运行回放数据

输入

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)

最新回复(0)