ROS学习记录:ROS系统中的激光雷达消息包的数据格式

一、在工作空间中输入source ./devel/setup.bash

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第1张图片

二、输入roslaunch wpr_simulation wpb_simple.launch打开机器人仿真环境

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第2张图片

三、机器人仿真环境打开成功

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第3张图片

四、给机器人围上一圈障碍物

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第4张图片

五、再打开一个工作空间终端

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第5张图片

六、输入roslaunch wpr_simulation wpb_rviz.launch打开RViz

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第6张图片

七、RViz打开成功

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第7张图片

八、取消这两个勾

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第8张图片

九、可以看到在机器人周围是一圈红色的点阵,这些点就是激光雷达输出的数据

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第9张图片

十、打开ROS index网站

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第10张图片

十一、搜索sensor_msgs

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第11张图片

十二、找到noetic版本

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第12张图片

十三、点击进入

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第13张图片

十四、再点击进入Website网址

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第14张图片

十五、再点击这个LaserScan打开激光雷达数据格式

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第15张图片

十六、这个就是激光雷达消息包的格式定义

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第16张图片

十七、左边是消息包的格式定义

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第17张图片

十八、右边是每个成员变量的注释

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第18张图片

十九、下边是每个成员变量的数据类型

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第19张图片

二十、将注释翻译一下

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第20张图片

二十一、回到ROS,再在工作空间中另开一个终端,输入source ./devel/setup.bash

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第21张图片

二十二、再输入rostopic echo /scan --noarr,显示/scan话题里的消息

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第22张图片

二十三、消息出来了

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第23张图片

二十四、首先第一个Header主要存储的是时间戳坐标系ID,时间戳表示消息包发出的时间

二十五、angle_minangle_max是激光雷达扫描的起始角度终止角度

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第24张图片

二十六、以这个ROS机器人为例

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第25张图片

二十七、它的激光雷达安装在底盘中心的位置

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第26张图片

二十八、我们在终端里显示它的angle_min起始角度-3.14…,也就是-Π,也就是-180°

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第27张图片

二十九、假设机器人正前方为0°方向

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第28张图片

三十、-180°就是从0°开始顺时针旋转半圈,就是机器人的正后方,这个方向就是机器人雷达扫描的起始角度

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第29张图片

三十一、同理的,angle_max是Π,就是180°,就是从0°开始逆时针旋转半圈,angle_max是机器人激光雷达扫描的终止方向,激光雷达一次完整的扫描就是从angle_min到angle_max

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第30张图片

三十二、angle_incrementtime_increment表示的是两次测距行为之间的角度间隔和时间间隔,激光从激光雷达射出去再反射回来被激光雷达接收这就是一次测距行为

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第31张图片
ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第32张图片

三十三、scan_time指的是两次扫描之间的时间间隔,其实就是单次扫描的持续时间,就是激光雷达转一周所耗费的时间

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第33张图片

三十四、range_minrange_max,是这个雷达能够测量的距离范围,只有在范围内的测距值才是有效的

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第34张图片
ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第35张图片

三十五、ranges,可以看到里面有个array,说明这是一个数组,数组的成员类型是32位的浮点数,数组的长度是360,说明这里面是360个浮点数

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第36张图片

三十六、这360个浮点数就是激光雷达从起始角度旋转到终止角度这一过程中测量的距离个数,我们的雷达在旋转过程中,每旋转一度,就进行一次测量,所以ranges里的360个浮点数对应的就是每一度方向上障碍物的距离,这360个测距值是按从起始角度到终止角度的顺序进行排列的

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第37张图片

三十七、intensities数组,它也是32位浮点数,长度也是360个,它的数值大小表示的是每一次测距的信号强度,和ranges一一对应,数值越大表示这次测距的信号强度越强,得到的测距数值更可信

ROS学习记录:ROS系统中的激光雷达消息包的数据格式_第38张图片

你可能感兴趣的:(ROS,学习,开发语言,ros,c++)