hector建图算法
1、简介
hector_slam不需要里程计数据,使用高斯牛顿方法,直接使用激光雷达数据估算里程计信息。所以,只需要激光雷达数据,即可完成建图。
2、优缺点
优点:不需要里程计数据
缺点:机器人速度太快会出现“漂移”现象,导致建图效果有偏差。解决方法是,提高传感器精度以及控制机器人旋转速度尽可能低。
3、输入与输出
输入:激光雷达数据(scan)
输出:栅格地图(map)
4、ROS中使用
(1)、话题
订阅:scan(激光雷达扫描数据)、syscommand(系统命令,当值为reset时,重置地图和机器人位姿)
发布:map(地图栅格数据)、map_metadata(地图Meta数据)、slam_out_pose(估计机器人位姿-没有协方差)、poseupdate(估计的机器人姿态估计-具有高斯估计的不确定性)
(2)、服务
dynamic_map,获取地图数据。
reset_map ,重置地图,姿态去上次建图时候的姿态。
restart_mapping_with_new_pose,重置地图和位置数据。
pause_mapping,停止/开始处理雷达激光扫描。
5、坐标系名称
(1)、base_link:机器人基坐标系,可以理解成是机器人的中心(质心)
(2)、map:地图坐标系
(3)、odom:里程计坐标系
(4)、laser:雷达坐标系
6、tf坐标变换
(1)、laser->base_link:激光雷达坐标系与基坐标系之间的变换,静态坐标变换,可由robot_state_publisher或者static_transform_publisher发布,这是必须的tf变换。
(2)、(3)、map->odom:地图坐标系与机器人里程计坐标系之间的变换,告诉机器人现在在地图上哪个位置。这是gmapping这个节点发布的tf变换。
7、与gmapping的区别
不需要里程计数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)