SLAMとは?メカニズムやできること、メリット・デメリットをわかりやすく解説!

SLAM(Simultaneous Localization and Mapping)は、自動運転やドローン、ロボットなどの分野で重要な役割を果たす技術です。SLAMでは、自己位置推定と環境地図作成を同時に行うことで、未知の環境下であっても正確なナビゲーションを可能にします。

本記事では、SLAMの基本原理やアルゴリズム、そのメリットとデメリット、さまざまな応用例についてわかりやすく解説していますので、SLAMの導入を検討されている場合はぜひお役立てください。

 

Nao Yanagisawa
監修者 Jitera代表取締役 柳澤 直

2014年 大学在学中にソフトウェア開発企業を設立

2016年 新卒でリクルートに入社 SUUMOの開発担当

2017年 開発会社Jiteraを設立
開発AIエージェント「JITERA」を開発

2024年 「Forbes 30 Under 30 Asia 2024」に選出

アバター画像
執筆者 ITエンジニア Hirose Takaya

新卒でITエンジニアとして3年ほど勤務した後、現在はフリーエンジニアの傍、IT分野を中心にライターとしても活動中です。歴代のクライアント様からは癖が無く読みやすい文章であると評価をいただいております。

\エキスパートが回答!/
この記事に関する質問はこちら
記事に関するご質問以外にも、システム開発の依頼やAIの導入相談なども受け付けております。

    会社名必須
    必須
    必須
    Eメール必須
    電話番号必須
    ご依頼内容必須

    SLAMの種類と定義

    SLAMの代表的な種類として、ビジュアルSLAMとライダーSLAMがあります。ビジュアルSLAMはカメラを用いた環境認識、ライダーSLAMはレーザーセンサーを活用した高精度な環境マッピングが実現可能です。それぞれが独自の特徴と利点を持ち、様々なアプリケーションでの利用が期待されています。

    本セクションでは、ビジュアルSLAMとライダーSLAMの定義や特徴について解説していきます。

    ビジュアルSLAM

    ビジュアルSLAM

    ビジュアルSLAMは、カメラで取得した画像データ内の複数の物体を点として捉えて物体同士の距離を計測し、そのデータから自身の相対的な位置を推定する技術です。

    カメラ映像を使用する特性上、後述のライダーSLAMと比較して特徴の少ない場所における自己位置の推定を得意としています。また、映像から得られる情報量の多さを利用して、位置推定や地図作成以外の歩行者検出や白線検出といった用途での活用が可能です。

    カメラ自体が比較的安価なのでコストパフォーマンスに優れていますが、その反面暗い場所や動く物体が多く映る環境下での距離測定が難しくなるというデメリットがあります。

    現在では都市部や屋内環境などのGPS信号が弱い場所でも利用できる利点を活かして、特にドローンやロボット掃除機への応用が拡大しており、更には自動運転車や高度な監視システムなど、より複雑な環境での精密な位置推定と環境認識にも貢献しています。

    ライダーSLAM

    ライダーSLAM

    ライダーSLAMは、LiDAR(ライダー)というセンサーからレーザー光を照射し、物体に反射して戻ってくるまでの時間を基に距離を高精度で測定できる技術です。特に遠距離の測定精度に優れており、複雑な環境下でも他のセンサーと比べて正確なマッピングを得意としています。

    また、レーザー光の跳ね返りによる距離の計算は周囲の明るさに依存せず、夜間や雨天時にもデータの取得が可能です。そのため、ロボットなどの機器が自身の位置や周囲の環境を把握するための環境地図作成に関して、ビジュアルSLAMよりも適しています。

    しかし、センサ自体が非常に高価である上、検知対象となる障害物が少ない環境下ではデータの取得が難しく、データ処理の負荷が高いというデメリットがあります。

    現在は高精度なデータが必要な地理情報システム(GIS)や複雑な地形の3Dモデリングへの応用が進んでおり、都市計画や災害対策、建設業界などより広範な分野で活躍することが期待されています。

     

    SLAMのセンサーとメカニズム

    SLAMのセンサーとメカニズム

    SLAMにとって欠かせないのは、ロボットなどの機器の周辺環境の地図作成や周辺環境を正確に把握するための自己位置の特定を行うセンサーです。代表的な種類として、カメラセンサー、ライダーセンサー、そしてIMUセンサーがあります。センサーによってSLAMの精度や適用範囲が大きく左右されるため、使用する目的に合わせて使い分ける必要があります。

    本セクションでは、それぞれのセンサーのメカニズムについて解説していきます。

    カメラセンサー

    カメラセンサーは、周囲の環境を画像として捉えたデータから特徴点の変化を抽出して、ビジュアルSLAMでの処理に利用されます。カメラとしては主に単眼カメラやステレオカメラの2種類が存在し、それぞれ異なる方法で距離情報を取得します。

    単眼カメラでは一つのカメラ画像の情報のみに依存してしまうため、単眼カメラのセンサ自体では距離を測定できません。したがって、ARマーカーやARタグ、QRコードなどの既知の物体を検出させるか、後述するIMUセンサーと組み合わせて距離を測定する必要があります

    一方ステレオカメラは、2台のカメラで同時に画像を取得するので、カメラを静止させたまま両画像間の視差から距離の算出が可能です。周囲の環境を3次元的に捉えることで、平面だけではなく高さも考慮した地図の作成に適しています。しかし、その分計算コストが膨大となり、処理能力の高いハードウェアが必要になるケースも少なくありません。

    ライダーセンサー

    ライダーセンサーのLiDARはLight Detection and Rangingの略で、赤外線や紫外線の不可視光線を含むレーザー光を用いた技術です。対象物にレーザー光を照射し、反射光の時間差から対象物の距離や形状を測定します。天候や周囲の明るさに依存しないため、他のセンサーと比較しても高精度で位置や形状を検出できます。また、LiDARによる距離の測定方法では、TOF(Time of Flight)方式とFMCW(Frequency Modulated Continuous Wave)方式が主流です。

    TOF方式では、レーザー光を短い間隔で繰り返し照射し、反射光の戻り時間を計測して距離を求めます。比較的シンプルな構造で、さまざまな距離や素材に対応可能です。

    一方FMCW方式は、周波数を変調したレーザー光を連続的に照射し、反射光の周波数変化から距離を測定します。車の自動運転への活用も期待されていますが、実用化するにあたってコスト面の課題が多く残されています。

    IMUセンサー

    IMU(Inertial Measurement Unit、慣性計測装置)は、3次元空間における物体の動きを検出するセンサーで、加速度センサーとジャイロスコープ(角速度センサー)で構成されています

    加速度センサーは主にスマートフォンやタブレットに搭載されており、物体の移動方向や速度、移動量を測定します。

    ジャイロスコープは主にゲームのコントローラーやロケットに搭載されており、物体の回転方向や速度を検出します。

    通常、実環境下では振動や気温の変化が検出データの精度に影響を及ぼしますが、IMUセンサーは環境の変化を軽減する機能を備えているので、安定的なデータの取得が可能です。そのため、IMUセンサーから取得したデータは、ビジュアルSLAMやライダーSLAMで取得したデータと組み合わせて、ロボットや車両の正確な位置と方向を継続的に追跡するために使用されるケースがあります

     

    SLAMの導入や活用については、ぜひ当社にご相談ください!
    Jiteraが無料で技術相談に乗ります!
    お気軽にご相談ください!

      会社名
      メールアドレス
      ご相談内容

      SLAMの自己位置推定と地図作成の方法

      SLAMは先ほども述べた通り、ロボットや機械自身がどこにいるのか、そして自身の周辺の環境はどうなっているかを把握する技術です。これまでビジュアルSLAMやライダーSLAM、センサーの種類を紹介してきましたが、いずれの方式も最終的には自己位置の推定と周辺環境の地図を作成するまでのプロセスでした。

      本セクションでは、SLAMの核心である自己位置推定の方法と地図作成の方法に焦点を当てて解説していきます。

      自己位置推定の方法

      SLAMにおける自己位置推定は、ロボットや自動運転車などの機器が自分の位置を正確に把握するために欠かせません。自己位置推定とは、センサーからのデータを基にロボットが現在どこにいてどの方向を向いているかを認識することを指しますが、実際には以下の手順で行われます。

      1.センサーデータの収集
      ビジュアルSLAMではカメラの周囲の画像を撮影し、特徴点を抽出します。ライダーSLAMではレーザー光を使用して周囲の環境をスキャンし、反射して戻ってきたレーザーから距離情報を取得します。
      2.位置と方向の推定
      収集したデータを分析し、ロボットの移動量や方向の変化を推定します。ビジュアルSLAMでは画像データを、ライダーSLAMでは点群データを分析します。
      3.自己位置の更新
      推定された位置と方向を基に、ロボットの自己位置をリアルタイムで更新します。また、誤差が蓄積することを防ぐために、定期的に位置の修正や調整が行われます。
      4.環境変化への適応
      最後に、周囲の環境の変化への対応も必要です。新しい障害物の出現や既存の物体の移動といった環境の変化をセンサーデータを通じて検出し、位置推定の精度を維持します。

      以上の1~4の手順を繰り返して、機械は自身の位置を導き出します。

      地図作成の方法

      SLAMにおける地図作成は、ロボットや自動運転車などの機器が現在いる位置の周りに何があるのかを把握するのに欠かせない技術です。地図作成とは、現在位置からある地点へ安全に移動するために周辺環境を可視化することを指しますが、実際には以下の手順で行われます。

      1.環境データの収集
      まず、先述したビジュアルSLAMやライダーSLAMを用いて環境データを収集します。
      2.物体と障害物の検出
      次に収集したデータを分析し、周囲の物体や障害物の位置、形状を検出します。この情報は、地図上での物体の正確な位置を決定するために使用されます。
      3.地図の作成と更新
      そして、検出された物体や障害物の情報を基に環境の地図を作成します。機械の移動に伴って新たに取得したデータを基に地図を更新し、より正確な地図を作成します。
      4.環境変化への対応
      最後に、地図作成においても周囲の環境の変化への対応が必要です。新しい障害物の出現や既存の物体の移動など、環境の変化をセンサーデータを通じて検出し、地図を適宜更新します。

      自己位置推定と似ていますが、以上の1~4の手順で、機械は自身の周辺環境を分析して移動を行います。

       

      SLAMを使うメリットとデメリット

      今までSLAMの方式や使うセンサーの種類によるメリットやデメリットを紹介しましたが、SLAM自体を使うメリットとデメリットを簡単にまとめると、以下のようになります。

      メリット デメリット
      自己位置推定と地図作成を未知の環境下で同時実行できる

      ・環境の変化に対応して動的な障害物を検出できる

      ・3Dマッピングによって精密に周囲の環境を認識できる

      導入コストが高い

      ・高度なスキルや専門知識を要する

      ・センサーデータの誤差や特定の環境下で精度が低下する

      それぞれ詳しく解説していきます。

      SLAMのメリット

      未知の環境下における自己位置推定と地図作成の同時実行能力がSLAM最大のメリットです。これにより、ロボットや自動運転機能を搭載する車は、GPSが利用できない屋内や複雑な環境でも自律的に移動できます。SLAMは周囲の環境から得られる情報を利用してリアルタイムで位置を特定し、環境地図を作成するので、障害物を回避しながら最適なルートを選択することが可能です。

      また、環境の変化に対応して動的な障害物を検出する能力も持っています。そのため、SLAMを活用しない場合と比較して、より安全で効率的なルートを選択できるようになります。

      さらに、SLAMは2次元平面ではなく3次元空間として周囲の環境を把握できるので、精密に自身の状況を認識することも可能です。特に複雑な都市環境や工業用途でのロボット操作においてその効果を発揮します。SLAM技術の進化により、自動運転車やロボット工学の分野での応用範囲が拡大しており、今後もその重要性は増すと予想されます。

      SLAMのデメリット

      SLAMのデメリットとしては、まず導入のハードルやコストの高さが挙げられます。位置推定や地図作成を行うには環境データを同時に大量処理しなければならないため、リアルタイムの負荷の高い処理に耐えられる高性能なハードウェアが必要になります。そのような高スペックのハードウェア購入・維持費用もコストとして負担になるケースも少なくありません。また、SLAMシステムの設計と実装は非常に複雑で、異なるセンサーのデータの同期やノイズ除去、専用アプリケーションのプログラミングなど、高度な知識と専門的なスキルが求められるでしょう。

      加えて、センサーデータの誤差や特定の環境下において位置推定の精度が低下する場合があるので、精度が低下しないような追加の対応が必要です。例えば、照明条件が悪い環境や特徴が少ない場所では、カメラではなく赤外線センサーや超音波センサーを使用する、追加で照明を用意する、種類の異なる複数のセンサーで取得したデータを統合する、といった対応です。

       

      SLAMの代表的なアルゴリズム

      SLAMにおいて高精度な自己位置推定と地図作成を行うためには、センサーといった機器の他に、効率的なアルゴリズムが不可欠です。SLAMの代表的なアルゴリズムとしては、EKF SLAMとFastSLAMが存在しています。

      本セクションでは、こちらの2つのアルゴリズムの特徴やSLAMでの活用方法、実用性について詳しく解説していきます。

      EKF SLAM

      EKF SLAM(Extended Kalman Filter SLAM)は、SLAMの初期のアルゴリズムの一つで、拡張カルマンフィルタを使用しています。拡張カルマンフィルタとは、不確実性を伴う測定データから位置や速度をできるだけ正確に推定するアルゴリズムです。

      EKF SLAMは、ロボットの自己位置と地図の両方を推定する際に、センサーからの観測データと動作モデルを組み合わせて使用します。センサーからの観測データに基づいてロボットの位置や地図の特徴点の推定値を更新しながら、データの確実性を高めていきます

      リアルタイムでの動作が可能であったり、比較的小規模な環境でも効果的に機能するのが大きな特徴です。しかし、大規模な環境や長期間の使用には向いておらず、計算負荷が高くなるのがデメリットです。また、EKF SLAMは誤差の伝播に弱く、時間が経つにつれて誤差が蓄積する傾向があるため、アルゴリズムの実行時間には注意しなければなりません。

      FastSLAM

      FastSLAMはパーティクルフィルタを用いたSLAMアルゴリズムの一つで、ロボットの軌跡を多数のパーティクル(粒子)で表現し、各パーティクルが独立して地図を作成します。特に大規模な環境や長期間のナビゲーションにおいて、他のSLAMアルゴリズムよりも優れた性能を発揮します。

      各パーティクルが独立して地図を更新して、計算負荷を効果的に分散できる点が主な特徴です。これにより、大規模な環境でも効率的にSLAMを実行できます。FastSLAMは特徴点の抽出に依存しており、特徴点を基に各パーティクルの地図を作成します。

      FastSLAMは、動的な環境や特徴点が豊富な環境での使用に適しています。しかし、特徴点が少ない場所や、パーティクルの数が多い場所では計算コストが増加するため、適切なパーティクル数の選定が重要となるでしょう。また、地図の各特徴点に対して個別のEKF SLAMを適用し、各特徴の位置を独立して更新することで、全体の計算負荷を軽減します。

       

      SLAMの活用事例

      IT技術の急速な進歩により、機械の単純な処理性能だけでなく機械自身が意思決定を下す思考の部分の進化もとどまることを知りません。その中でもSLAMは代表的な技術であり、自動運転車、ドローン、家庭用ロボットなど数多くの分野で実用化が進んでいます。

      本セクションでは、SLAMの実世界での活用事例について、ロボットによる自己位置推定と地図作成というSLAMの核となる技術の面から詳しく紹介していきます

      ロボットの自己位置推定

      SLAMの技術はロボットの自己位置推定に広く活用されています。特に、家庭内や工場・倉庫、病院といった屋内環境やGPS信号が届かない場所で欠かせません。例えば、家庭用のお掃除ロボットとして広く知られる「ルンバ」はSLAMの技術を利用しており、部屋の地図を作成して、効率的な掃除ルートを計算します。これにより、ロボットは同じ場所を何度も掃除せずに、時間とエネルギーを節約しながら清掃作業を行えるようになります

      Amazonのような大手企業の倉庫では、SLAM技術を搭載したロボットが商品のピッキングや搬送を担う場合があります。複雑な環境であっても自律的に動き回り、物品の運搬やサービス提供を行います。SLAM技術によって、ロボットは周囲の環境を認識し、障害物を避けながら目的地へと正確に移動することが可能です

      さらに、宇宙探査ロボットや災害救助ロボットもSLAM技術を活用して、未知の環境や危険な場所での探索や救助活動を行っています。

      地図作成

      SLAM技術は環境地図作成にも広く応用されています。特に、未知の環境や変化する環境での地図作成において欠かせません。

      例えばドローンはSLAM技術を使用して、屋内や都市環境、森林などの複雑な地形での3Dマッピングを行い、建設現場の監視、災害時の救助活動、農業分野での土地調査に貢献しています。自動運転車の分野では、TeslaやWaymoなどの企業がSLAM技術を活用して周囲の環境を詳細にマッピングし、安全なナビゲーションを実現しています。しかし、事故が発生した場合の責任や、購入価格の高さが課題です。また、建設業界ではSLAM技術を用いた3Dスキャンで建設現場の状況を正確に把握し、プロジェクトの進捗管理や安全性の向上に貢献しています。これにより、建設プロジェクトの効率化とコスト削減が実現されています。さらに、都市計画や歴史的建造物の保存においても、SLAM技術による詳細な3Dマッピングが重要な役割を果たしています。

       

      SLAMのまとめ

      SLAMという名前自体の一般的な知名度は低いですが、ドローンやルンバといった移動を行うタイプの身近な機器には必ずと言って良いほどSLAMの技術が搭載されています

      大きく分けてビジュアルSLAMとライダーSLAMの2種類が存在し、前者はカメラセンサーを用いて画像データから距離を測定し、後者は赤外線センサーから距離データを取得します。導入や運用のコストはライダーSLAMの方が高いですが、その分正確な距離測定が可能です。

      SLAMは使用するセンサによって効果を発揮できる環境が大きく異なります。そのため、自社製品にSLAMを導入する際は用途と解決したい課題を把握した上で、専門知識を持った人員を確保して、適切な方式を選択していきましょう。

      SLAMの導入や選定に迷った場合は、実績豊富な株式会社Jiteraに一度ご相談ください。貴社の要件に対する的確なアドバイスが提供されると期待できます。

      コスト削減も課題解決も同時に実現

      「JITERA」で迅速
      ソフトウェア開発

      開発を相談する
      おすすめの記事

      その他のカテゴリー

      email-img
      メルマガ登録
      JITERA社内で話題になった生成AIトレンドをいち早くお届けします。
      Thank you!

      Jiteraのメールマガジン登録が完了しました。