ROS激光雷达数据过滤
尝试使用一下Markdown编辑器,html编辑器用到爆炸
目录
ROS与激光雷达
激光雷达是避障与SLAM常用的装备,ROS中也对激光雷达做出了相应的支持,各个厂家也有不少提供了自己的ROS库供开发者使用,使得无论是初学者还是大神们都能轻松愉快的使用激光雷达为自己的机器人导航。
ROS中的sensor_msgs/LaserScan提供了最基础的针对一线激光雷达消息格式:
# 一线激光雷达的一次扫描
Header header # timestamp是扫描中第一束激光的获取时间
# 角度环绕Z轴(Z轴为激光雷达正上方),逆时钟方向增加,0度角指向X轴
float32 angle_min # 扫描的起始角度 [rad]
float32 angle_max # 扫描的结束角度 [rad]
float32 angle_increment # 每次测量间的角度差 [rad]
float32 time_increment # 每次测量间的时间差 [seconds]
# 这个数值会用来生成点云(而不是scan_time)
float32 scan_time # 每次扫描的时间差 [seconds]
# 这个时间差是每次激光发射的时间差,上面那个是每次接收(测量)的时间差
float32 range_min # 距离最小值 [m]
float32 range_max # 距离最大值 [m]
float32[] ranges # 距离数据 [m]
float32[] intensities # 强度数据 [单位视设备标定]
#如果设备不产生强度数据,则该数据为空
通过这个消息提供的信息,就可以开始进行数据的
获取激光雷达数据
首先要根据使用的激光雷达设备,启动相应的驱动节点来进行扫描和测量。数据一般来说会发布到scan这个主题里,只要订阅一下就可以获取到激光雷达的数据了
#!/usr/bin/env python
import rospy
from sensor_msgs.msg import LaserScan
def callback(scan):
#LaserScan消息的格式
#std_msgs/Header header
#float32 angle_min