LOAM-Livox学习文章一·环境配置及运行

因为基础比较差,所以希望通过学习LOAM-Livox能够把激光数据的操作步骤走通

  1. 能够复现读数据&存数据操作
  2. 能够复现点云配准流程(非原理)
  3. 能够做好笔记自己以后方便查看

首先把我参考的内容放在下面:

  1. 在虚拟机+20.04配置环境(有opencv4问题的解决办法) https://www.cnblogs.com/Pyrokine/p/16292786.html
  2. Ceres版本太高导致部分函数缺失的解决办法 https://blog.csdn.net/weixin_56024057/article/details/128344034
  3. livox_laserMapping崩溃问题解决办法 https://www.cnblogs.com/Pyrokine/p/16292786.html
  4. LOAM-Livox源码 https://github.com/hku-mars/loam_livox

非常感谢开源工作者!

环境说明

我当前使用的环境为Ubuntu20.04,下面所有的操作都在此基础上.
LOAM-Livox 需要配置PCL库和Ceres库:

PCL库的安装教程参考 https://blog.csdn.net/weixin_41836738/article/details/121451965
Ceres库的安装教程参考 http://ceres-solver.org/installation.html
我安装的PCL库版本为1.13.1, Ceres版本为1.14.0

下面是配置环境时遇到的一些问题:

  1. opencv相关的错误和对应的修改方式
// loam_livox/source/laser_feature_extractor.hpp:42
#include <opencv2/opencv.hpp>

// loam_livox/source/read_camera.cpp:25
cap.set(cv::CAP_PROP_SETTINGS, 1); //opens camera properties dialog

// loam_livox/source/read_camera.cpp:27
cap.set(cv::CAP_PROP_FRAME_WIDTH, 320);

// loam_livox/source/read_camera.cpp:28
cap.set(cv::CAP_PROP_FRAME_HEIGHT, 240);
  1. Ceres相关的错误和对应修改方式

local_parameterization.h报错
在这里插入图片描述
我的错误没有截图,这里放一个同样错误的截图.
将使用的Ceres库版本更改为1.14.0,问题就解决了.

  1. livox_laserMapping崩溃的问题,这个问题发生在程序运行时

程序运行过程中突然崩溃,一般仅运行一小部分就会崩溃
[livox_laserMapping-3] process has died [pid 185196, exit code -11
修改loam_livox目录下的CMakeLists.txt文件第五行 set(CMAKE_CXX_FLAGS “-std=c++17”)
更换C++标准后问题消失

Ceres库安装记录

因为不同程序要求的Ceres版本可能不一样,因此可以按照下面方式将Ceres库直接安装在loam-livox文件夹下面(新建的一个install文件夹内),PCL库的安装方法类似,但是下面的安装方案要求依赖库都已经安装完成!

cd loam_livox
mkdir suprebuild
gilt clone -b 1.14.0 https://github.com/ceres-solver/ceres-solver
chmod +x sh_install_ceres.sh
./sh_install_ceres.sh

其中,sh_install_ceres.sh文件内容如下:

#! /bin/bash

BUILD_TYPE=Release

# 配置安装路径和build路径
root_dir=$(cd ..; pwd)
INSTALL_DIR=${root_dir}/install
cmake -E make_directory $INSTALL_DIR
# echo ${INSTALL_DIR}

# 在使用cmake指令后用于检查
check_status_code() {
   if [ $1 -ne 0 ]
   then
	echo "[Superbuild] Failure. Exiting."
	exit 1
   fi
}

cd ceres-solver || (echo "Failed to go in ceres-solver" && exit)
cmake -E make_directory build && cd build

# https://blog.csdn.net/qq_32077121/article/details/129791342
# 指定安装位置
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} 
check_status_code $?
cmake --build . --config ${BUILD_TYPE} --target install --parallel 6
check_status_code $?
echo "ceres安装完成"

执行上述安装操作后修改loam_livox文件夹下的CMakeLists.txt代码

set(Ceres_DIR /home/whu/ThirdLib/SLAM/LOAM-Livox/src/loam_livox/install/lib/cmake/Ceres)

这里我参考了 https://blog.csdn.net/weixin_38907150/article/details/85257985
使用opencv、Eigen、ceres库时指定查找路径方法

程序运行

任意打开第一个命令行(可以没有)

roscore

在loam-livox的ros工程空间打开命令行

source devel/setup.bash 
roslaunch loam_livox rosbag_mid100.launch

在bag数据所在目录打开一个命令行

rosbag play mid100_example.bag

程序运行结果如下:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LOAM-Livox是基于Livox激光雷达的LOAM(Lidar Odometry and Mapping)算法的一个变种。与传统的LOAM算法相比,LOAM-Livox算法在激光雷达硬件上有所改进和优化。 LOAM-Livox算法的原理和传统LOAM算法类似,也是通过激光雷达数据进行机器人的定位和建图。它同样包括前端和后端两个模块。 前端模块主要负责激光雷达数据的处理和特征提取。LOAM-Livox使用了Livox激光雷达的点云数据,并针对Livox激光雷达的特点进行了适应性调整。由于Livox激光雷达使用了固定角度分辨率和固定线数的设计,LOAM-Livox算法首先对点云数据进行去噪和滤波处理。然后,它使用曲率特征来提取特征点,并进行特征匹配。 后端模块通过优化方法对特征点的匹配关系进行优化,从而估计机器人的位姿和构建地图。LOAM-Livox算法使用了基于因子图的非线性优化方法,通过最小化特征点匹配误差来优化机器人位姿,同时考虑了激光雷达的时间同步和畸变校正。 整个算法的核心思想仍然是通过特征点提取和匹配来估计机器人的位姿变化,并通过优化算法进一步优化位姿和地图。LOAM-Livox算法在适应Livox激光雷达硬件特点的同时,保持了LOAM算法的实时性和精度。 总结来说,LOAM-Livox算法是基于Livox激光雷达的LOAM算法的一个变种,通过对Livox激光雷达数据的处理和特征提取,以及优化方法,实现了机器人的定位和建图功能。它在适应特定激光雷达硬件上有一定的优势,并广泛应用于无人驾驶、机器人导航等领域。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值