安装Hector-SLAM前,需要在Ubuntu上先安装ROS系统,官方的安装教程如下(英文)
http://wiki.ros.org/ROS/Installation
不同Ubuntu系统版本使用不同的ROS版本,Ubuntu20.04使用Noetic版本,CSDN上有很多ROS的安装教程,我就不再讲怎么安装了,这里推荐一种逃课装法
wget http://fishros.com/install -O fishros && bash fishros
鱼香的一键安装,可以一键安装ROS,docker,cartographer以及一键替换国内镜像,对初学者极其友好。
安装完毕后,ROS的启动项一般会自动加入到终端配置表中,在每次启动终端时自动运行ROS,可以输入gedit ~/.bashrc查看是否加入,未加入可以自己手动加入,即在bashrc中加入下面这行
source /opt/ros/noetic/setup.bash
安装ROS完毕后,可以开始Hector-SLAM的安装
因为Hector已经集成在了ROS中,对其安装有两种方法,一种是直接通过apt-get安装。
sudo apt-get install ros-noetic-hector-slam
这样安装的Hector会直接在ROS目录中,路径是/opt/ros/noetic/share/hector_slam,以及其他几个目录,安装时也要注明版本(noetic)。这样安装的问题是后期跑自己的数据集用自己的launch文件时,找目录修改文件比较麻烦(需要找到上面那个目录里去),而且需要一直sudo
另一种安装方式为自己在github上拉取包安装,需要自己创建一个目录
mkdir -p hector_ws/src
cd hector_ws
自己想叫什么都可以,我这里就叫hector_ws了,然后进入目录拉取git文件,不要直接复制粘贴执行,要一条一条执行
cd src
sudo apt install git
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam
cd ../
catkin_make
没有报错的话,就算安装好了
用官方数据集测试
hector的使用需要launch文件,存放在/hector_ws/src/hector_slam-noetic-devel/hector_slam_launch/launch,自带的有tutorial.launch等
我们拉取一个bag文件,测试一下Hector的建图效果(需要科学上网)
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/tu-darmstadt-ros-pkg/Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag
运行Hector并查看建图效果(运行前,记得先启动setup.bash,下面第一行指令)
source ./devel/setup.bash
roslaunch hector_slam_launch tutorial.launch
rosbag play Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag --clock
第一条执行完后,在bag文件目录执行第二条(或者使用绝对路径找文件),此时应该能在弹出的rviz窗口看到运行效果
(跑成这样是因为算法的问题,Hector需要不断调参优化)
ROSwiki中有Hector的使用的详细介绍,很好用,不过是纯英文的,可以看懂的同学可以直接看Wiki,食用效果更佳(需要科学上网)
自己配置launch文件跑其他数据集的教程也很多,在这里放一个连接