机器人技术(9)AtdRobot读取激光雷达数据教程

激光雷达介绍(Xu, Chen et al. 2016)

       本系统选用的是低成本二维激光雷达,它具有每秒高达4000 次的高速激光测距采样能力。 可以实现在二维平面的6 米半径范围内进行360 度全方位的激光测距扫描,并产生所在空间的平面点云地图信息。这些云地图信息可用于地图测绘、机器人定位导航、物体/环境建模等实际应用中。

机器人技术(9)AtdRobot读取激光雷达数据教程_第1张图片 

    本章将介绍的例程是激光雷达数据的采集和显示,将激光雷达安装在机器人系统的顶部平台上,连接USB线到机器人底盘的USB接口即完成了硬件连接。通过运行DEMO,可以看到激光雷达对周边地图的还原。在此基础上,开发者可以进行激光雷达slam导航算法的深入研究。

运行激光雷达DEMO

      开启一个终端,运行底盘控制主节点,输入:

      ssh [email protected]

      roslaunch ros_arduino_python arduino.launch

      如下图所示,节点即开启成功。

机器人技术(9)AtdRobot读取激光雷达数据教程_第2张图片 

机器人技术(9)AtdRobot读取激光雷达数据教程_第3张图片 

      重新开启一个终端,开启雷达扫描节点,即输入:

      ssh [email protected]

      roslaunch ros_arduino_python test_rplidar.launch

      成功运行后的结果如下图所示:

机器人技术(9)AtdRobot读取激光雷达数据教程_第4张图片 


    此时,激光雷达会360°旋转,对周边的环境进行扫描并建图。

        重新打开一个终端,输入一下命令:

        export ROS_MASTER_URI=http://192.168.31.200:11311

        rosrun rviz rviz

        这时会开启rviz。RvizROS中的一个3D可视化工具。

机器人技术(9)AtdRobot读取激光雷达数据教程_第5张图片 

    中间黑色区域为3D可视化区域。左侧为显示面板,其中可以显示各种用户加载的选项。右侧为全局选项和时间。如果此时看不到图像,可以点击左侧面板的“add”按钮来增加新的显示选项。如下图所示,我们按topic来添加显示LaserScan数据。

机器人技术(9)AtdRobot读取激光雷达数据教程_第6张图片 

        这样就可以看到雷达扫描的数据了。当有障碍物时,会用红点在图中显示出来。这时再通过键盘或手柄控制底盘移动,雷达就会把周围环境的轮廓扫描出来。

核心代码讲解

    我们使用的雷达是RPLIDAR-A2。雷达的驱动包在~/catkin_ws/src/rplidar_ros下。通过修改其文件夹下的sdk/include/rplidar_cmd.h文件可以修改雷达的转速。其中330对应的是5hz660对应10hz

机器人技术(9)AtdRobot读取激光雷达数据教程_第7张图片 

     此次运行的launch文件是在~/catkin_ws/src/ros_arduino_bridge\ros_arduino_python\launch中,针对底盘扫描进行了一些配置。

机器人技术(9)AtdRobot读取激光雷达数据教程_第8张图片 

最后

        到这里我们就实现了通过激光雷达扫描建图的一个简单例程。其中关键点是配置test_rplidar.launch文件。如果需要自己开发,可以修改扫描配置文件的参数即可。

你可能感兴趣的:(机器人技术)