一、在工作空间中输入source ./devel/setup.bash
二、输入roslaunch wpr_simulation wpb_simple.launch打开机器人仿真环境
三、机器人仿真环境打开成功
四、给机器人围上一圈障碍物
五、再打开一个工作空间终端
六、输入roslaunch wpr_simulation wpb_rviz.launch打开RViz
七、RViz打开成功
八、取消这两个勾
九、可以看到在机器人周围是一圈红色的点阵,这些点就是激光雷达输出的数据
十、打开ROS index网站
十一、搜索sensor_msgs
十二、找到noetic版本
十三、点击进入
十四、再点击进入Website网址
十五、再点击这个LaserScan打开激光雷达数据格式
十六、这个就是激光雷达消息包的格式定义
十七、左边是消息包的格式定义
十八、右边是每个成员变量的注释
十九、下边是每个成员变量的数据类型
二十、将注释翻译一下
二十一、回到ROS,再在工作空间中另开一个终端,输入source ./devel/setup.bash
二十二、再输入rostopic echo /scan --noarr,显示/scan话题里的消息
二十三、消息出来了
二十四、首先第一个Header主要存储的是时间戳和坐标系ID,时间戳表示消息包发出的时间
二十五、angle_min和angle_max是激光雷达扫描的起始角度和终止角度
二十六、以这个ROS机器人为例
二十七、它的激光雷达安装在底盘中心的位置
二十八、我们在终端里显示它的angle_min起始角度-3.14…,也就是-Π,也就是-180°
二十九、假设机器人正前方为0°方向
三十、-180°就是从0°开始顺时针旋转半圈,就是机器人的正后方,这个方向就是机器人雷达扫描的起始角度
三十一、同理的,angle_max是Π,就是180°,就是从0°开始逆时针旋转半圈,angle_max是机器人激光雷达扫描的终止方向,激光雷达一次完整的扫描就是从angle_min到angle_max
三十二、angle_increment和time_increment表示的是两次测距行为之间的角度间隔和时间间隔,激光从激光雷达射出去再反射回来被激光雷达接收这就是一次测距行为
三十三、scan_time指的是两次扫描之间的时间间隔,其实就是单次扫描的持续时间,就是激光雷达转一周所耗费的时间
三十四、range_min和range_max,是这个雷达能够测量的距离范围,只有在范围内的测距值才是有效的