如何在Seeed Studio reComputer Jetson Nano上运行A-LOAM 3D SLAM

如何在Seeed Studio reComputer Jetson Nano上运行A-LOAM 3D SLAM

A-LOAM简介

A-LOAM 是原始LOAM(Lidar Odometry and Mapping)算法的高级实现,最初由J. Zhang和S. Singh开发。A-LOAM的主要特点包括:

  • 实时LiDAR里程计和映射。
  • 使用Eigen和Ceres Solver简化代码结构。
  • 在各种环境中具有高性能和鲁棒性。

A-LOAM可用于包括自动驾驶、机器人和3D映射在内的多种应用。

本教程详细介绍了如何在reComputer Jetson系列设备上使用RoboSense RS32 LiDAR传感器设置和运行A-LOAM(Advanced LOAM)算法。A-LOAM是LOAM(实时LiDAR里程计和映射)的高级实现,利用Eigen和Ceres Solver实现高效的实时映射和定位。

如何在Jetson Nano上实现3D激光雷达的A-LOAM建图算法

前提条件

开始

环境设置

  • 步骤 1: 安装gflags、google-glog、suitesparse、cxsparse3、cxsparse。
    sudo apt-get install libgflags-dev libgoogle-glog-dev
    sudo apt-get install libsuitesparse-dev libcxsparse3 libcxsparse-dev
    
  • 步骤 2: 安装PCL(Point Cloud Library)。
    sudo apt install libpcl-dev
    
  • 步骤 3: 安装Ceres。
    wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
    tar xvf ceres-solver-1.14.0.tar.gz
    cd ceres-solver-1.14.0
    mkdir build
    cd build
    cmake ..
    make -j4 
    sudo make install
    
  • 步骤 4: 将A-LOAM代码克隆到您的工作区(~/catkin_ws/src)的src目录中。
    cd ~/catkin_ws/src
    git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
    

修改配置文件和源代码

  • 步骤 1: 由于A-LOAM算法需要点云类型为XYZIRT,而RS32 LiDAR的默认输出为XYZI,您需要修改位于 ~/catkin_ws/src/rslidar_sdk/ 目录中的 CMakeLists.txt 文件第 8 行,将 XYZI 更改为 XYZIRT

  • 步骤 2: A-LOAM默认订阅的点云主题为 /velodyne_points,而RS32 LiDAR的默认输出主题为 /rslidar_points。因此,请将位于 ~/catkin_ws/src/rslidar_sdk/config/config.yaml 文件第26行的主题名称修改为 /velodyne_points

  • 步骤 3: 如果您使用的是C++14,请修改 ~/catkin_ws/src/A-LOAM/ 目录中 CMakeLists.txt 文件的第 5 行,将 C++11 更改为 C++14

  • 步骤 4: 如果您使用的是 OpenCV 4.x,需要更新位于 ~/catkin_ws/src/A-LOAM/src 目录中 scanRegistration.cpp 文件第44行的OpenCV头文件引用(如果您使用的是OpenCV 3.x,则可以跳过此步骤)。

    将代码

    #include <opencv/cv.h>
    

    替换为

    #include <opencv2/opencv.hpp>
    
  • 步骤 5:~/catkin_ws/src/A-LOAM/src/kittiHelper.cpp 文件的第 9193 行中,将 CV_LOAD_IMAGE_GRAYSCALE 更改为 cv::IMREAD_GRAYSCALE

  • 步骤 6: 如果您使用的是 tf2,请修改 ~/catkin_ws/src/A-LOAM/src/ 目录中的所有 .cpp 文件 (kittiHelper.cpp、laserMapping.cpp、laserOdometry.cpp、scanRegistration.cpp),将 frame_id=/camera_init 更改为 frame_id=camera_init,只需删除 ‘/’ 符号即可。

编译包

  • 步骤 1: 返回工作区并重新编译功能包并重新加载环境。
    cd ~/catkin_ws
    catkin_make
    source ~/catkin_ws/devel/setup.bash
    

启动3D SLAM

  • 步骤 1: 运行lidar代码
    roslaunch rslidar_sdk start.launch
    
  • 步骤 2: 运行A-LOAM代码
    roslaunch aloam_velodyne aloam_velodyne_HDL_32.launch
    
  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值