本文仅作个人学习记录使用,过程会展示各种遇到的问题。欢迎大家参考 交流 指正。
A-LOAM在Github的开源地址:
https://github.com/HKUST-Aerial-Robotics/A-LOAM。
根据代码要求,需要安装Ceres.如果遇到环境变化导致源码不能编译通过,可修改源码。
1. 安装Ceres
(1)下载源码包
参考Github,直接把Ceres包给下载下来;或者
链接:https://pan.baidu.com/s/1VIEb8tcaFWksqJZkLzV77Q
提取码:85x3
(2)安装依赖输入:
#CMake(已安装)
sudo apt-get install cmake
#google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
#Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
#Eigen3(已安装)
sudo apt-get install libeigen3-dev
#SuiteSparse and CXSparse (optional)
sudo apt-get install libsuitesparse-dev
(3)打开终端在目录下编译源码安装,输入:
#tar zxf ceres-solver-2.1.0.tar.gz 如果下载的文件没有解压,可以通过该条指令解压
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.1.0
make -j4
make test
#Optionally install Ceres, it can also be exported using CMake which
#allows Ceres to be used without requiring installation, see the documentation
#for the EXPORT_BUILD_DIR option for more information.
sudo make install
关于解压和压缩指令的补充内容
1、压缩命令:
命令格式:
tar -zcvf 压缩文件名 .tar.gz 被压缩文件名可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径。
2、解压缩命令:
命令格式:
tar -zxvf 压缩文件名.tar.gz解压缩后的文件只能放在当前的目录。
(4)进行简单测试,在ceres-bin目录下运行:
bin/simple_bundle_adjuster ../ceres-solver-2.1.0/data/problem-16-22106-pre.txt
2.安装PCL
ubuntu18.04之后版本,安装pcl和octomap只需两行命令(若遇到问题,首先考虑是否已经换源),PCL安装如下:
# 这样安装的pcl版本为1.10
sudo apt-get install libpcl-dev pcl-tools
sudo apt-get install liboctomap-dev octovis
输入命令按tab查看补全结果
pcl_v
使用pcl-tools命令pcl_viewer查看.pcd点云文件:
pcl_viewer 0-SolarPanel1.pcd
3、设置工作环境
详细解说可以参考作者的该篇博客https://mp.csdn.net/mp_blog/creation/editor/132150971https://mp.csdn.net/mp_blog/creation/editor/132150971
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
如果出现git一直被拒绝的情况,可以百度解决,有很多方法
但是在进行catkin_make指令时出现错误如下
pcl requires c++14 or above
这个时候按下ctrl+c键终止继续
解决办法是
在下述文件夹中修改该文档,添加
set( CMAKE_CXX_STANDARD 14)
但是接着出现错误
/home/sx/catkin_ws/src/A-LOAM/src/kittiHelper.cpp:91:64: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
91 | cv::Mat left_image = cv::imread(left_image_path.str(), CV_LOAD_IMAGE_GRAYSCALE);
解决办法是
在下述文档中更换红色文字为
cv::IMREAD_GRAYSCALE
成功,可以继续
4、运行A_LOAM示例并保存地图
下载nsh_indooroutdoor.bag测试数据,
链接:https://pan.baidu.com/s/1VIEb8tcaFWksqJZkLzV77Q
提取码:85x3
将下载的文件aloam_velodyne放入到catkin_ws中,打开终端输入下面代码开始运行:
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
再打开一个终端记录地图(还是在catkin_ws这个文件夹中)
rosbag record -o bag_out /laser_cloud_map
在
nsh_indooroutdoor.bag
所在文件夹下打开终端,其实也就是cd到那个文件夹(还是在catkin_ws这个文件夹中)。开始播放数据集:rosbag play nsh_indoor_outdoor.bag
跑完之后ctrl+c关闭记录地图的终端会生成一个bag文件,将其转化为pcd格式
rosrun pcl_ros bag_to_pcd bag_out_xxxx.bag /laser_cloud_map pcd
在生成的文件夹pcd目录下,使用pcl_viewer工具打开点云,last.pcd为最后一个pcd文件名:
pcl_viewer last.pcd
当然以上内容可以直接简化为
在nsh_indooroutdoor.bag
所在文件夹下打开终端,其实也就是cd到那个文件夹(还是在catkin_ws这个文件夹中)。开始播放数据集:
rosbag play nsh_indoor_outdoor.bag