分享

Fast-Lio SLAM.上篇

 云深无际 2022-10-15 发布于内蒙古

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

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

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

终于有了外置的屏幕

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

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

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

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

先安装PCL库:

$ 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

遇到错误自己研究

$ git clone https://github.com/PointCloudLibrary/pcl.git 

PCL的库

$ 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++语言里的一个开源模版库,支持线性代数运算,矩阵和矢量运算,数值分析及其相关的算法。

sudo apt-get install libeigen3-dev

安装

git clone https://github.com/eigenteam/eigen-git-mirror
#安装
cd eigen-git-mirrormkdir buildcd buildcmake ..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里面下载解压一下,然后安装的时候不要按照官方的安装命令来,有很多的错误。

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

安装这个

cd ceres-solver-2.0.0mkdir buildcd buildcmake ..make -j4

执行这个命令

sudo make install

我的ROS安装了这么多

激光雷达的SDK安装:

sudo apt install cmake

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

git clone https://github.com/Livox-SDK/Livox-SDK.gitcd Livox-SDKcd build && cmake ..makesudo make install

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

https://github.com/Livox-SDK/Livox-SDK/blob/master/README_CN.md

SDK的位置

https://github.com/Livox-SDK/livox_ros_driver

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

git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src

执行

cd ws_livoxcatkin_make

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

source ./devel/setup.sh

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

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 ) 为例,使用的具体命令如下 :

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 。

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

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


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

雷达的点云格式

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

{   "lidar_config": [      {         "broadcast_code": "0TFDG3B006H2Z11",         "enable_connect": true,         "return_mode": 0,         "coordinate": 0,         "imu_rate": 1,         "extrinsic_parameter_source": 0      }    ]}

格式

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

https://blog.csdn.net/weixin_44857882/article/details/119877566
https://github.com/ceres-solver/ceres-solver/releases/tag/2.1.0
http://eigen.tuxfamily.org/index.php?title=Main_Page
https://blog.csdn.net/weixin_41836738/article/details/121451965

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多