激光slam:LeGO-LOAM---代码编译安装与gazebo测试

这篇具有很好参考价值的文章主要介绍了激光slam:LeGO-LOAM---代码编译安装与gazebo测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LeGO-LOAM 简介

LeGO-LOAM 的英文全称是 lightweight and ground optimized lidar odometry and mapping。轻量化具有地面优化的激光雷达里程计和建图
lego-loam,SLAM,激光SLAM,算法,3d激光slam,LeGO-LOAM

其框架如下,大体和LOAM是一致的
lego-loam,SLAM,激光SLAM,算法,3d激光slam,LeGO-LOAM
LeGO-LOAM是基于LOAM的改进版本,其主要目的是为了实现小车在多变地形下的定位和建图,针对前端和后端都做了一系列的改进。

在原本的LOAM中比如应用场景是:AGV在草地中行驶,草地中的点会很有可能提取为角点,但是这种点是不稳定的,相比于楼房、树干等稳定的角点,希望要把地面上的角点去除掉。

LeGO-LOAM更轻量化,不影响精度的情况下减轻计算负荷,保障了嵌入式平台的实时性

相比LOAM改进部分

前端:

  • 1 对地面点进行分类和提取,避免一些边缘点的提取
  • 2 应用了一个简单的点云聚类算法,剔除了一些可能的outlier
  • 3 两步迭代求解前端里程计,不影响精度的情况下减轻计算负荷,保障了嵌入式平台的实时性

后端:

  • 1 使用slam中关键帧的概念对后端部分进行了重构
  • 2 引入回环检测和位姿图优化概念,使得地图的全局一致性更好

LeGO-LOAM 代码编译安装

github的地址是:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM

已被测试ROS版本有:

  • indigo
  • kinetic
  • melodic

它的依赖库有gtsam。所以需要先安装gtsam

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install

cmake 可以改成如下指令

cmake -DGTSAM_BUILD_EITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..

目的是设置一些宏
DGTSAM_BUILD_EITH_MARCH_NATIVE 是开启css加速的宏,要关闭。避免其它库(比如PCL或者自己代码)没有开启的话,会造成运行时出现异常的情况
DGTSAM_USE_SYSTEM_EIGEN 这个是用系统装的eigen编译的宏,要开启。OFF的话会用gtsam自带的eigen,代码运行存在两个版本eigen会容易出问题

之后下载LeGO-LOAM的ROS功能包

git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git

然后放在ROS的工作空间

然后编译,注意第一次编译要用

catkin_make -j1

之后再编译就不用 -j1 了

这么做的原因就是LeGO-LOAM有一些自定义的msg。
-j1 则会通过单线程编译。把自定义的msg编译到。

如果直接用catkin_make 则会根据计算机有几个核,进行几线程的编译。

编译成功的话会生成 LeGO-LOAM的 可执行文件
lego-loam,SLAM,激光SLAM,算法,3d激光slam,LeGO-LOAM

LeGO-LOAM Gazebo测试

下面通过直接搭的gazebo测试场景 对 LeGO-LOAM进行一个初步测试

在运行之前需要根据 使用的激光雷达型号,在utility.h文件中对些变量进行设置
该文件的位置在 include文件夹下:
lego-loam,SLAM,激光SLAM,算法,3d激光slam,LeGO-LOAM

激光雷达的点云 Topic 名称

extern const string pointCloudTopic = "/velodyne_points";

激光雷达的参数包括

  • 线束
  • 水平点数
  • 水平角点分辨率
  • 垂直角度分辨率
  • 与水平方向的夹角
  • 扫描到地面的激光线数

在gazebo中搭建的仿真场景是用的 Velodyne-16的激光雷达,其配置如下:

// VLP-16
extern const int N_SCAN = 16;
extern const int Horizon_SCAN = 1800;
extern const float ang_res_x = 0.2;
extern const float ang_res_y = 2.0;
extern const float ang_bottom = 15.0+0.1;
extern const int groundScanInd = 7;

然后运行在launch文件夹下的run.launch文件
再启动仿真场景,进行初步的测试

其结果如下:
lego-loam,SLAM,激光SLAM,算法,3d激光slam,LeGO-LOAM
lego-loam,SLAM,激光SLAM,算法,3d激光slam,LeGO-LOAM
在rviz中绿色的是角点,粉色的是面点
特征提取没有异常情况
lego-loam,SLAM,激光SLAM,算法,3d激光slam,LeGO-LOAM
建图情况文章来源地址https://www.toymoban.com/news/detail-608493.html

到了这里,关于激光slam:LeGO-LOAM---代码编译安装与gazebo测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeGO-Loam代码解析(一) 项目介绍、论文解读、配置安装

    目录 1.项目介绍 2. 论文解读  LeGO-LOAM:轻量级且地面优化的可变地形激光里程计与建图 2.1 摘要 2.2 介绍 2.3 正文部分1 --- System Review 2.4 正文部分2 --- Segmatation(地面点角面点分离) 2.5  Feature Extraction 正文部分3 --- 特征提取 2.6 Lidar Odom 正文部分4 --- 前端里程计 2.7 Liadr Mapping 

    2024年02月12日
    浏览(49)
  • 多传感器融合SLAM --- 5.Lego-LOAM论文解读及运行

    目录 1 Lego LOAM框架简介 2 论文解读 2.1 摘要部分 2.2 INTRODUCTION部分 2.3 系统描述

    2024年02月08日
    浏览(58)
  • LeGO-LOAM(1):运行LeGO-LOAM

    目录 # 1 安装与编译 ## 1.1 依赖项 ### 1.1.1 ros ### 1.1.2 gtsam ## 1.2 编译 # 2 系统介绍 # 3 运行demo ### 3.1 数据下载 ### 3.2 数据描述 ### 3.3 demo运行 ####(1)运行launch文件 ####(2)播放数据文件 #### (3)demo运行效果 # 4 Stevens data-set ## 4.1 数据下载 ## 4.2 数据说明与播放数据包方式 ## 4.

    2023年04月26日
    浏览(45)
  • Ubuntu20.04安装LeGO-LOAM和LIO-SAM

    Ubuntu20.04安装LIO-SAM真是挺折磨人的,填了一路的坑,在此记录分享一下,为大家安装编译算法提供一个全面的参考。 目录 1. GTSAM安装 1.1 GTSAM安装准备 1.1.1 目录/usr/local/lib下清理gatsam 1.1.2 目录/opt/ros/noetic/lib/下清理gtsam 1.2 GTSAM安装过程 2. LIO-SAM算法依赖项安装 3. LeGO-LOAM算法编

    2024年04月28日
    浏览(82)
  • LeGo-LOAM 源码解析

    A lightweight and ground optimized lidar odometry and mapping (LeGO-LOAM) system for ROS compatible UGVs. The system takes in point cloud from a Velodyne VLP-16 Lidar (placed horizontal) and optional IMU data as inputs. It outputs 6D pose estimation in real-time. LeGO-LOAM(激光SLAM,IMU+LiDAR),以LOAM为基础,实现与其同等的精度同时大大

    2024年02月09日
    浏览(45)
  • Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM

    在我第一篇博文Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+Gazebo仿真运行ORB-SLAM2+各种相关库的安装的基础环境下跑通LOAM系列 首先按照上一篇文章已经安装好了ROS noetic、Eigen3.4.0、OpenCV4.2.0和PCL1.10等三方库,它们的安装不再赘述,另外文章中 使用的数据 已经在

    2024年02月06日
    浏览(85)
  • 【3D激光SLAM】LOAM源代码解析--transformMaintenance.cpp

    ·【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp ·【3D激光SLAM】LOAM源代码解析–laserOdometry.cpp ·【3D激光SLAM】LOAM源代码解析–laserMapping.cpp ·【3D激光SLAM】LOAM源代码解析–transformMaintenance.cpp 本系列文章将对LOAM源代码进行讲解,在讲解过程中,涉及到论文中提到的部分, 会结

    2024年02月11日
    浏览(50)
  • 【3D激光SLAM】LOAM源代码解析--laserOdometry.cpp

    ·【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp ·【3D激光SLAM】LOAM源代码解析–laserOdometry.cpp ·【3D激光SLAM】LOAM源代码解析–laserMapping.cpp ·【3D激光SLAM】LOAM源代码解析–transformMaintenance.cpp 本系列文章将对LOAM源代码进行讲解,在讲解过程中,涉及到论文中提到的部分, 会结

    2024年02月11日
    浏览(76)
  • 【3D激光SLAM】LOAM源代码解析--scanRegistration.cpp

    ·【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp ·【3D激光SLAM】LOAM源代码解析–laserOdometry.cpp ·【3D激光SLAM】LOAM源代码解析–laserMapping.cpp ·【3D激光SLAM】LOAM源代码解析–transformMaintenance.cpp 本系列文章将对LOAM源代码进行讲解,在讲解过程中,涉及到论文中提到的部分, 会结

    2024年02月11日
    浏览(37)
  • 从零开始的三维激光雷达SLAM教程第二讲(搭建Gazebo仿真环境,并添加动态障碍物)

    毕业设计打算做三维激光SLAM,记录一些学习历程,也给后面人一点帮助。本教程不涉及SLAM基本概念(如果没有自行补充),主要包含以下几部分内容。 搭建激光SLAM的运行环境并运行数据集 在Gazebo中构建仿真地图并添加动态障碍物,使用仿真小车采集激光数据。 A-LOAM详解,

    2024年02月01日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包