机器人平台搭建(四)——为机器人装配激光雷达

目录
总述
1、rplidar功能包
2、PC端驱动rplidar

总述

移动机器人在环境中获取障碍物的具体位置、房间的内部轮廓等信息都是非常必要的,这些信息是机器人创建地图、进行导航的基本数据,使用激光雷达作为这种场景应用下的传感器。
激光雷达可用于测量机器人和其他物体之间的距离。

1、rplidar功能包

针对激光雷达,ROS中有相应的驱动功能包——rplidar,该功能包的相关话题、参数设置接口如下。

(1)话题与服务

rplidar功能包发布的话题和提供的服务。

话题发布 
名称:Scan 
类型:sensor_msgs/LaserScan 
描述:发布激光雷达数据 

服务 
名称:stop_motor 
类型:std_srvs/Empty 
描述:停止旋转电机

名称:start_motor 
类型:std_srvs/Empty 
描述:开始旋转电机

(2)参数

rplidar功能包中可供配置的参数
参数:serial_port 
类型:string 
默认值:"/dev/ttyUSB0" 
描述:激光雷达串口名称

参数:serial_baudrate 
类型:int 
默认值:115200 
描述:串口波特率

参数:frame_id 
类型:string 
默认值:“laser” 
描述:激光雷达坐标系

参数:inverted 
类型:bool 
默认值:false 
描述:是否倒置安装

参数:angle_compensate 
类型:bool 
默认值:true 
描述:角度补偿
rplidar功能包的安装可以使用如下命令完成:

sudo apr-get install ros-kinetic-rplidar-ros

2、PC端驱动rplidar

将rplidar连接到PC端的USB接口,使用lsusb命令检测是否连接成功。
启动激光雷达的过程中有可能遇到串口权限问题。
使用以下命令添加用户权限可以解决该问题。其中USER_NAME是当前用户名,设置后需要注销并重新登录Ubuntu系统:

sudo gpasswd --add USER_NAME dialout

正常工作后,可以使用激光雷达获取信息,使用以下命令启动激光节点:

rosrun rplidar_ros rplidarNode

如果终端中的输出信息无报错,则说明rplidar启动成功。
使用rostopic命令查看当前系统中的话题列表:

rostopic list

如果想查看更多关于激光雷达发布的信息,可以使用以下命令打印:

rostopic echo /scan

但是终端中的激光数据并不形象,故可以使用rviz在图形化界面下显示激光雷达数据。修改“Fixed Frame”为“laser”,点击“Add”按钮添加LaserScan显示插件,设置插件订阅“/scan”话题,就可以看到激光雷达信息。

也可以使用rplidar功能包中的命令直接在rviz中查看激光数据:

roslaunch rplidar_ros view_rplidar.launch