win11+vmware17+ubuntu20+ros1——A-LOAM算法

本文仅作个人学习记录使用,过程会展示各种遇到的问题。欢迎大家参考 交流 指正。

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/132150971icon-default.png?t=N7T8https://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一直被拒绝的情况,可以百度解决,有很多方法

loam_leanring/A-LOAM at master · shoufei403/loam_leanring · GitHubicon-default.png?t=N7T8https://github.com/shoufei403/loam_leanring/tree/master/A-LOAM


但是在进行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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值