概述
hector_slam中主要的软件包有
hector_mapping,SLAM节点
hector_geotiff,存储地图和机器人轨迹到geotiff格式图像文件
hector_trajectory_sever,保存基于tf的轨迹
一、如何给机器人建立hector_slam
概述
hector_slam使用hector_mapping节点来学习环境地图,并同时在帧频率的激光扫描下估计二维平台下的姿态。必须正确设置hector_mapping的坐标系名字和选项必须正确。
map,odom和base_link帧之间的一般关系已在“移动平台的坐标帧”中描述。 我们在odom和base_link之间使用两个框架:base_footprint框架不提供高度信息,并且表示机器人的2D姿势(位置和方向)。 base_stabilized框架增加了相对于map / odom层的机器人高度的信息。 base_link框架刚性地附接到机器人,并且与base_stabilized框架相比增加滚动角和俯仰角。 对于该变换,可以使用用于估计车辆姿态的系统,例如AHRS或INS(可以使用例如hector_imu_attitude_to_tf节点来实现)。 对于不展示侧倾/俯仰运动的平台,base_stabilized和base_link帧是相等的。 从base_link(对应于机体中心点的坐标系)到laser_link(对应于扫描仪中心点的坐标系)的转换通常由静态变换发布者或机器人状态发布者提供。
1.use in place of gmappinggmapping publishes the map->odom transform. You have to set the following parameters of hector_mapping to reflect the setup on your platform:
<param name="pub_map_odom_transform" value="true"/>
<param name="map_frame" value="map" />
<param name="base_frame" value="base_frame" />
<param name="odom_frame" value="odom" />
2.如果没有里程计框架
如果不需要里程计(比如你的平台没有提供任何可用的里程计)你可以直接将地图坐标转换为base_link:
<param name="pub_map_odom_transform" value="true"/>
<param name="map_frame" value="map" />
<param name="base_frame" value="base_frame" />
<param name="odom_frame" value="base_frame" />
3.使用无广播的转换
如果另一个节点负责发布map-> odom或map-> base_frame transform:
<param name="pub_map_odom_transform" value="false"/>
在这种情况下,在hector_mapping的姿态更新话题上公布的姿态估计可以由INS系统使用,该INS系统然后发布map-> base_frame变换。
二、如何使用日志数据构建映射?
1.建立一个地图
(1)确认已正确安装hector_slam:sudo apt-get install ros-indigo-hector-slam
(2)下载一个bagfile。用的是2011RoboCup救援比赛的手持地图系统。在当前目录下下载,wget:wget http://tu-darmstadt-ros-pkg.googlecode.com/files/Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag
也有其它bagfiles:http://code.google.com/p/tu-darmstadt-ros-pkg/downloads/list
(3)开启hector_slam系统:roslaunch hector_slam_launch tutorial.launch
这个launch文件会开启hector_slam节点和hector_trajrctory_sever、hector_geotiff 节点,后两个节点是用来生成geotiff地图的。使用“添加”按钮添加所需的显示类型,比如,Map类型和Point Cloud类型,来可视化需要的数据。
(4)打开另一个终端。Type:rosbag play Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag --clock
现在你就可以在rviz中看到实时的地图进程了
2.生成一个GeoTiff地图
(1)在上述mapping process type过程中随时保存一个geotiff(位置)文件:
rostopic pub syscommand std_msgs/String "savegeotiff"
(2)geotiff地图默认存放在'hector_slam/hector_geotiff/maps' 文件夹中。你会找打一个包含图像数据的.tif文件和一个包含地理参考信息的.twf文件在这个文件夹中。创建时间将附加到这两个文件的映射基本名称。
最后
以上就是合适大侠为你收集整理的hector_slam summary 记录的全部内容,希望文章能够帮你解决hector_slam summary 记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复