ROS与激光雷达点云入门(速腾聚创RS-LIDAR-16)

Pre-requisition

  • Ubuntu 16.04
  • ros-kinetic-desktop-full

硬件设置

激光雷达与电脑的连接有两种方式,分别是

  • 直接将激光雷达连接到电脑的以太网口
  • 通过路由器或交换机作为传输中介

直连的方式很简单,官方的手册也有比较详细的说明. 但是通过路由器连接的方式,不仅官方手册没有说,网上也没找到相关的教程.
通过路由器连接要注意将路由器的DHCP功能关闭,普通的路由器通常在设置页面会有DHCP服务器或类似名字的选项页,进去关闭即可.OpenWRT的路由器在Interface的LAN口设置中,关闭DHCP功能.
电脑可以通过有线或者无线的方式连接路由器,手动设置IP为192.168.1.102,掩码255.255.255.0,网关设置为192.168.1.1,需要注意的是LAN口的IP要设置为192.168.1.1,设置网关的目的是:让电脑连接激光雷达同时也可以通过路由器连接外网,如果不手动设置网关,可能会被默认设置为0.0.0.0,此时,就算路由器连着外网,电脑也无法上网.
还有一个坑,大部分人应该不会遇到:我的openwrt路由器装了shadowsocks,虽然我把它关了,但它开机还是会自启动,导致我无法通过校园网络认证,上不了网,写在这里给自己一个提示,读者可以忽略此段.
还有一个坑,如果在关闭DHCP服务前,雷达已经开机,记得断电重启...

ROS工程与运行

如何在ROS跑激光雷达点云的demo,这个github项目已经说的很清楚了.我简单注释一下,把可能遇到的坑重点提一下.本文对应的commit是e5e3325b9bfab0dc0d7a363ab0996a17e02116d6,可能随着项目更新,下面说的和项目里的内容有点对不上.

2.(3) 执行catkin_make时,可能会遇到ImportError: No module named 'em'的问题,是因为缺少python包,安装一下即可.可以通过pip或者apt安装:pip install empy或者sudo apt install python-empy或者python -m pip install empy.
由于我安装了miniconda作为我的默认python,但是发现ros和miniconda有些兼容问题,所以运行ros时,会手动在当前terminal里把miniconda的路径从PATH删去,但是make时,发现还是要把miniconda的python也装上empy包才行,可能make时是从当前系统中直接继承的PATH,而不是从当前Terminal继承的PATH?

第4和5步运行的时候一定不要忘了source devel/setup.bash,每开一个新的terminal都要执行一次,以正确设置环境变量.