从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)

article/2025/9/30 21:34:01

文章目录

  • 引言
  • 第一节:运行xx-LOAM与数据集
    • 编译A-LOAM
      • 安装ceres(最小二乘求解库)
      • 安装pcl(最常见的点云处理库)
      • 安装OPENCV
      • catkin_make
    • 制作Kitti数据集
    • 运行A-LOAM建图
    • LOAM安装
    • Lego-LOAM安装
      • gtsam安装
    • 结果

引言

毕业设计打算做三维激光SLAM,记录一些学习历程,也给后面人一点帮助。本教程不涉及SLAM基本概念(如果没有自行补充),主要包含以下几部分内容。

  1. 搭建激光SLAM的运行环境并运行数据集
  2. 在Gazebo中构建仿真地图并添加动态障碍物,使用仿真小车采集激光数据。
  3. A-LOAM详解,算法+代码
  4. Lego-LOAM详解,算法+代码

本教程所有代码都在github上:github

第一节:运行xx-LOAM与数据集

编译A-LOAM

先从git上clone代码,使用了我常用的ghproxy代理下载,直接clone可能会有网络问题,当然也有很多其他办法

git clone https://ghproxy.com/https://github.com/HKUST-Aerial-Robotics/A-LOAM.git

安装ceres(最小二乘求解库)

安装ceres,先安装依赖

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

然后下载下面的文件并解压进入

https://github.com/ceres-solver/ceres-solver/releases/tag/2.0.0

然后是我们最熟悉的安装(不熟悉说明用的太少了),如果你发现有错很可能是需要加sudo

mkdir build
cd build
cmake ..
make -j8 #用八个核编译
sudo make install # 安装

安装pcl(最常见的点云处理库)

现在的版本基本上都可以一键安装

sudo apt-get install libpcl-dev pcl-tools

注意:如果是在ubuntu20.04在后面编译的时候需要把cmakelist里面的set(CMAKE_CXX_FLAGS “-std=c++11”)改成c++14,因为这个版本pcl只能用C++14编译

安装OPENCV

新版本一般都自带了opencv,但是可能找不到,你需要把#include <opencv/cv.h>改为#include <opencv2/imgproc.hpp>
你也可以不安装opencv,删除src下的Kittihelper,我后面会使用将Kitti转ROSbag的方式制作数据集,然后山调scanRegistration文件中的包含的opencv头文件,因为根本没用到。

catkin_make

这个不用说了,catkin_make就行了

制作Kitti数据集

其实网上直接就有很多rosbag,但是还是将Kitti数据集制作成rosbag,这样在其他SLAM算法中也可以使用对比,总规是要对比算法效果的。
你可以通过官网下载,也可以通过连接下载(也在github上写了)
然后安装kitti转rosbag工具

pip install kitti2bag

可能会出现以下问题,主要针对noetic的python3问题

  • 安装完成提示无命令可以参考这个
  • numpy版本不正确且无法卸载可以看这个
    下载一组数据和calib文件,解压后在一个文件夹下,运行命令就会生存bag文件
kitti2bag -t 2011_09_26 -r 0001 raw_synced .

在这里插入图片描述

运行A-LOAM建图

先启动aloam,kitti用的是64线的velodyne雷达

roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch  

再播放rosbag,注意要重新映射topic

rosbag play kitti_2011_09_26_drive_0001_synced.bag /kitti/velo/pointcloud:=/velodyne_points

还有一个阴间问题,如果是noetic版本(问题真多),一定要把所有原文件里面的/camera_init改成camera_init

LOAM安装

配置完aloam后,直接下载catkin_make即可

https://github.com/laboshinl/loam_velodyne.git

需要注意如果出错很可能是这个问题修改cmakelist
如果noetic一样要/camera_init改成camera_init,我提供的链接已经修改好了
然后运行即可

roslaunch loam_velodyne loam_velodyne.launch 

可以在launch里面修改线数(默认16线)

Lego-LOAM安装

一样下载编译,但是要安装gtsam和opencv

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

可能有的问题(我其他都正常,在用noetic的时候各种问题,建议不要使用noetic):

  • gtsam版本一定要正确
  • libmetis.lib
  • 点云存在NAN
  • 没有intensity
  • eigen的int问题

gtsam安装

下载压缩包

wget https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip

然后老套路安装就行了,可能cmake …时会出错
参考解决方案

结果

在这里插入图片描述


http://chatgpt.dhexx.cn/article/rJefJSrc.shtml

相关文章

三维激光雷达点云处理分类

三维激光雷达点云处理分类TOC 目录 激光雷达点云的研究激光雷达数据的处理方法分类体素转化为图像直接对点云操作 三种方式的优劣 激光雷达点云的研究 目前&#xff0c;学术界和业界对于激光雷达点云的处理方式的研究变的非常热门。我认为原因有二&#xff1a; 来自学术界的推力…

三维激光雷达点云拼接

写在前面 这是一篇于2017.4.19完成的实验报告&#xff0c;现整理成博客&#xff0c;当时处于摸索阶段&#xff0c;水平有限&#xff0c;后来也未对点云处理进行深入的研究&#xff0c;在此只是记录一下。 主要参考资料为CloudCompare wiki document。 对三维点云的处理&…

基于二维激光雷达的三维激光扫描系统的设计与实现

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 学习之路&#xff0c;长路漫漫&#xff0c;写学习笔记的过程就是把知识讲给自己听的过程。这个过程中&#xff0c;我们去记录思考的过程&#xff0c;便于日后复习&#xff0c;梳理自己的思路。学习之乐&#xff0c;独乐乐&a…

激光雷达三维检测包含哪些内容?

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 文章导读 本文是针对一篇激光雷达三维目标检测的综述性文章的解读分析《Deep 3D Object Detection Networks Using LiDAR Data A Review》&#xff0c;从激光雷达的基础…

从零开始的三维激光雷达SLAM教程第二讲(搭建Gazebo仿真环境,并添加动态障碍物)

文章目录 引言第二节&#xff1a;搭建仿真环境下载velodyne激光模拟功能包安装turtlebot3模拟器安装三维激光雷达到turtlebot3上构建Gazebo地图添加动态障碍物操作机器人建图最终效果 引言 毕业设计打算做三维激光SLAM&#xff0c;记录一些学习历程&#xff0c;也给后面人一点…

Cknife与一句话木马提权

Cknife:一个管理网站的工具&#xff0c;支持动态脚本的网站的管理&#xff0c;用来连接一句话木马 一句话木马:一句恶意代码&#xff0c;可以是某种脚本语言&#xff0c;用来与客户端建立联系 通过中国菜刀连接一句话木马达到拿下网站webshell

Cknife的安装

下载菜刀&#xff0c;打开Cknife.jar软件 注意&#xff1a;这里的菜刀文件存放的目录不要带有中文 打开 没错&#xff0c;这是我们熟悉的pikachu 但是这个网站的上传漏洞我还没学&#xff0c;所以暂时没法操作&#xff08;等发了上传漏洞的视频我就来改&#xff09; 基本思路…

cknife连接失败

这是什么原因啊

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

首先介绍一下IntelliJ IDEA生成jar包的方式&#xff1a; 1、打开项目&#xff0c;打开FIile->Project Structure...菜单.如下图&#xff1a; 选中Artifacts,点号&#xff0c;选择JAR,再选择From modules with dependencies...&#xff0c;如下图&#xff1a; 在打开的界面中…

dvwa 切换php版本以及phpstorm -xdebug的配置使用

最近由于需要对dvwa 进行一些更改&#xff0c;对php啥也不懂的我&#xff0c;开始研究一下php开发环境&#xff0c;以及具体的搭建过程&#xff1b; 首先是需要下载安装破解phpstorm&#xff08;不多说了&#xff0c;下载官网地址&#xff0c;破解网上一堆文章&#xff09; 1…

上传漏洞-一句话木马

声明&#xff1a;为什么又写一篇关于一句话木马&#xff0c;对&#xff0c;我第一次没写明白&#xff0c;直写了一句话木马的简单制作&#xff0c;但是还是有很多同学真的看不懂&#xff0c;所以我今天改一下&#xff0c;这次精写&#xff01; 上传漏洞-一句话木马 讲述内容&…

[对抗训练]“中国菜刀”安装,20180222

[对抗训练]“中国菜刀”安装与使用 一、下载开源代码 从GitHub上下载开源的“中国菜刀”Java项目代码 地址&#xff1a;https://github.com/Chora10/Cknife压缩文件见附件1。 二、将项目存为可执行jar 打开eclipse&#xff08;或其他java编辑器&#xff09; 添加解压后的“中国…

我的java16和java8冲突解决办法(java版本冲突解决方法)

我的java16和java8冲突解决办 我的问题 vscode 支持java11以上burpsuite 支持java11以上cknife 只能java8JEB 只能java8全局变量设置java16的路径 对于java8 直接把只支持java8的文件目录放到java8中 在这里中用的是java8,这个目录有java文件 这个脚本可以自动隐藏窗口打开一…

msf上传文件到服务器,利用MSF技巧进入服务器

原标题&#xff1a;利用MSF技巧进入服务器 首先需要一台公网的机器,这是留着方便以后转发或者反弹用的. 1.生成payload的方式 msfvenom -p windows/meterpreter/reverse_tcp LHOST1.2.3.4 LPORT2333 -f exe -o 1234.exe 之后把后门复制出来上传到webshell 推荐不使用exe后缀 因…

mbp 封神台靶场 六(笔记)

打开链接&#xff0c;根据题目提示&#xff0c;flag在c盘根目录下&#xff0c;接上一关的网页后台&#xff0c;打开c盘,发现确实存在flag.txt&#xff0c;但是提示没有权限。 于是知道本关需要我们去进行提权操作&#xff0c;打开D盘&#xff0c;发现cmd.exe和iis6.exe&#xf…

张小白的渗透之路(五)——上传漏洞及解析漏洞详解

前言 web应用程序通常会有文件上传的功能&#xff0c;例如在BBS发布图片、在个人网站发布压缩包&#xff0c;只要web应用程序允许上传文件&#xff0c;就有可能存在文件上传漏洞。 上传漏洞与sql注射相比&#xff0c;风险更大&#xff0c;如果web应用程序存在上传漏洞&#xf…

Kali下常见webshell管理工具汇总

转 自 https://www.ohlinge.cn/kali/kali_webshell.html 0x01 前言 Kali Linux作为一款专为渗透测试而生的Linux操作系统&#xff0c;在安全界的影响广泛。一般的webshell在Windows下面经常使用Chopper(中国菜刀)来管理&#xff0c;那么在Linux下面&#xff0c;有没有类似的工…

菜刀渗透

快速搭建discuz论坛 使用kali下BurpSuite对discuz后台注入php木马 使用Cknife“菜刀”.上传webshell木马到网站 使用Webshell查看mysql数据库密码并盗取数据库 快速搭建discuz论坛 攻击思路 想要拿下一台主机A的权限&#xff1a; 1、了解一下这个服务器:端口,服务器版本…

无法直接打开jar文件,提示“你要以何种方式打开.jar文件”(已解决)

问题引入&#xff1a; 网络安全&CTF竞赛中有很多封装好的工具类似Cknife/CTFcrackTools.jar/Stegsolve.jar需要java环境打开 问题描述&#xff1a; .jar文件只能通过dos命令打开&#xff0c;点击jar文件提示你要以何种方式打开.jar文件&#xff0c;并且选中jdk/bin/java…

开源渗透测试工具合集

子域名枚举工具 子域枚举和信息收集工具 Anubis 项目地址&#xff1a;https://github.com/jonluca/Anubis使用名为 Hacking with search engine 的技术列出有关主域的子域 N4xD0rk 项目地址&#xff1a;https://github.com/n4xh4ck5/N4xD0rk子域名爆破枚举工具 subDomainsBrut…