移動ロボット向けソリッドステートLiDARの自己位置推定と地図生成(RealSense)

Light Detection And Ranging(LiDAR)は、SLAM(同時ローカリゼーションとマッピング)で重要な役割を果たしており、最も重要な知覚デバイスとされています。数年前まではメカニカルLiDARが主流と言われておりましたが、昨今では費用対効果の高い、軽量なソリューションとしてMEMS(微小電気機械システム)式 LiDARの人気が高まりをみせ、小規模ロボットへの搭載が加速しています。

本記事では、インテル社独自のMEMS ミラースキャンの技術を採用したソリッドステートLiDARカメラである RealSense L515を用いた、SLAM用のプログラムソースコードについてご紹介します。今回GitHubにて公開されたこちらのプログラムソースコードは、Intelの標準プログラムを使用するよりも、精度と効率はもとより、正確なローカリゼーションと高品質のマッピングの提供が実証されておりますので、SLAMご利用の際の参考になれば幸いです。

本記事は RealSense GitHub SSL_SLAM / SSL_SLAM2 の情報を参照しております
Lightweight 3-D Localization and Mapping for Solid-State LiDAR (Intel Realsense L515 as an example)
https://github.com/wh200720041/ssl_slam
https://github.com/wh200720041/ssl_slam2 (アップデート情報)

 

SLAM用プログラムソースコードについて

まずはじめに、メカニカルLiDARと比較した場合、ソリッドステートLiDARはスキャン頻度と角度分解能は高くなりますが、視野(FoV)が限定されるため、既存のLiDAR SLAMアルゴリズムのままでは不確実性が生じます。この新しいセンシングデバイスには、より堅牢で計算効率の高いSLAMメソッドが必要となります。

この目的のために、特徴点の抽出、オドメトリ推定(移動距離や回転角度)、および地図構築を含む、ソリッドステートLiDAR用の新しいSLAMフレームワークとして提案されたのが今回のプログラムソースコードとなります。提案された方法は、倉庫ロボットとハンドヘルドデバイスで評価されています。

 

使用機材や技術について

Intel RealSense ソリッドステートLiDARカメラ L515 とは


超小型・高解像度のLiDARデプスカメラ「Intel RealSense LiDAR Camera L515(以下 L515)」は、ソリッドステート式のひとつ、インテル社独自のMEMS(微小電気機械システム)ミラースキャンの技術を有した小型で自由度の高い深度カメラで、高解像度・高精度の深度データを必要とする屋内アプリケーションの開発用に最適です。リリース以降その特性を活かすべくさまざまな研究開発で取り入れられています。

例えばテレプレゼンスロボットや、搬送や運搬業務の自動化に特化した無人搬送車(AGV, automatic guides vehicle)への搭載、また「手軽に箱のサイズを測る」DIM Weight softwareでご紹介しておりますが、倉庫における荷物や製品の保管やロジスティックなどでの活用が見込まれます。

また機能もさることながら、L515 本体のコンパクトさ(テニスボール程度の大きさ)と、僅か100g(コンビニのおにぎり程度)という重さは、移動式ロボットなどへの搭載に際し、重量による制約を受けにくく、またカメラそのものが妨げになるといった問題も生じにくいとされています。そのほか洗練されたデザインにより設置場所の景観を損ねない点も高い評価を得ています。

よろしければこちらの記事もご参照ください

MEMSテクノロジーとは


L515に搭載されたMEMS技術は、Micro-Electro-Mechanical Systemの略で、微小化と高性能化を実現するために微細加工の技術を使用して製造される小型化された電気要素と機械要素をひとつの基板上に組み込んだセンサ、アクチュエータ、およびマイクロエレクトロニクスなどのデバイスやシステムのことです。MEMSの微小な3次元構造体は、低消費電力でありながら、多岐多様な入出力信号を取り扱うことができ注目されています。

 

AGVとは

AGV(automatic guides vehicle) は、指定ルートを無人かつ自動で走行してモノを運ぶ搬送用台車です。これに対してAMR(autonomous mobile robot)は、人や物などの障害物を自動的に回避して走行できる自律走行方の搬送ロボットです。人手不足による作業・業務軽減など社会的な課題に対し、搬送業務の自動化のために注目されています。

 

実行可能ファイル SSL-SLAM / SSL-SLAM2 フレームワークについて

ご紹介しますコードは、IEEE Robotics and Automation Letters、2021で掲載された論文「Lightweight 3-D Localization and Mapping for Solid-State LiDAR」を実装したものです。

なおsave map(マップの保存)と test localization(ローカリゼーションテスト)を別々に有効にしたい場合は、SSL_SLAM2(SSL-SLAMの拡張作業) をご覧いただき、マッピングとローカリゼーションモジュールを分離してください。

対応言語: C++, CMake
ModifierWang Han, Nanyang Technological University(NTU, 南洋理工大学), シンガポール

SSL_SLAM: Lightweight 3-D Localization and Mapping for Solid-State LiDAR

 

1.ソリッドステートLiDAR(例)

1-1. シーンの再構築(例)

SSL_SLAM on Desktop

 

1-2. SfM(Structure from Motion)による三次元建築物モデルの構築(例)

SSL_SLAM: Lightweight 3-D Localization and Mapping for Solid-State LiDAR

 

1-3. L515を使用したローカリゼーションとマッピングのフレームワーク

SSL_SLAM: Lightweight 3-D Localization and Mapping for Solid-State LiDAR

 

2.事前準備(前提条件)

2-1. Operating System

Ubuntu 64-bit 18.04でのROS Melodic インストール*
*ROSのパッケージはバージョンにより対応Ubuntuのバージョンが変わります。

※オープンソ-スのRobot Operating System(ROS)のインストールは こちら

2-2: Ceres Solver

効率的な非線形最適化ライブラリCeresのインストールは こちら

2-3. PCL

ポイントクラウドライブラリ(PCL) のインストールは こちら
※1.8.1でテスト済み

2-4. OctoMap

ロボットや自動運転車向けの SLAM地図の表現用OctoMapのインストールは こちら

sudo apt-get install ros-melodic-octomap*

2-5. 視覚化のための軌道情報

視覚化の目的で、このパッケージはhector trajectory serverを使用します。次の方法でパッケージをインストールできます。

sudo apt-get install ros-melodic-hector-trajectory-server

または、軌道の視覚化が必要ない場合は、hector trajectory serverノードを削除することもできます。

 

3. ビルド

3-1. リポジトリをクローンする

    cd ~/catkin_ws/src
    git clone https://github.com/wh200720041/ssl_slam.git
    cd ..
    catkin_make
    source ~/catkin_ws/devel/setup.bash

3-2. テストのためのROSbagのダウンロード

L515をお持ちでない場合は記録されたテストデータ(5GB程度)をダウンロードできます。
[home / user / Downloads(デフォルト)]の直下にあるファイルを解凍します。

cd ~/Downloads
unzip ~/Downloads/L515_test.zip

3-3. ROSの起動

同時に地図を作成したい場合に実行することができます

    roslaunch ssl_slam ssl_slam_mapping.launch

または位置推定(環境地図の確率)を作成します

    roslaunch ssl_slam ssl_slam_octo_mapping.launch

ローカリゼーションのみが必要な場合は、実行を参照できます

    roslaunch ssl_slam ssl_slam.launch

4. L515のセットアップ

L515をお持ちの場合は、以下のセットアップ手順に従ってください。

4-1. Librealsense

Librealsenseのインストールは こちら

4-2. Realsense_ros

realsense_rosパッケージをcatkinフォルダにコピーします

    cd ~/catkin_ws/src
    git clone https://github.com/IntelRealSense/realsense-ros.git
    cd ..
    catkin_make

4-3.ROSの起動

    roslaunch ssl_slam ssl_slam_L515.launch

これにより L515 のライブデータで ssl_slam_mapping.launch が実行されます。

 

5.引用につきまして

この作品(SSL_SLAM / SSL-SLAM)を研究に使用する場合は、以下の論文を引用することをお勧めしております。引用をいただければ幸いです。

5-1. SSL_SLAM フレームワーク

@article{wang2021lightweight,
  author={H. {Wang} and C. {Wang} and L. {Xie}},
  journal={IEEE Robotics and Automation Letters}, 
  title={Lightweight 3-D Localization and Mapping for Solid-State LiDAR}, 
  year={2021},
  volume={6},
  number={2},
  pages={1801-1807},
  doi={10.1109/LRA.2021.3060392}}

5-2. SSL_SLAM2 フレームワーク

@article{wang2021lightweight,
  author={H. {Wang} and C. {Wang} and L. {Xie}},
  journal={IEEE Robotics and Automation Letters}, 
  title={Lightweight 3-D Localization and Mapping for Solid-State LiDAR}, 
  year={2021},
  volume={6},
  number={2},
  pages={1801-1807},
  doi={10.1109/LRA.2021.3060392}}

 

最後に

この記事内で言及しておりますインテル社のLiDARカメラ L515 は、弊社にてお取り扱いがございます。また研究開発者向けサービス「レンタルサービスtegakari」では実機をお気軽にお試しいただけます。ご利用に関しましてもぜひ気兼ねなくお問合せください。