最近在做一个项目,需要用到激光雷达,但是由于自己是第一次使用激光雷达,在此期间遇到了不少的坑,本人按照%zoe%博主的教程,出现了一些未知的错误,但是好在最后都解决了,在此做个记录,也希望能帮大家少走弯路。参照的教程如下:

{注意本文的ip地址和端口参数均与原文不同,因为我拿到的激光雷达不再是出厂设置,参数均已被修改,所有的坑都已经踩过了,看懂了再实施,以免误入新坑}

一. 使用RSView工具实时展示RoboSense16的雷达数据

首先分享RoboSense16激光雷达相关资料,其中包括用户手册及windows系统下的RSView工具的绿色版本压缩包。
网盘链接:https://pan.baidu.com/s/1EH5Faak5LJ8xLfKwWuztHg?pwd=3ef4
提取码:3ef4
以上资料在RoboSense16官网上也可以下载。

1、雷达的出厂网络配置如下图,即默认雷达自身ip为1.200,电脑ip为1.102。故为了成功连接雷达,需修改本机(windows系统)的网络配置,即静态Ip地址设置为192.168.1.102,网关为192.168.1.1。

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_ubuntu

 【坑1】:我拿到的激光雷达是从别人那里借来的,并不是新的,所以一些出厂设置被更改了。第一步的IP地址16线激光雷达和电脑的IP地址都被修改了,虽然说明书里面不建议修改,我花了一上午时间,最终才搞明白。这里可以用wireshark抓包工具看一下自己的IP地址。

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_服务器_02

上图是我用wireshark抓包工具获取的地址,这里显示who has10.0.0.101?Tell 10.0.0.102.这个意思就是以太网的IP地址没有改对,我按照网上的教程改为192.168.1.102.而此时wireshark告诉我我的电脑地址应该是10.0.0.101,而激光雷达的地址为10.0.0.102.所以第一步的坑一定要注意。

2、启动RSview工具
RSView工具压缩包下载后解压到本地,以管理员方式运行bin\RSView.exe执行程序,打开界面。
注:解压后的路径中不允许存在中文,否则工具打不开,含泪分享踩坑经历
如下图,打开连接,取数据流,可以看到在RSView中能正常获取雷达激光数据。

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_03

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_04

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_05

 

二. 使用RSView工具修改RoboSense16的固件参数及ip端口由于每次连接雷达都需要把本机Ip改为1网段,非常不方便。为了方便使用,将修改了RoboSense16的网段为58网段(公司局域网段为58),端口6699,7788不变。步骤如下:(建议先看下面的坑2)

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_网络_06

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_服务器_07

  

 注:下图中端口需要保存为6699,7788。我自己的当时默认不是这个,导致一直连不上雷达。

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_服务器_08

【坑2】 这里博主说将上图的端口改为6699,7788,我改了之后在windows仍然不显示点云,后来用抓包工具看了一下,我手里的激光雷达的数据流向并不是6699——7788,而是6690——6690.所以我改成了6690,6690.抓包工具wireshark显示结果如下:

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_ubuntu_09

避开这个坑windows里面的Rsview应该就显示点云了。

三.RoboSense16线雷达在虚拟机Ubuntu18+ROS melodic环境下的连接与实时数据展示

  1. RoboSense 16线雷达驱动安装

 (1)安装依赖项

sudo apt-get install libpcap-dev

(2)创建工作空间,并下载源码

mkdir -p ~/robosense_ws/src
cd ~/robosense_ws/src
git clone https://github.com/RoboSense-LiDAR/ros_rslidar

(3)修改文件权限

cd ~/robosense_ws/src/ros_rslidar/rslidar_drvier
chmod 777 cfg/*
cd ~/robosense_ws/src/ros_rslidar/rslidar_pointcloud
chmod 777 cfg/*

(4)源码编译

cd ~/robosense_ws
catkin_make

1、设置虚拟机网络位桥接模式,并设置静态ip为192.168.58.201【我的ip为10.0.0.102】(上一节通过RSview设置的,默认是192.168.1.102【我的ip为10.0.0.101】)
(1)设置桥接模式

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_ubuntu_10

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_激光雷达_11

 

(2)设置静态Ip

新开终端,用 ip a 首先查看自己的网卡编号,如下图,我的为ens33。

ip a

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_网络_12

【建议先看坑3】

sudo vim /etc/network/interfaces

修改文件如下,其中,ens33是通过 ip a 命令得到的,ip地址如上所述设置的雷达对应的58.201,并设置网关。

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
address 192.168.58.201
netmask 255.255.255.0
gateway 192.168.58.1

然后设置DNS服务器:

sudo vim /etc/systemd/resolved.conf

放开DNS字段,并设置为114.114.114.114,如图所示:

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_激光雷达_13

重启网卡,重启虚拟机。

sudo /etc/init.d/networking restart
reboot

重启后,用命令查看Ip是否设置成功,并能成功Ping通雷达对应的地址(58.200)

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_服务器_14

 (3)更改配置文件如下

cd ~/robosense_ws/src/ros_rslidar/rslidar_pointcloud/launch
gedit rs_lidar_16.launch

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_15

【坑3】 设置静态ip那里,最好不要用上述的方式,虽然应该也能成功,但是过程中出错的概率太大了,此时应该直接下面这样简单粗暴的设置:

 点击下图箭头位置

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_ubuntu_16

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_17

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_ubuntu_18

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_服务器_19

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_网络_20

上图最后一步别忘了点击应用选项

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_21

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_22

上图桥接模式改完之后别忘了点击确定

接下来修改launch文件(圈出来的地方是launch文件所在的目录位置,然后点击箭头所示的位置)

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_23

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_24

主要修改的是2,3,4行,第2行修改为自己的雷达的地址,第3行修改为自己的端口,我在上面已经说过了我的端口是6690.

【坑4】由于我上面的launch文件修改的为6690,6690,此时一直不显示点云,并且会报错如下

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_激光雷达_25

网上扒拉了很久也没解决,最后在计算机大佬的加持下解决了,他把我的端口改成了6690,7788,不再使用6690,6690,据他说这两个端口不能一样,所以修改了一下,至于具体原因,我也不清楚,不过确实解决了这个问题。

(4)启动3d雷达驱动

cd ~/robosense_ws
source devel/setup.bash
roslaunch rslidar_pointcloud rs_lidar_16.launch

将启动rviz节点,如下图界面上展示实时的雷达数据。

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_服务器_26

至此,RoboSense(速腾)16线激光雷达在windows下以及在Ubuntu18+ROS melodic环境下的连接与实时数据展示已经完成。 

下面为我自己的设置,记录一下,方便回顾

PC端

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_运维_27

 

如何用python处理激光雷达点云数据处理教程 激光雷达点云图_ubuntu_28