見出し画像

SLAMのセンサに思いを馳せる

はじめに

最近、業務でLiDAR SLAMとVisual SLAMに立て続けに触れる機会がありました。初めて触れる技術に驚きと興奮の毎日でした。

そんな中、LiDAR SLAMは地図の作成を傍で見させていただき、Visual SLAMは自らの手でカメラを動かしながら地図を作成してみたのですが、どうもVisual SLAMの方が(少なくとも空間や物体を計測する過程においては)圧倒的に楽に感じてしまいました。

例えばLiDAR SLAMではレーザスキャナが床に対して少し傾いており、そのせいで取得した点群データも傾いてしまっていた、ということがありましたが、Visual SLAMではカメラの位置が床に対して並行かどうか、などは全く考える必要がありませんでした。

Visual SLAMの計測はiPhoneで部屋を
撮影して回るのみで簡単だった

また、センサの価格も多くの場合、レーザスキャナよりカメラの方が安いということもあり、どうしてもVisual SLAMの方が手軽で扱いやすいように思えます。

そんなこんなで、それならなぜLiDAR SLAMがVisual SLAMと並んで多く用いられているのか?両者はどのように使い分けられているのか?みたいなところが気になったので、調べてみました。

情報発信というよりは個人的なメモの色合いが強いですが、この記事がいつかどなたかのお役に立ったら嬉しいです。

SLAMにおけるセンサの位置づけ

まずは超基本的なところから整理してみたいと思います。

SLAMは「Simultaneous Localization And Mapping」の頭文字を取った言葉で、直訳すると「同時的な自己位置推定と地図構築」です。

「自己位置推定」は、その時に自身がどの位置でどんな姿勢をしているかを推定することを指し、「地図構築」は周囲の状況を把握して地図を構築することを指します。

その言葉の通りSLAMは「自己位置推定」と「地図構築」を「同時的に」行うことを実現しており、主にロボットの自立走行で用いられています。

そしてセンサはロボットが移動しながら周囲を計測する際に用いられるものであり、そこから得られるセンサデータはSLAMへのメインの入力データとなります。

(なお、SLAMのセンサにはロボットの外部を計測する「外界センサ」とロボットの外部の計測なしにロボットの状態を知ろうとする「内界センサ」がありますが、本記事で「センサ」は「外界センサ」を指すものとします。)

SLAMにとってセンサは必要不可欠なものであり、どのタイプのセンサを使用するかによって、SLAMは以下のように分類されます。

  • LiDAR(レーザスキャナ)→ LiDAR SLAM

  • HDカメラ→ Visual SLAM

  • 距離画像カメラ(ToFセンサ)→ Depth SLAM

以降ではそれらのセンサについて、特徴の整理や比較を行います。

各センサの特徴

LiDAR(レーザスキャナ)

LiDARは、赤外線レーザを照射し、物体に反射して戻ってきたものを検出することで、物体上の点までの距離と方向を計測します。

非常に広い範囲を計測できる、物体までの距離を高精度で計測できる、といった特徴があります。

また、カメラが照明条件に大きく影響を受けるのに対して、LiDARはほとんど照明条件に影響を受けません。そのため、直射日光下や暗闇、雨天時にも使いやすいという特徴があります。

一方で、カメラと比較すると比較的高価であり、コスト的なメリットはあまり望めません。

HDカメラ

日常でよく用いられるデジタルカメラ同様、デジタル画像を出力します。
そしてSLAMは出力された画像データをもとに周辺環境を把握します。

なお、個々の画像からは距離を計算できないため、距離の計算を行う際は複数の画像を用いての三角測量が必要です。

HDカメラは主に以下の2種類に分けられ、そのどちらのカメラを用いているかによって上述の三角測量時の計算方法に差が出ます。

  • 単眼カメラ(monocular camera)

    • カメラを一台しか持たず、センサ自体としては距離を取得できないため、SLAMでカメラを移動させて得た複数の視点からの三角測量を行うことで距離を算出する

  • ステレオカメラ(stereo camera)

    • カメラを複数持つため、静止したまま三角測量で距離を計算できる。なお、SLAMとは独立にセンサとして距離と方向を取得できる

どちらのカメラの場合も比較的安価に入手できますが、照明条件に大きな影響を受けたり、LiDARと比較して計測可能な距離が狭かったりといった制約があります。

距離画像カメラ(ToFセンサ)

赤外線や超音波などを照射し、物体に反射して戻ってきたものを検出することで、物体上の点までの距離と方向を計測します。また、計測の結果は画像の濃淡で奥行きを表現した画像データとして取得します。

LiDARと似ていますが、最大計測距離や指向性に課題があり、少なくとも陸上用の主力センサとして使われることは少ないようです。

ただし小型で安価なものが多い点や、超音波であればLiDARやHDカメラが苦手なガラスなどの透明物体の検出が可能な点、そしてレーザ光や可視光が急速に減衰する水中でも超音波なら有効な点など、計測したい条件によっては距離画像カメラが最適なケースもあります。

考察

以上の特徴を踏まえると、

  • 広い範囲を計測したい場合や暗闇/屋外でも使用したい場合はLiDAR

  • 狭い範囲かつ屋内(特定の部屋やフロアとか?)での使用に限定されているならコスト的なメリットを考えてHDカメラ

  • その他、透明物体の検出や水中での使用が必要な場合は距離画像カメラ(超音波を使用するもの)

というような使い分けが有効なように思えます。
また、条件によっては複数種類のセンサを組み合わせて使用するのが良さそうです。

冒頭で私自身の経験として触れさせていただいた、Visual SLAMの方がLiDAR SLAMよりも楽だった、という感想も、もしかしたら計測対象が屋内の狭い一部屋に限定されていたからだったのかもしれないなと思いました。

おわりに

結局、想定される使用状況に合わせて適切なセンサを選択するのが良い、というありきたりな結論になってしまいましたが、結局のところその通りで、それぞれのセンサの特徴を理解しながら選定していくのが大切なのでしょう。

今回調べきれなかった観点もあるかもしれないので、私自身もまたSLAMに触れる機会があれば、引き続きセンサへの理解を深めたいと思います。

参考資料

SLAM入門: ロボットの自己位置推定と地図構築の技術