Skip to main content

reComputer上でA-LOAM 3D SLAMを実行する方法

A-LOAMの紹介

A-LOAMは、J. ZhangとS. Singhによる元のLOAM(Lidar Odometry and Mapping)アルゴリズムの高度な実装です。A-LOAMの主な特徴は以下の通りです:

  • リアルタイムLiDARオドメトリとマッピング
  • EigenとCeres Solverを使用した簡素化されたコード構造
  • 多様な環境での高性能と堅牢性

A-LOAMは自動運転、ロボティクス、3Dマッピングなど様々なアプリケーションに使用できます。

このwikiでは、RoboSense RS32 LiDARセンサーを使用してreComputer Jetsonシリーズ上でA-LOAM(Advanced LOAM)アルゴリズムをセットアップし、実行するための詳細な手順を提供します。A-LOAMは、効率的でリアルタイムなマッピングと位置推定のためにEigenとCeres Solverを利用するLOAM(Lidar Odometry and Mapping in Real-time)の高度な実装です。

前提条件

はじめに

環境セットアップ

  • ステップ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
  • Step 4: Clone the A-LOAM code into the src directory of your workspace (~/catkin_ws/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 行目を修正し、XYZIXYZIRT に変更する必要があります。

  • ステップ 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++11C++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.cpp91 行目と 93 行目で、CV_LOAD_IMAGE_GRAYSCALEcv::IMREAD_GRAYSCALE に変更します

  • ステップ 6: tf2 を使用している場合は、~/catkin_ws/src/A-LOAM/src/ ディレクトリ内のすべての .cpp ファイル (kittiHelper.cpp, laserMapping.cpp, laserOdometry.cpp, scanRegistration.cpp) を修正し、frame_id=/camera_initframe_id=camera_init に変更して、'/' 記号のみを削除します。

パッケージのコンパイル

  • ステップ 1: ワークスペースに戻り、機能パッケージを再コンパイルして環境を再読み込みします。

    cd ~/catkin_ws
    catkin_make
    source ~/catkin_ws/devel/setup.bash

3D SLAMの開始

  • ステップ1: ライダーコードの実行

      roslaunch rslidar_sdk start.launch
  • ステップ 2: A loam コードの実行

    roslaunch aloam_velodyne aloam_velodyne_HDL_32.launch

技術サポート & 製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルをご用意しています。

Loading Comments...