机器人操作系统(ROS2)入门与实践课件:激光雷达在ROS2中的使用.pptx
机器人操作系统(ROS2)入门与实践
5.4基于激光雷达的避障实现5.1ROS2里的激光雷达数据5.5本章小结激光雷达在ROS2中的使用5.2在RViz2中查看激光雷达数据5.3激光雷达数据获取
激光雷达的旋转部分搭载激光测距探头,其在旋转的过程中每隔一定角度就会测量一次距离值。当其旋转一圈时,刚好可以对周围障碍物进行均匀的测距采样,这么一组测距值就是激光雷达的输出数值。5.1ROS2里的激光雷达数据
ROS2中的激光雷达的节点会在指定名称的话题里发布消息。话题名称在REP-138中推荐为“/scan”。消息的类型为sensor_msgs::LaserScan,其格式如图所示:5.1ROS2里的激光雷达数据
在ROS2中,提供了一个图形化工具,可以直观的查看传感器的数值。这个工具名字叫“RViz2”,其中“RViz”是“ROSVisualizationTool”的缩写,“2”表示第二代。5.2在RViz2中查看激光雷达数据在RViz2中查看激光雷达的数据的详细操作步骤:见教材P122-P128页
激光雷达数据的获取是通过订阅激光雷达发布的话题,从话题中获取激光雷达发出的消息包来实现的。如图所示,将会实现一个订阅者节点,订阅/scan话题。从此话题中接收sensor_msgs::LaserScan类型的消息包,并解析出雷达的测距数值。5.3激光雷达数据获取激光雷达数据获取的详细操作步骤:见教材P129-P139页
下面将激光雷达数据获取和速度控制进行结合,实现一个避障程序。程序订阅雷达数据的“/scan”话题,从中接收激光雷达节点发来的sensor_msgs::LaserScan类型消息包,并解析出雷达测距值。根据雷达测距值让机器人做出反应:前方没有障碍物就前进,前方遇到障碍物就转向。5.4基于激光雷达的避障实现详细操作步骤:见教材P140-P152页
5.5本章小结本章主要是对激光雷达在ROS2中的使用进行介绍和编程。首先介绍了ROS2里的激光雷达消息包格式以及如何在RViz2中查看激光雷达数据;接着,通过订阅激光雷达发布的话题,从话题中获取激光雷达发出的消息包获取激光雷达数据;最后,将激光雷达数据获取和速度控制进行结合,编程实现了一个机器人避障功能。