1. 前言
Ubuntu环境搭建
【Windows10安装或重装ubuntu18.04双系统教程】
ROS学习笔记
【4. ROS的主要通讯方式:Topic话题与Message消息】
接下来学习激光雷达如何接入ros机器人,激光雷达是用来探测周围障碍物的分布状况!
2. 激光雷达分类
其按照测量的维度可以分为单线雷达和多线雷达
按照测量原理分为三角测距雷达和TOF雷达
根据工作方式分为机械旋转雷达和固态雷达
激光雷达虽各有不同,但是在ROS中呈现的数据格式是一样的,只是在数据完整度和精度上会有所差异。下面就选取TOF激光雷达作为例子
3. TOF和三角测距激光雷达
3.1 何为飞行时间测距(TOF)?
简单来说,就是计算光的“飞行时间”。
由激光器发射一个激光脉冲,通过计时器记录下光的出射和回返的时间,两个时间相减即可得到光的“飞行时间”,而光速是固定的,根据已知速度和时间就可以计算出距离。
3.2 何为三角测距?
三角测距采用激光器发射激光,在照射到物体之后,反射光会由线性CCD接收,因为激光器和探测器间隔了一段距离,所以根据光学路径,不同距离的物体将会在CCD上成像在不同的位置,按照三角公式进行计算,就可以推导出被测物体的距离。
3.3 激光雷达测距
TOF激光雷达计算如下
4. 使用RViz观测传感器数据
RViz这个工具的全名叫做 The Robot Visualization Tool
4.1 运行模板样机
打开三个终端分别运行三条指令
roscore roslaunch wpr_simulation wpb_simple.launch rviz
首先把这个Fixed Frame修改成base_footprint
状态栏添加机器人模型,最后点击ok
选择激光雷达的话题名称/scan
调整size为0.03
调整RViz和Gazebo分屏
Gazebo是模拟真实机器人发出传感器数据的工具
RViz显示的是机器人实际能探测到的环境状况
另外一点就是RViz并不参与机器人算法的运行,它只是一个为了方便人类进行观测的工具而已
即使没有RViz,也不影响机器人的ROS系统的运行
只有需要观察某些数据实时变化的时候,才会打开RViz
下面添加虚拟环境的圆柱体障碍物
4.2 保存RViz配置
点击file菜单,选择Save Config As
选择保存地址,方便后期直接加载
然后关闭所有终端
打开三个终端分别运行三条指令
roscore roslaunch wpr_simulation wpb_simple.launch rviz
然后在RViz中的file菜单,选择Open Config
然后选择刚保存的位置
4.3 自动加载rviz配置文件
还可以在launch文件里自动加载rviz配置文件
先关闭RViz,然后打开终端输入
roslaunch wpr_simulation wpb_rviz.launch
关闭摄像头,保留激光雷达
调整视角
5. ROS系统中的激光雷达消息包格式
5.1 运行模板样机
打开三个终端分别运行三条指令
roscore roslaunch wpr_simulation wpb_simple.launch roslaunch wpr_simulation wpb_rviz.launch
在Gazebo中围绕机器人堆积障碍物
5.2 sensor_msgs中Laserscan_msgs消息属性
进入ROS Index官网搜索sensor_msgs
进入website
在消息中找到LaserScan
这就打开了激光雷达消息包的格式定义
5.3 查看scan消息
新开终端输入
rostopic echo /scan --noarr
显示对比