如何跑通运行hector slam

1,安装
第一种方法:

sudo apt-get install ros-indigo-hector-slam

第二种方法,从git上面获取源代码hector_slam,注意他是一堆package,我目前的方法是挨个进行

catkin_make install -DCATKIN_WHITELIST_PACKAGES="xxx"

其中xxx是里面每个包的名字

2,下载bag文件Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag

3,

rosbag play Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag  --clock

记住一定要加–clock,不然会报错 Geotiff node started或者SearchDir angle change too large。他的作用是在/clock话题里发布模拟的时间,这个时间和bag采集的时间一致,否则/clock里无消息

4,运行

roslaunch hector_slam_launch tutorial.launch

1这里补充一点,要想bag play时仅仅发布特定的几个话题,可以用下面的命令生成一个新的bag文件

rosbag filter in.bag out.bag 'topic =="/scan" or topic == "/tf"'

其中’topic ==”/scan” or topic == “/tf”’是符合python的语法就可以,in.bag是原始bag,out.bag是生成的仅含有想要的topic的新bag文件。

5,要想在没有tf的条件下也能map需要进行以下修改:

    <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" />

并且在HectorMappingRos.cpp的81行把true改为false,参照238行的条件判断。

private_nh_.param("use_tf_scan_transformation", p_use_tf_scan_transformation_,false);

你可能感兴趣的:(软件安装)