前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >港大Loam-纯雷达建图

港大Loam-纯雷达建图

作者头像
云深无际
发布2022-11-29 14:58:36
5200
发布2022-11-29 14:58:36
举报
文章被收录于专栏:云深之无迹云深之无迹

众所周知最近在和工友搞SLAM,好家伙工友M1版的MAC+虚拟机跑ROS(其实一开始在英伟达的XAVIER上面跑来着,无奈空间不够,寄了),总之就是大概一周内都在调试(断断续续的那种),今天是工作日,我也实在看不下去了,也投入到了这个令人头秃的工作中,事实证明这个东西是真的熬人。

一开始跑的FAST-LIO,是雷达+IMU的SLAM框架,在最后一步的雷达和IMU的配准的时候有一些超过了我和工友能力范围的步骤(搞不几米了),虽然这样,但是忙了这么久了,有点难过,后来找了找有没有不用IMU的框架,然后就有了这篇文章,但是我有个疑惑的地方,我个人感觉MID-40雷达自己是带有IMU的,因为在驱动里面我找到了这样的开关,以及在建图的过程中下面车辆微小的动作也可以在图中有体现,我觉得应该是有IMU的。

emmmm,没有IMU,无妨我们有外置的,有空加一个上去

这篇文章主要是展示使用,安装过程中的一些坑也会说明。

先看看结果:

橡树就是我的工友了,也感谢他剪辑的视频~

Loam-Livox是用于Livox 激光雷达的稳健、低漂移和实时里程计和测绘软件包,是专为大规模工业用途而设计的低成本和高性能激光雷达。来自香港大学的作品。(令人羡慕的学校)

该LOAM 算法仅使用一个 Livox Mid-40 单元,没有融合其他传感器如 IMU、GPS 或摄像头。通过运动补偿机制进行连续扫描匹配,从而实现 LiDAR位姿的实时解算(即测距)。有了LiDAR位姿, 所有LiDAR测量的点云就可以投影到同一个全局坐标系中, 得到环境的三维地图。为提升算法性能和可靠性,一系列核心问题得以解决,包括有限视场下的特征提取和筛选、杂点剔除、移动物体过滤以及帧内运动补偿。该算法的测距和建图部分均可以同时在MacBook上以 20 Hz 的频率实时运行(工友的本子没有跑起来)。

官方测试的是Ubuntu16,18的版本(64bit),我这里使用的是20.04.

记得安装的时候替换里面的XXX,第二个是我的安装命令。

代码语言:javascript
复制
    sudo apt-get install ros-XXX-cv-bridge ros-XXX-tf ros-XXX-message-filters ros-XXX-image-transport
代码语言:javascript
复制
sudo apt-get install ros-noetic-cv-bridge ros-noetic-tf ros-noetic-message-filters ros-noetic-image-transport

关于PCL和Ceres Solver的安装,你可以看下篇文章,注意PCL需要安装1.9的版本。

如果你使用的是MID-100的高端货,需要在ROS的驱动包里面设置这个参数

代码语言:javascript
复制
    cd ~/xxxx/src
    git clone https://github.com/hku-mars/loam_livox.git
    cd ../
    catkin_make
    source ~/xxxx/devel/setup.bash

xxxx是你自己的目录,按部就班的执行就好

那么我敢打包票,你会遇到一个Opencv的报错问题,无妨~我们已经解决了。

有的人说要把这里的OpenCV版本号改了,其实不用

在源码的文件夹里面修改这个文件为

代码语言:javascript
复制
#include <opencv2/opencv.hpp>

其实就是opencvAPI的变动

代码语言:javascript
复制
    cap.set(cv::CAP_PROP_SETTINGS, 1); // opens camera properties dialog
    cap.set(cv::CAP_PROP_FRAME_WIDTH, 320);
    cap.set(cv::CAP_PROP_FRAME_HEIGHT, 240);

这个里面修改三个文件,此时保存编译

至少里面的这些东西都不报错,就是都安装OK

当然下面给的是安装OpenCV的命令:

代码语言:javascript
复制
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
gfortran openexr libatlas-base-dev python3-dev python3-numpy \
libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
代码语言:javascript
复制
mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
代码语言:javascript
复制
cd ~/opencv_build/opencv
mkdir -p build && cd build
代码语言:javascript
复制
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
代码语言:javascript
复制
make -j8
代码语言:javascript
复制
sudo make install

安装

代码语言:javascript
复制
pkg-config --modversion opencv4

验证

代码语言:javascript
复制
roslaunch loam_livox livox.launch
roslaunch livox_ros_driver livox_lidar.launch

先运行第一个节点,启动接收和建图的线程,然后第一个,雷达开始启动。

建图的时候,室内还是算了,雷达一扫百米,室内实在是憋屈啊。在室外测试,因为雷达本身的范围就很大了,这里也不就建议不停的旋转雷达,可以多绕一圈来补充特征点,以及就是要匀速走直线,拐弯也要平缓,不能速度突变。

编译一景

运行实景

晚霞还是很漂亮的,就是拍不出来了

这东西真令人头秃,有空会写下原理和代码分析

明天把雷达装本末的轮足上面跑一圈看看效果~

谢谢工友一周以来的努力:

工友牛逼!

代码语言:javascript
复制
https://github.com/Livox-SDK/livox_ros_driver/blob/master/README_CN.md
代码语言:javascript
复制
https://blog.csdn.net/qq_52770407/article/details/124228003
代码语言:javascript
复制
https://github.com/hku-mars/loam_livox/issues/121
代码语言:javascript
复制
https://github.com/hku-mars/loam_livox
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档