Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM

这篇具有很好参考价值的文章主要介绍了Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ubuntu20.04下运行LOAM系列:A-LOAM、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等三方库,它们的安装不再赘述,另外文章中使用的数据已经在评论区分享

一、安装A-LOAM

A-LOAM在Github的开源地址:https://github.com/HKUST-Aerial-Robotics/A-LOAM。接下来根据代码要求,需要安装Ceres,另外环境的变化导致源码不能编译通过,需要修改源码

1.1 安装Ceres

(1)下载源码包
参考Github,点击Follow Ceres Installation转到安装网站,点击You can start with the latest stable release,直接把Ceres包给下载下来。
(2)安装依赖

#CMake(已安装)
sudo apt-get install cmake
#google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
#Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
#Eigen3(已安装)
sudo apt-get install libeigen3-dev
#SuiteSparse and CXSparse (optional)
sudo apt-get install libsuitesparse-dev

(3)编译源码并安装
在安装包目录下:

tar zxf ceres-solver-2.1.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.1.0
make -j4
make test
#Optionally install Ceres, it can also be exported using CMake which
#allows Ceres to be used without requiring installation, see the documentation
#for the EXPORT_BUILD_DIR option for more information.
sudo make install

(4)测试
ceres-bin目录下运行下面例子:

bin/simple_bundle_adjuster ../ceres-solver-2.1.0/data/problem-16-22106-pre.txt

运行结果:
aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

1.2 修改功能包

1.2.1 修改CMakeLists.txt

  • 由于PCL版本1.10,将C++标准改为14:
#set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_FLAGS "-std=c++14")
  • 找到OpenCV4.2.0包:
#find_package(OpenCV REQUIRED)
set(CMAKE_PREFIX_PATH "/usr/include/opencv4") 
find_package(OpenCV 4.0 QUIET)

1.2.2 修改源码

  • 将四个.cpp文件中的/camera_init修改为camera_init,/camera改成camera,/map改成map
  • scanRegistration.cpp中的 #include <opencv/cv.h> 修改为#include <opencv2/imgproc.hpp>
  • 修改kittiHelper.cppCV_LOAD_IMAGE_GRAYSCALEcv::IMREAD_GRAYSCALE
  • 如果编译遇到大量未找到Eigen相关错误,将四个.cpp文件中的#include <eigen3/Eigen/Dense>修改为#include <Eigen/Dense>

1.3 编译A-LOAM

在原来的工作空间或新建工作空间下,将修改的源功能包移动到~/catkin_ws/src,编译:

cd ~/catkin_ws/src
cd ../
catkin_make
#可添加到 ~/.bashrc 文件中:
source ~/catkin_ws/devel/setup.bash

1.4 运行A_LOAM示例并保存地图

下载nsh_indooroutdoor.bag测试数据,打开终端输入下面代码开始运行:

roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

再打开一个终端记录地图

rosbag record -o bag_out /laser_cloud_map

nsh_indooroutdoor.bag所在文件夹下打开终端,开始播放数据集:

rosbag play nsh_indoor_outdoor.bag 

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

跑完之后ctrl+c关闭记录地图的终端会生成一个bag文件,将其转化为pcd格式

rosrun pcl_ros bag_to_pcd bag_out_xxxx.bag /laser_cloud_map pcd

在生成的文件夹pcd目录下,使用pcl_viewer工具打开点云,last.pcd为最后一个pcd文件名:

pcl_viewer last.pcd

1.5 运行KITTI数据集

A-LOAM运行KITTI数据集需要运行kittiHelper节点,首先要将KITTI数据转换成ROS 的 Topic 或者 rosbag,读取KITTI数据集的 图像\雷达\时间戳 并发布topic和保存bag,跑之前修改launch文件:

<launch>
    <node name="kittiHelper" pkg="aloam_velodyne" type="kittiHelper" output="screen"> 
        <param name="dataset_folder" type="string" value="/data/KITTI/odometry/" />
        <param name="sequence_number" type="string" value="00" />
        <param name="to_bag" type="bool" value="false" />
        <param name="output_bag_file" type="string" value="/tmp/kitti.bag" /> <!-- replace with your output folder -->
        <param name="publish_delay" type="int" value="1" />
    </node>
</launch>

其中/data/KITTI/odometry/修改为kitti数据集的路径,to_bag的值可以为false或者true,选择是否将kitti数据集计算轨迹的同时打包成bag输出,输出路径为out_bag_file的值。以上文件夹路径部分需要根据自己的电脑路径进行修改,均使用绝对路径。publish_delay为发布延时。kitti 数据集的文件结构,注意这个和程序里面的路径设置有关,不一致则读不到数据(可修改源码读自己安排的路径):

—kitti_data
------poses
---------00.txt
------sequence
---------00
------------image_0
------------------000000.png
------------image_1
------------------000000.png
------------calib.txt
------------times.txt
------velodye
---------sequence
------------00
---------------velodye
------------------000000.bin

上述文件目录中,poses文件夹下存放的是路径真值,sequences文件夹下是00文件夹,00文件夹下是图片image_0、image_1和时间戳time.txtveledyne存放的是64线激光雷达数据,为bin文件,在后面的计算中,只使用的velodyne的数据,其它的数据在rviz中用作显示。
修改好之后,运行launch文件,打开rviz逐帧显示KITTI数据集:

roslaunch aloam_velodyne kitti_helper.launch

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶
接下来运行SLAM:

roslaunch aloam_velodyne kitti_helper.launch
roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

二、安装LeGO-LOAM

将下载好的LeGO-LOAM源码放入建立好的ros工作空间下,接下来需要安装gtsam以及修改源码,使其能够在上述环境下运行(参考文章)

2.1 安装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 gtsam-4.0.0-alpha2
mkdir build && cd build
cmake ..
make
sudo make install

2.2 修改CMakeLists.txt

与A-LOAM一样:

  • 由于PCL版本1.10,将C++标准改为14:
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3")
set(CMAKE_CXX_FLAGS "-std=c++14")
  • 找到OpenCV4.2.0包:
#find_package(OpenCV REQUIRED QUIET)
set(CMAKE_PREFIX_PATH "/usr/include/opencv4") 
find_package(OpenCV 4.0 QUIET)

-如果出现错误

 /usr/bin/ld: cannot find -lBoost::serialization
/usr/bin/ld: cannot find -lBoost::thread

加入:

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

2.3 修改源码

(1)找到utility.h中的:#include<opencv/cv.h>,修改为

#include <opencv2/imgproc.hpp>

(2)将四个.cpp文件中的/camera_init修改为camera_init

2.4 编译LeGO-LOAM

cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1  

第一次编译代码时,需要在“catkin_make”后面加上“-j1”来生成一些消息类型。以后的编译不需要“-j1”

  • 如果报错
/usr/include/pcl-1.10/pcl/filters/voxel_grid.h:340:21: error: ‘Index’ is not a member of ‘Eigen’ 340 | for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)

voxel_grid.h中(340/669行)报错的 Eigen::Index 修改成int

sudo gedit /usr/include/pcl-1.10/pcl/filters/voxel_grid.h

for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)
-> for (int ni = 0; ni < relative_coordinates.cols (); ni++)

2.5 运行LeGO-LOAM

运行:

roslaunch lego_loam run.launch

播放数据集,虽然/imu/data 是可选的,但如果提供它可以大大提高估计精度:

rosbag play *.bag --clock --topic /velodyne_points /imu/data
  • 如果报错mapOptmization be killed
[mapOptmization-7] process has died [pid 14493, exit code 127, cmd 
/home/zard/catkin_ws/devel/lib/lego_loam/mapOptmization __name:=mapOptmization __log:
=/home/zard/.ros/log/922c7a94-0354-11ed-951b-8d0be314719f/mapOptmization-7.log].

原因是未安装 libmetis 库。通过安装libparmetis-dev修复它重新运行即可:

sudo apt-get install libparmetis-dev

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

  • nsh_indoor_outdoor.bag数据集
roslaunch lego_loam run.launch
rosbag play nsh_indoor_outdoor.bag --clock --topic /velodyne_points

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶最后生成的点云及轨迹结果会默认保存到/tmp/文件夹下,如果需要更改保存位置,就修改头文件utility.h

extern const string fileDirectory = "/tmp/";

三、安装SC-LeGO-LOAM

韩国KAIST在github开源的代码,其实质上是融合了ScanContext和Lego LOAM,SC-LeGO-LOAM(地址)与LeGO-LOAM的安装基本一样,需要注意的是原作者使用的是Ouster OS-64雷达,需要更改utility.h文件中适配自己的雷达类型

3.1 雷达参数修改

(1)首先修改pointCloudTopic:

//extern const string pointCloudTopic = “/os1_points”;
extern const string pointCloudTopic =/velodyne_points”;

(2)修改激光雷达部分参数(KITTI为例):

// Ouster OS1-64
//extern const int N_SCAN = 64;
//extern const int Horizon_SCAN = 1024;
//extern const float ang_res_x = 360.0/float(Horizon_SCAN);
//extern const float ang_res_y = 33.2/float(N_SCAN-1);
//extern const float ang_bottom = 16.6+0.1;
//extern const int groundScanInd = 15;

// // HDL-64E
extern const int N_SCAN = 64;
extern const int Horizon_SCAN = 1800;
extern const float ang_res_x = 360.0/float(Horizon_SCAN);
extern const float ang_res_y = 41.33/float(N_SCAN-1);
extern const float ang_bottom = 30.67;
extern const int groundScanInd = 20;

3.2 编译运行

(1)编译
CMakelists、源码修改以及报错与LeGO-LOAM一样的处理

mkdir -p sc_lego_loam/src
cd sc_lego_loam/src
git clone https://github.com/AbangLZU/SC-LeGO-LOAM.git
cd …
catkin_make

(2)运行

source devel/setup.bash
roslaunch lego-loam run.launch
rosbag play --clock ***.bag

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

sc_lego_loam算法已经添加了自动保存地图的功能,bag包播放结束后,使用ctrl+c即可结束,地图保存在map文件夹下。

四、安装LIO-SAM

将下载好的LIO-SAM源码放入建立好的ros工作空间下,需要的依赖上面都安装过了,接下来需要修改源码,使其能够在上述环境下运行

4.1 修改CMakeLists.txt和源码

与上面一样,修改一下几项:

  • 由于PCL版本1.10,将C++标准改为14:
#set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_FLAGS "-std=c++14")
  • 找到OpenCV4.2.0包:
#find_package(OpenCV REQUIRED QUIET)
set(CMAKE_PREFIX_PATH "/usr/include/opencv4") 
find_package(OpenCV 4.0 QUIET)
  • /usr/bin/ld问题,修改:
# find_package(Boost REQUIRED COMPONENTS timer)
find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)
  • 找到utility.h中的:#include<opencv/cv.h>,修改为
// #include<opencv/cv.h>
#include <opencv2/imgproc.hpp>

4.2 LIO-SAM的编译

cd ~/catkin_ws
catkin_make -j1  

4.3 运行示例数据集

运行launch文件:

roslaunch lio_sam run.launch

播放数据包(根据电脑性能自行选择频率):

rosbag play park_dataset.bag -r 3
  • 若报错:ERROR: cannot launch node of type [robot_localization/ekf_localization_node]: robot_localization,安装功能包:
sudo apt-get install ros-noetic-fake-localization
sudo apt-get install ros-noetic-robot-localization
  • 若报错:[lio_sam_imuPreintegration-2][lio_sam_mapOptmization-5],是GTSAM的问题,缺少一些库。它们已安装但不可用,因为不在 LD_LIBRARY_PATH 环境变量中。所以将 /usr/local/lib 目录添加到变量中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶
如果要保存点云及轨迹等结果,在参数文件params.yaml中打开并修改保存路径:

savePCD: true
savePCDDirectory: "/Downloads/LIOSAM/"

park数据集可验证GPS松组合效果,如果要使用GPS数据,则需要进行如下修改:

gpsTopic: "odometry/gpsz"  改为 gpsTopic: "odometry/gps"  
useImuHeadingInitialization: false 改为 useImuHeadingInitialization: true

4.4 运行KITTI数据集

kitti2bag工具输出的bag文件LIO-SAM是不能跑的,IMU频率跟雷达一样很低频,无法满足代码需求,而且没有ring和time标签。LIO-SAM作者自己改了kitti2bag就在源码的文件夹LIO-SAM/config/doc/kitti2bag下,你需要准备如下文件(文件位置需对应):

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

然后,在2011_09_30文件夹的上一级目录,即kitti2bag.py文件下打开终端,输入:

python3 kitti2bag.py -t 2011_09_30 -r 0033 raw_synced

运行结果(注意文件目录结构一定按照上面的要求来,否则无法运行):

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

参数文件配置,主要修改以下两个文件的内容:

# params_kitti.yaml

# Topics
pointCloudTopic: "/points_raw"               # Point cloud data
imuTopic: "/imu_raw"                         # IMU data

# KITTI
sensor: velodyne                            # lidar sensor type, either 'velodyne' or 'ouster'
N_SCAN: 64                                  # number of lidar channel (i.e., 16, 32, 64, 128)
Horizon_SCAN: 2083                          # lidar horizontal resolution (Velodyne:1800, Ouster:512,1024,2048)
downsampleRate: 1                           # default: 1. Downsample your data if too many points. i.e., 16 = 64 / 4, 16 = 16 / 1
lidarMinRange: 1.0                          # default: 1.0, minimum lidar range to be used
lidarMaxRange: 1000.0                       # default: 1000.0, maximum lidar range to be used

# IMU内参影响不大,这里也没改

# kitti外参
# extrinsicTrans、extrinsicRot表示imu -> lidar的坐标变换
extrinsicTrans: [-8.086759e-01, 3.195559e-01, -7.997231e-01]
extrinsicRot: [9.999976e-01, 7.553071e-04, -2.035826e-03,
               -7.854027e-04, 9.998898e-01, -1.482298e-02,
               2.024406e-03, 1.482454e-02, 9.998881e-01]
# extrinsicRPY用于旋转imu坐标系下的欧拉角(姿态信息)到lidar坐标下,由于lio-sam作者使用的imu的欧拉角旋转指向与lidar坐标系不一致(左手系),因此使用了两个不同的旋转矩阵,但是大部分的设备两个旋转应该是设置为相同的
extrinsicRPY: [9.999976e-01,  7.553071e-04, -2.035826e-03,
               -7.854027e-04, 9.998898e-01, -1.482298e-02,
               2.024406e-03, 1.482454e-02, 9.998881e-01]
	<!-- run_kitti.launch -->
	<!-- Parameters -->
    <rosparam file="$(find lio_sam)/config/params_kitti.yaml" command="load" />

运行:

roslaunch lio_sam run.launch
rosbag play kitti_2011_09_30_drive_0033_synced.bag

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

五、安装LVI-SAM

将下载好的LVI-SAM源码放入建立好的ros工作空间下,同样的,LVI-SAM依赖的gtsam和ceres上面都安装过了,接下来需要修改源码,使其能够在上述环境下运行

5.1 修改CMakeLists.txt和源码

  • C++标准改为14:
#set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_FLAGS "-std=c++14")
  • 找到OpenCV4.2.0包:
#find_package(OpenCV REQUIRED QUIET)
set(CMAKE_PREFIX_PATH "/usr/include/opencv4") 
find_package(OpenCV 4.0 QUIET)
  • 修改
# find_package(Boost REQUIRED COMPONENTS filesystem program_options system timer)
find_package(Boost REQUIRED COMPONENTS filesystem program_options system timer thread serialization chrono)

5.2 编译

cd ~/catkin_ws
catkin_make -j1  
  • 出现错误:
error: ‘ScalarBinaryOpTraits’ is not a class template

出现这个问题的原因是当前版本ceres需要eigen版本>=3.3,但是我们安装的eigen明明是3.4.0啊!!?这里没有查到解决办法。我参考其他版本的ceres的jet.h文件,在其相应代码区域添加 #if--#endif 约束,不知道这样会不会对其他代码有影响,但总算是编译通过了

// file:/usr/local/include/ceres/jet.h
#if EIGEN_VERSION_AT_LEAST(3, 3, 0)
// Specifying the return type of binary operations between Jets and scalar types
// allows you to perform matrix/array operations with Eigen matrices and arrays
// such as addition, subtraction, multiplication, and division where one Eigen
// matrix/array is of type Jet and the other is a scalar type. This improves
// performance by using the optimized scalar-to-Jet binary operations but
// is only available on Eigen versions >= 3.3
template <typename BinaryOp, typename T, int N>
struct ScalarBinaryOpTraits<ceres::Jet<T, N>, T, BinaryOp> {
  using ReturnType = ceres::Jet<T, N>;
};
template <typename BinaryOp, typename T, int N>
struct ScalarBinaryOpTraits<T, ceres::Jet<T, N>, BinaryOp> {
  using ReturnType = ceres::Jet<T, N>;
};
#endif  // EIGEN_VERSION_AT_LEAST(3, 3, 0)
  • 出现错误:
error: ‘CV_RGB2GRAY’ was not declared in this scope

这是opencv2的用法,现在opencv3和4是COLOR_GARY2BGR,因此将代码中的CV_GRAY2BGR改成COLOR_GRAY2BGR:

  // cv::cvtColor(image, aux, CV_RGB2GRAY);
  cv::cvtColor(image, aux, cv::COLOR_GRAY2BGR);

5.3 运行

运行launch文件:

roslaunch lvi_sam run.launch
  • 若报错:[lvi_sam_imuPreintegration-5][lvi_sam_mapOptmization-8],与LIO-SAM解决办法一样

播放数据包:

rosbag play handheld.bag

注意:所提供的示例bag文件中的图像均为压缩格式。因此,launch/include/module_sam.launch的最后一行有解压缩命令:

<!-- Image conversion -->
<node pkg="image_transport" type="republish" name="$(arg project)_republish" args="compressed in:=/camera/image_raw raw out:=/camera/image_raw" output="screen" respawn="true"/>

如果你自己的bag文件记录了原始图像数据,请注释此解压缩命令。示例数据的传感器套件包括:
LiDAR: Velodyne VLP-16
Camera: FLIR BFS-U3-04S2M-CS
IMU: MicroStrain 3DM-GX5-25
GPS: Reach RS+
aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶

aloam,lio-sam,lvi-sam,SLAM主流开源框架部署,ubuntu,自动驾驶
保存结果的方式与LIO-SAM一样,修改参数配置文件。文章来源地址https://www.toymoban.com/news/detail-735505.html

到了这里,关于Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 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)
  • 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日
    浏览(50)
  • 激光slam:LeGO-LOAM---代码编译安装与gazebo测试

    LeGO-LOAM 的英文全称是 lightweight and ground optimized lidar odometry and mapping 。轻量化具有地面优化的激光雷达里程计和建图 其框架如下,大体和LOAM是一致的 LeGO-LOAM是基于LOAM的改进版本,其主要目的是为了实现小车在多变地形下的定位和建图,针对前端和后端都做了一系列的改进。

    2024年02月15日
    浏览(47)
  • 3D激光slam:LeGO-LOAM---地面点提取方法及代码分析

    地面点提取方法 LeGO-LOAM中前端改进中很重要的一点就是充分利用地面点,本片博客主要讲解 如何进行地面点提取 如下图所示,相邻的两个scan的同一列,打在地面上,形成两个点A和B。 它们的垂直高度差为h,这个值在理想情况(雷达水平安装,地面是水平的)接近于0 水平距

    2023年04月09日
    浏览(48)
  • 编译LeGo-LOAM,并且采用速腾聚创激光雷达与之相连

    参考链接:实车部署采用速腾聚创RS16激光雷达的LeGo-LOAM LeGO-LOAM初探:原理,安装和测试 1.gtsam安装(install的过程比较慢,需要耐心等待) 2.下载并编译LeGO-LOAM 3.数据集试运行 数据集的百度云地址:https://pan.baidu.com/s/1SkrqfN82il1m6jhkLZT-WA 密码: oqo8 打开 LeGO-LOAM/LeGO-LOAM/launch/run.

    2024年02月08日
    浏览(67)
  • 3D激光SLAM:LeGO-LOAM论文解读---激光雷达里程计与建图

    激光雷达里程计模块的功能就是 :估计相邻帧之间的位姿变换。 估计的方式 :在相邻帧之间做点到线的约束和点到面的约束 具体的方式和LOAM一样 针对LOAM的改进 1 基于标签的匹配 在特征提取部分提取的特征点都会有个标签(在点云分割时分配的) 因此在找对应点时,标签

    2023年04月09日
    浏览(85)
  • ubuntu20.04 编译安装运行emqx

    Erlang/OTP OTP 24 或 25 版本 GCC 4.8 或更高版本 Git make openssl-devel libcurl-devel

    2024年02月11日
    浏览(55)
  • Ubuntu20.04--开机自动运行脚本(命令)--方法/实例

    原文网址:Ubuntu20.04--开机自动运行脚本(命令)--方法/实例_IT利刃出鞘的博客-CSDN博客 本文介绍Ubuntu20.04如何开机自动运行命令。(也适用于Ubuntu22.04版本) 然后修改/etc/systemd/system/rc-local.service,在文件最下方添加如下两行: 创建 /etc/rc.local ,里边写自己想要运行的命令。例:

    2024年02月09日
    浏览(58)
  • ubuntu20.04环境下安装运行Colmap+OpenMVS

      我创作这篇博客的初衷是因为我在ubuntu20.04环境下跑Colmap+OpenMVS这个算法框架的时候踩了很多坑,一方面是网上现在很多教程都是基于Windows环境下的,而Windows环境和Linux环境相比还是有很大的差异的;二是现在网上的很多教程基本很多步骤一带而过了,而往往这些一带而过

    2024年03月09日
    浏览(62)
  • Linux系列---【Ubuntu 20.04安装KVM】

    1.安装kvm 2. 将当前用户添加至libvirt 、 kvm组 3.验证安装 4.启动libvert 至此,kvm安装完毕! 1.安装xrdp 2.查看ubuntu的ip 3.打开windows远程连接工具 登录成功后,记得修改登录密码。不然,系统一锁屏,就打不开了。通过这里输入原来ubuntu的root密码,解不了休眠锁。 1.安装virt-manager

    2024年02月16日
    浏览(66)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包