Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Fast-Lio SLAM.上篇

Fast-Lio SLAM.上篇

作者头像
云深无际
发布于 2022-11-29 06:56:36
发布于 2022-11-29 06:56:36
90200
代码可运行
举报
文章被收录于专栏:云深之无迹云深之无迹
运行总次数:0
代码可运行

我很早以前就想把公众号的广告关了,我虽然粉丝少,但是却注重体验。

应该大家看不到什么广告了,我还是很爱我滴粉丝们的

另外也感谢俊哥把他的显示器给我用,虽然有些光线,但是不重要了:

终于有了外置的屏幕

但是可能立着看代码是好的,但是实在是太长了,有点受不了~

工友在机器上面编译了好几天也失败了,后面又换了MAC(笑死M1的片子,开虚拟机编译)又是报错的一天。

没啥办法了,现在就是这样接外面搞

相当于雷达和计算平台,就处理回传的点云数据,然后,这里使用一个Ubuntu的桌面版本来运行建图的包。

先安装PCL库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt-get update  
$ sudo apt-get install git build-essential linux-libc-dev
$ sudo apt-get install cmake cmake-gui
$ sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
$ sudo apt-get install mpi-default-dev openmpi-bin openmpi-common 
$ sudo apt-get install libflann1.9 libflann-dev
$ sudo apt-get install libeigen3-dev 这个需要自己下载正确版本安装,我的是3.3.7
$ sudo apt-get install libboost-all-dev
$ sudo apt-get install libvtk7.1p-qt
$ sudo apt-get install libvtk7.1p 
$ sudo apt-get install libvtk7-qt-dev(按照错误提示一步一步安装所需要的东西)
$ sudo apt-get install libqhull* libgtest-dev
$ sudo apt-get install freeglut3-dev pkg-config
$ sudo apt-get install libxmu-dev libxi-dev
$ sudo apt-get install mono-complete
$ sudo apt-get install openjdk-8-jdk openjdk-8-jre

遇到错误自己研究

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git clone https://github.com/PointCloudLibrary/pcl.git 

PCL的库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd pcl 
$ mkdir release 
$ cd release
$ cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr .. 
$ make  
$ sudo make install

然后安装,这里我就不验证了,应该我是安装上了,如果没有安装好,寄了

在/usr/include,/usr/lib, /usr/bin d等目录下可以看到于pcl有关的头文件、库、和可执行程序等文件。

继续安装数值计算的模板库:

Eigen 是C++语言里的一个开源模版库,支持线性代数运算,矩阵和矢量运算,数值分析及其相关的算法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install libeigen3-dev

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/eigenteam/eigen-git-mirror

#安装

cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install

#安装后,头文件安装在/usr/local/include/eigen3/
#移动头文件

 sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 

后面这个移动的命令我没有执行

Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。使用ceres库必须先安装eigen库,ceres库是基于eigen的。

这个库需要在Git里面下载解压一下,然后安装的时候不要按照官方的安装命令来,有很多的错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

安装这个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ceres-solver-2.0.0
mkdir build
cd build
cmake ..
make -j4

执行这个命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo make install

我的ROS安装了这么多

激光雷达的SDK安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install cmake

这个不用执行,不然你以为上面是这么编译的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build && cmake ..
make
sudo make install

按照顺序一条一条的执行,笑死了,有的人一股脑的全复制执行,我喂你吃饭好不好。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/Livox-SDK/Livox-SDK/blob/master/README_CN.md

SDK的位置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/Livox-SDK/livox_ros_driver

这个就是我们要安装的雷达的ROS驱动,相当于比SDK更加高一层的包装。不愧是中国人做的东西,真长脸,有中文的doc。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ws_livox
catkin_make

这个执行的时候,注意要把ros的环境激活一下,不然就报错了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source ./devel/setup.sh

记得安装好以后搞一下这个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
roslaunch livox_ros_driver [launch file] [param]

这个是使用雷达的命令

  1. 如果 [param] 参数项为空,则览沃 ROS 驱动程序会根据配置文件中的具体配置来连接对应的设备,具体连接规则如下:

    当配置文件中指定的设备连接状态配置为使能连接时 (true) ,览沃 ROS 驱动程序只会连接该配置文件中指定的设备;

说明

    (1)该配置文件位于 "ws_livox/src/livox_ros_driver/config" 目录下;

    (2)当配置文件中指定的设备连接状态全部配置为禁止连接 (false) 时,览沃 ROS 驱动程序会自动连接扫描到的所有设备;

  1. 如果 [param] 参数为 LiDAR 的广播码,以 LiDAR( 广播码为 0TFDG3B006H2Z11 ) 和 LiDAR ( 广播码为 1HDDG8M00100191 ) 为例,使用的具体命令如下 :
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
roslaunch livox_ros_driver livox_lidar_rviz.launch bd_list:="0TFDG3B006H2Z11&1HDDG8M00100191"

每台览沃 LiDAR 设备拥有一个唯一的广播码。广播码由14位字符长度的序列号和一个额外的字符组成( 1、2或者 3),一共 15 位字符长度,上述序列号位于 LiDAR 机身外壳的二维码下面(见下图)。广播码被用来指定要连接的 LiDAR 设备,详细组成格式如下:

我的小工友数了一晚上然后笃定的告诉我,这个东西上面是14位和doc上面写的15不一样,我也数量,确实是14,然后15是需要末尾+1,哥哥,我吐了。

上图中 X ,在 MID-100_Left/MID-40/Horizon/Tele 产品中对应为 1 ,在 MID-100_Middle 中对应为 2,在MID-100_Right 中对应为 3 。

这个是驱动可以跑起来的任务

三个参数是具体任务跑起来可以设置的一些参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

float32 x               # X axis, unit:m
float32 y               # Y axis, unit:m
float32 z               # Z axis, unit:m
float32 intensity       # the value is reflectivity, 0.0~255.0
uint8 tag               # livox tag
uint8 line              # laser number in lidar

雷达的点云格式

直接连接 LiDAR 时,使用 livox_lidar_config.json 来配置 LiDAR 参数,文件内容示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
   "lidar_config": [
      {
         "broadcast_code": "0TFDG3B006H2Z11",
         "enable_connect": true,
         "return_mode": 0,
         "coordinate": 0,
         "imu_rate": 1,
         "extrinsic_parameter_source": 0
      }
    ]
}

格式

乱吗?确实乱,下篇文章继续写,先溜了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://blog.csdn.net/weixin_44857882/article/details/119877566
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/ceres-solver/ceres-solver/releases/tag/2.1.0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://eigen.tuxfamily.org/index.php?title=Main_Page
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://blog.csdn.net/weixin_41836738/article/details/121451965
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
港大Loam-纯雷达建图
众所周知最近在和工友搞SLAM,好家伙工友M1版的MAC+虚拟机跑ROS(其实一开始在英伟达的XAVIER上面跑来着,无奈空间不够,寄了),总之就是大概一周内都在调试(断断续续的那种),今天是工作日,我也实在看不下去了,也投入到了这个令人头秃的工作中,事实证明这个东西是真的熬人。
云深无际
2022/11/29
6760
港大Loam-纯雷达建图
Ubuntu18.04安装PCL(详细教程)
Ubuntu18.04安装ROS的版本为ros-melodic Ubuntu16.04安装ROS的版本为ros-kinetic
全栈程序员站长
2021/04/07
8.5K0
实战 | 手把手教你跑三维重建代码!
原文链接:https://mp.weixin.qq.com/s/VNJGtNFW6kZ-n8mY1yrH0Q
用户1150922
2021/12/07
1.5K0
实战 | 手把手教你跑三维重建代码!
实战 | 手把手教你跑三维重建代码!
OpenMVS是三维重建的一个成熟开源框架,综合重建效果和性能,该算法是目前MVS(Multi-View Stereo)相关的所有开源库中最好的一个。该算法的框架如下所示
AI算法与图像处理
2021/04/21
2.5K0
实战 | 手把手教你跑三维重建代码!
cmake报错找不到Glog、Gflags、Eigen3
3、在自己项目的“CmakeLists.txt”文件中增加一行对glog路径的指定:
小锋学长生活大爆炸
2021/11/04
5.8K0
【VSLAM】ORB-SLAM3安装部署与运行
ORB-SLAM3是一种基于视觉传感器的实时单目、双目和RGB-D SLAM系统。
DevFrank
2024/07/24
7260
apap图像拼接_20张以上多图拼图软件
项目地址:https://cs.adelaide.edu.au/~tjchin/apap/ 其中MDLT是两张图片的拼接,调试过程基本很简单,不再赘述; 对于BAMDLT多图拼接代码,现将出现的问题及解决办法整理如下:
全栈程序员站长
2022/11/09
7070
测评活动分享
在点云PCL公众号相机测评活动的支持下,首先拿到了小觅相机,所以这篇文章将对小觅MYNTEYE-S1030-IR在ORB-SLAM2和RTAB-Map两种SLAM方案下的效果进行测评,为了增强对比效果会和我自制双目摄像头进行对比。同时这还是一篇干货满满的技术文章,我会写下详细的实验环境搭建步骤,相信你会学到很多东西!下面开始快乐的学习旅程吧!
点云PCL博主
2019/08/28
2.2K0
测评活动分享
ceres-solver
ceres库是算法优化库 由于平时会经常用到这些库,每次找网址都觉得麻烦,特此整理记录一下 官方教程: http://www.ceres-solver.org/installation.html# 安装依赖 # CMake sudo apt-get install cmake # google-glog + gflags sudo apt-get install libgoogle-glog-dev # BLAS & LAPACK sudo apt-get install libatlas-bas
小飞侠xp
2020/02/18
8650
第10节 libtorch与torchvision交叉编译(ARM与安卓 ios)
libtorch cross compile on aarch64-linux-gnu-gcc include torchvision
AI拉呱
2022/09/21
2K0
小米机器狗铁蛋资料整理 cyberdog ros2
基本信息 铁蛋默认用户是mi, 密码为123 使用USB线连接Download接口, 可通过ssh mi@192.168.55.1连接铁蛋进行内部操作 软件架构 我们基于ROS 2实现了大部分的机器人应用, 如架构图所示, 包括多设备链接、多模态感知、多模态人机交互、自主决策、空间定位、导航和目标追踪等功能. 目前使用的DDS中间件是Cyclone DDS, ROS 2的版本为Galactic.
zhangrelay
2022/05/01
3.6K0
小米机器狗铁蛋资料整理 cyberdog ros2
rgbd slam v2_rgb数据格式
首先rgbdslamv2 是2014年开源出来的一个机遇RGBD相机构建点云地图的框架【1】,作者已经在github上开源出了代码【2】,并且给出了一个一键安装的脚本(install.sh)。但是我们会发现,我们直接运行这个install脚本会在~/Code目录下创建一个rgbdslam_catkin_ws 工作空间,然后我们按照传统的catkin_make命令进行编译会发现代码直接编译通过,,不会提示任何错误信息,但是在使用命令
全栈程序员站长
2022/09/29
4760
rgbd slam v2_rgb数据格式
【VSLAM】VINO-Mono安装部署与运行
Github地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono
DevFrank
2024/07/24
2740
【VSLAM】VINO-Mono安装部署与运行
Ubuntu18.04下载安装基于使用QT的pcl1.13+vtk8.2,以及卸载
在Ubuntu 18.04上安装基于Qt的PCL(点云库)1.13和VTK(可视化工具包)8.2以及卸载它们需要遵循一系列步骤。
Power
2025/03/30
1350
Ubuntu_ROS中应用kinect v2笔记
http://www.ros.org/news/2014/09/microsoft-kinect-v2-driver-released.html
zhangrelay
2019/01/23
2.8K0
虚拟机安装以及PCL的配置(2)
我们是接着上一篇文章安装虚拟机与pcl的配置(1)继续 使用快捷键“ctrl+alt+T”,来打开一个命令窗口如下图 比如我们在命令窗口下输入ls 我们会看到在主目录下的所有文件 下图是我插上u盘的
点云PCL博主
2019/07/31
1.3K0
虚拟机安装以及PCL的配置(2)
ndzip使用cuda+nvcc进行环境搭建
由于我使用的 WSL ,cuda 一直没配置好,就不用GPU了,所以把 DWITH_CUDA_BACKEND设为NO。命令如下:
繁依Fanyi
2023/05/07
7630
ndzip使用cuda+nvcc进行环境搭建
Ubuntu 16.04 Install OpenCV
---- 安装opencv有很多种方式,我列出了两种方式。并针对第二种方式进行了详细的安装解释。 从Ubuntu源安装opencv sudo apt-get install libopencv-dev python-opencv 从opencv官方源代码安装 1.安装opencv所依赖的包 # KEEP UBUNTU OR DEBIAN UP TO DATE sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y dist-upgrad
吕海峰
2018/04/03
1.6K0
(一)ROS系统入门 Getting Started with ROS 以Kinetic为主更新 附课件PPT
ROS机器人程序设计(原书第2版)补充资料 教案1 ROS Kinetic系统入门
zhangrelay
2019/01/23
3.4K0
【C++】开源:ceres和g2o非线性优化库配置使用
ceres项目Github地址:https://github.com/ceres-solver/ceres-solver
DevFrank
2024/07/24
3840
相关推荐
港大Loam-纯雷达建图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档