1. 环境准备
Ubuntu 版本18.04
ROS版本 melodic
一般来说 安装好ROS之后都会自带gazebo 如果发现gazebo打不开的情况 可以试试看是不是自己的虚拟机是不是没有关闭加速3D图形这个设置
通常要关闭3D图形加速才能正常打开Gazebo
2. SLAM准备
这里我们列举了多种SLAM算法进行测试
Loam
github上Loam的资源比较多 但是在踩过很多次坑以后 我还是最后选择了这个资源
//安装
mkdir -p Loam_ws/src
cd Loam_ws/src
git clone https://github.com/laboshinl/loam_velodyne.git
//编译
cd Loam_ws
catkin_make
source devel/setup.bash
//运行
roslaunch loam_velodyne loam_velodyne.launch
Lego-Loam
这里我们参考了https://blog.csdn.net/weixin_53141548/article/details/120796664
首先要安装依赖项gtsam 值得注意的是 这里的build文件是建立在clone的gtsam文件下的
git clone https://bitbucket.org/gtborg/gtsam.git
mkdir build
cd build
make ..
sudo make install
接着安装编译并运行Lego-Loam
//安装
mkdir -p Lego_loam_ws/src
cd Lego_loam_ws/src
git clone https://gitee.com/Yeah2333/LeGO-LOAM.git
//编译
cd Lego_loam_ws
catkin_make
source devel/setup.bash
//运行
roslaunch lego_loam run.launch
LIO_SAM
lio_sam与Lego_loam相同,都需要因子图优化库gtsam所以在安装前需要先安装gtsam 安装gtsam的步骤已经在Lego_loam中进行了说明
以下是LIO-SAM的安装编译运行过程
//安装
mkdir -p LIOSAM_ws/src
cd LIOSAM_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
//编译
cd LIOSAM_ws
catkin_make
source devel/setup.bash
//运行
roslaunch lio-sam run.launch
在运动LIO-SAM时可能会报错[lio_sam_imuPreintegration-2] process has died,[lio_sam_mapOptmization-5] process has died
这里我们参考了https://blog.csdn.net/mars9711/article/details/121795261
使用如下命令解决了问题
cd /usr/local/lib/
sudo mv libmetis.so /opt/ros/melodic/lib/
A-Loam
这里我们参考了https://blog.csdn.net/weixin_43807148/article/details/113739347
mkdir ~/A_LOAM_ws
cd ~/A_LOAM_ws
mkdir src
cd ~/A_LOAM_ws/src/
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
cd ~/A_LOAM_ws
catkin_make
在编译过程中,我们由于没有提前安装Ceres Solver 所以编译失败
Ceres Solver的安装过程我们参考了https://blog.csdn.net/weixin_44190648/article/details/125277120
wget ceres-solver.org/ceres-solver-1.13.0.tar.gz
tar xvf ceres-solver-1.13.0.tar.gz
cd ceres-solver-1.13.0
mkdir build
cd build
cmake ..
//这一步会花费几分钟时间
make -j4
但是我们发现在进行 cmake .. 时报错找不到glog
在这里我们参考了https://blog.csdn.net/weixin_44120025/article/details/128053713顺利解决
之后正常编译
刷新环境变量之后 就可以正常使用A-Loam了
source devel/setup.bash
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
3. Gazebo准备
这一部分我们参考了https://blog.csdn.net/weixin_43807148/article/details/113739347该博客借鉴的clearpath公司开发的huskyA200的ROS和gazebo文件
根据博客中的步骤安装好后 当我们需要使用自定义场景时 只需要将自己搭建的gazebo环境复制到husky_gazebo中即可
在安装过程中要注意的是:启动时报错缺什么库 自己对应安装就可以了
将launch文件中的world_name 修改为自己的模型名字即可
需要修改的launch文件在husky_gazebo下
测试时我们使用以下命令
roslaunch husky_gazebo husky_playpen.launch
4.联合仿真
步骤:任意启动一种SLAM算法 接着启动配置好的gazebo 通过键盘控制小车移动 就可以在RVIZ中看到建图效果了
以A-LOAM为例 启动命令为
#在A-LOAM工作空间下
source devel/setup.bash
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
#在husky工作空间下
source devel/setup.bash
roslaunch husky_gazebo husky_playpen.launch
这里我们自己搭建了一种环境
在Gazebo中控制小车运动 RVIZ是启动SLAM后自动开启的 可以在里面看到点云信息