hector_mapping是hector_slam的重要部分之一。map就是rviz上的输出地图。
package 摘要
hector_mapping是一种SLAM方法,可以在没有里程表的情况下使用,也可以在显示(传感器、平台或两者的)侧倾/俯仰运动的平台上使用。它利用现代LIDAR系统(如Hokuyo UTM-30LX)的高更新率,并以传感器的扫描速率(对于UTM-30LX为40Hz)提供2D姿态估计。虽然系统不提供明确的闭环能力,但对于许多真实世界场景来说它足够准确。 该系统已成功应用于无人机地面机器人,无人地面车辆,手持式地图绘制设备以及来自四旋翼无人机的记录数据。Overview 概述
示例视频链接:http://www.youtube.com/playlist?list=PL0E462904E5D35E29
硬件需求
想用hector_mapping,你需要sensor_msgs/LaserScan数据源(例如Hokuyo UTM-30LX LIDAR或是包文件)。这个节点用tf转换扫描到的数据,所以LIDAR(激光探测与测量)不必与指定的base frame相关确定。也不需要里程计数据。
注:LiDAR——Light Detection And Ranging,即激光探测与测量。是利用GPS(Global Position System)和IMU(Inertial Measurement Unit,惯性测量装置)机载激光扫描。
ROS API(应用程序编程接口)
1.hector_mapping
hector_mapping是一个基于LIDAR的SLAM的节点,没有里程计和低计算资源。为了简单起见,下面详细介绍的ROS API从用户角度提供了常用选项的信息,但不是所有可用于调试的选项。
(1)订阅话题
>>scan(sensor_msgs/LaserScan):通过SLAM系统使用激光扫描
sensor_msgs/LaserScan.msg
从平面激光测距仪进行单次扫描。如果您有另一个具有不同行为的测距设备(例如声纳阵列),请找到或创建不同的消息,因为应用程序将对此数据做出相当激光特定的假设。
紧凑的消息定义:
std_msgs/Header header #header中的时间标记是扫描中第一条射线的采集时间。在帧frame_id中,围绕正Z轴测量角度(逆时针,如果Z向上),零角度沿着x轴向前
float32 angle_min #扫描起始角[rad]
float32 angle_max #扫描终止角[rad]
float32 angle_increment #测量之间的角距离[rad]
float32 t