LiDARを用いた高度自己位置推定システム - 移動ロボットのための自己位置推定の高性能化とその実装例 -

LiDARを用いた高度自己位置推定システム - 移動ロボットのための自己位置推定の高性能化とその実装例 -

「自己位置推定」における頑健性や信頼度などの問題点に対して,その解決手法を解説

ジャンル
発行年月日
2022/06/16
判型
B5
ページ数
174ページ
ISBN
978-4-339-03240-6
LiDARを用いた高度自己位置推定システム - 移動ロボットのための自己位置推定の高性能化とその実装例 -
在庫あり

定価

3,300(本体3,000円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • レビュー
  • 著者紹介
  • 広告掲載情報

本書では,従来の自己位置推定ではできないことをできるようにすることを目的とし,これを「自己位置推定の高度化」として紹介しています。この高度化こそ,真に自動走行技術の社会実装につながるという考えのもとに,本書を執筆しました。「自己位置推定の実装,または利用をした経験があり,その問題の存在を認識し,その問題を解決したいという考えを持った方」が学びやすいように以下の構成としています。また,C++による実装例も掲載し,より実現の方法がわかりやすくなるように配慮し,利用した実際のソースコードはWeb上で公開しています。

1章では,自己位置推定とはどのような問題か,またその重要性を自動走行を例に解説します。そして,本書が問題視する従来の自己位置推定法の課題を解説し,それらに対して本書が示す解決方法を簡単に解説します。以降5章までは,「開発環境構築とシミュレータ」,「数学的基礎」,「自己位置推定の定式化と動作・観測モデル」,「モンテカルロ位置推定の実装」の順に,自己位置推定に関する基礎的なことに関する解説を行います。6章からが,本書が扱うメインテーマとなります。
6章では,環境の変化に対して頑健に自己位置推定を行うことを目的とした,「観測物体のクラスを考慮した自己位置推定法」について解説します。
7章では,自己位置推定結果の正しさを知るということを目的とした,「信頼度付き自己位置推定」について解説します。信頼度付き自己位置推定法は,自己位置推定法結果の信頼度までを同時推定できるモデルに拡張しています。
8章では,センサ観測値と地図の間に生じる誤対応を認識する方法について解説します。またこの誤対応認識に基づき,自己位置推定の失敗を検出する方法を解説します。
9章では,自己位置推定の失敗からの復帰を目的として,「One-shot自己位置推定」と,5章で述べる自己位置推定法の確率的融合法について解説します。One-shot自己位置推定とは,現時刻のセンサ観測値のみを用いて自己位置を推定する方法ですが,近年の深層学習の発展により,実現可能性が見えてきています。
10章では,本章で問題視した従来の自己位置推定法の課題と,これに対して本書で解説した解決方法について再度整理します。そしてこれに基づき,自己位置推定におけるさらなる課題について議論します。最初に10章を読んでから各章を読むことも,本書の全体的な概要を掴むためには有効といえます。

【読者へのメッセージ】
本書が,自動走行システムなど,自己位置推定を必須とする技術の発展に貢献することを願い,これにより,そのテクノロジーの恩恵を社会が受けられるようになれば幸いです。

自己位置推定(localization)とは,その名のとおり「自己」の「位置」を「推定」する技術です。どういうことかといえば,あらかじめ地図が構築されているという前提のもとで,移動体が有するセンサの観測値を地図と照合し,いま現在,移動体が地図上のどの地点にいるかを特定する技術です。ここでいう移動体とは,ロボットや自動車,スマートフォンなど,多様なものが挙げられます。これだけ聞くと,「位置を知ることができて何が嬉しいのか」と感じるかもしれませんが,自己位置推定はロボットや自動車の自動走行を実現するための根幹技術となっています。自己位置推定はロボティクス分野では古くから研究されており,現在においても非常にポピュラーなトピックです。特に近年では,深層学習を初めとした機械学習の発展が目覚ましく,自己位置推定問題にも深層学習を応用する例が数多く報告されています。

上述のとおり自己位置推定は,自動走行実現のために重要な役割を担います。自動走行を構成する技術は多数ありますが,自己位置推定技術の発展は,自動運転を初めとした自動走行技術が社会実装されるために,不可欠なものになると著者は考えています。しかし,上述のような,深層学習を単に自己位置推定に応用するというアプローチは,自動走行技術の社会実装に直接的にはつながらないと著者は考えています。これはいわゆる,深層学習の「ブラックボックス性」が問題になるというのではなく,根本的に解決困難な課題が存在すると考えているためです。

自己位置推定の「推定」という言葉は,「ある事実を手がかりにして,推し量って決めること」を意味しています。つまり,「センサの観測値を基に,おそらくこの地点に存在するだろう」という認識を行っています。何を指摘したいかというと,「この地点に存在しています」と「断定」しているわけではなく,あくまで「存在するだろう」と「推定」しているのです。自動運転のようなものは,失敗すれば大事故を引き起こしかねないものです。しかも厄介なことに,自己位置推定に基づく自動走行システムを実装すると,自己位置推定の失敗とともに自動走行も失敗するということが頻発します。自動走行を実施するにあたり,このような曖昧な自己位置推定結果に基づいて走行することは,安全保障の観点から適切ではないと著者は考えています。

上記の問題に対して著者は,「自己位置推定の結果を信頼するために何をすべきか」という問題を定め,これに関する研究を行ってきました。この問題に取り組み,実感したことは,「Probabilistic Robotics」に記述されている自己位置推定法には限界があるということでした。つまりこの自己位置推定法だけでは,自己位置推定結果を信頼するに足る情報までを得ることができず,上記の問題は解決できないと考えました。なお,ここでいう「解決できる」とは,「数式として定めてモデルを定義し,そのモデルを解くことで欲しい情報が得られる」という状態を意味していることに留意してください。このことから,「これまでの自己位置推定法ではできないことをできるようにする」というモチベーションを持ち,研究を行ってきました。これこそが,本書が主張している「自己位置推定の高度化」になります。つまり,単に使う情報を工夫して自己位置推定の精度や頑健性を向上させるのでなく,自己位置推定問題単体とは異なる定式化を行い,自己位置と同時に他の重要な情報を知ることができるような拡張を行っています。その代表的な取組みが7章で述べる「信頼度付き自己位置推定」であり,自己位置推定結果の信頼度を推定するというものです。このように,これまでの自己位置推定でできないことをできるようにする「高度化に基づく高性能化」こそ,真に自動走行技術の社会実装につながると著者は考えています。

このような理由から,本書は自己位置推定を実装,または利用した経験があり,その問題の存在を認識し,解決したいというような考えを持った読者にとって,有益であると考えられます。入門的な部分については,1~5章までで自己位置推定の基礎とそれを理解するために必要な数学的知識,またその実装方法も解説します。自己位置推定以外の内容についてさらに詳しく知りたい方は,他の書籍(例えば,「Probabilistic Robotics」,「詳解確率ロボティクス」,「SLAM入門」)を参考にしてください。

本書では,論文のように単に数式を説明するだけでなく,C++による実装例も掲載し,より実現の方法がわかりやすくなるように配慮しました。また,近年のオープンソースソフトウェアの流れに乗り,利用した実際のソースコードも公開しています。このソフトウェアを通して,著者がこれまでに培ってきた技術が,少しでも社会に還元されることを願っています。

著者自身は,2016年3月に博士号を取得した身分であり,いわゆる大御所と呼ばれるような研究者ではありません。それにもかかわらず,私のような若手の研究者に,本書の執筆の機会を与えてくださったコロナ社には,大変感謝しています。微力とは思いますが,本書がロボティクス分野,ひいてはわが国の科学技術力向上につながれば幸いです。

最後になりますが,本書は,2016年からこれまでの間に,著者が名古屋大学で行った研究の成果を基にまとめたものです。この間,国立研究開発法人科学技術振興機構の研究成果展開事業「センター・オブ・イノベーションプログラム(名古屋COI:高齢者が元気になるモビリティ社会)」から多大な支援をいただきました。この支援なしには,本書は存在し得ませんでした。

またこの研究期間を通して,名古屋大学内外からの多くの研究者・技術者から助言をいただきました。本来ならお一人ずつ名前を挙げて感謝を申し上げたいところですが,紙面の都合で割愛させていただきます。これらの支援や助言に対してここに感謝し,お礼申し上げます。

2022年4月
赤井直紀

1. 自己位置推定およびその高度化について
1.1 自己位置推定およびその高度化
1.2 本書で扱う手法
1.3 本書の構成と内容
1.4 まとめ

2. 開発環境構築とシミュレータ
2.1 開発環境構築
 2.1.1 開発環境の構築
 2.1.2 ALSEduのインストール
2.2 シミュレータの概要
 2.2.1 ロボットの構成
 2.2.2 シミュレータの起動の確認
 2.2.3 シミュレータの中身の確認
2.3 まとめ

3. 数学的基礎
3.1 確率の基礎
 3.1.1 確率分布
 3.1.2 期待値と分散
 3.1.3 同時確率と条件付き確率
 3.1.4 加法定理,乗法定理,全確率の定理,ベイズの定理
3.2 グラフィカルモデル
3.3 ベイジアンネットワーク
 3.3.1 条件付き独立性
 3.3.2 有向分離
3.4 マルコフ確率場
 3.4.1 マルコフ確率場の因数分解
 3.4.2 ポテンシャル関数の具体例
 3.4.3 一直線のマルコフ確率場
3.5 まとめ

4. 自己位置推定の定式化と動作モデル,観測モデル
4.1 自己位置推定の定式化
 4.1.1 グラフィカルモデル
 4.1.2 定式化
4.2 動作モデル
4.3 観測モデル
 4.3.1 観測の独立性の仮定
 4.3.2 ビームモデル
 4.3.3 尤度場モデル
 4.3.4 その他の観測モデル
 4.3.5 自己位置推定はなぜ環境変化に対する頑健性を保てないのか
4.4 まとめ

5. モンテカルロ位置推定の実装
5.1 モンテカルロ位置推定
 5.1.1 パーティクルフィルタ
 5.1.2 動作モデルによる更新
 5.1.3 観測モデルによる尤度の計算
 5.1.4 自己位置の推定
 5.1.5 リサンプリング
5.2 モンテカルロ位置推定の実行
 5.2.1 実装例
 5.2.2 実行と位置推定の結果
5.3 モンテカルロ位置推定の拡張
 5.3.1 適応的なパーティクル数の決定
 5.3.2 誤収束の認識と復帰
 5.3.3 動的障害物を観測している観測値の棄却
5.4 まとめ

6. 自己位置と観測物体のクラスの同時推定
6.1 グラフィカルモデルと定式化
 6.1.1 グラフィカルモデル
 6.1.2 定式化
6.2 自己位置と観測物体のクラスの同時推定の実装
 6.2.1 ラオ・ブラックウェル化パーティクルフィルタ
 6.2.2 処理手順
 6.2.3 尤度計算
 6.2.4 knownの場合の観測モデル
 6.2.5 unknownの場合の観測モデル
 6.2.6 C_tの事前確率
 6.2.7 クラス条件付き観測モデルによる尤度計算の実装例
 6.2.8 センサ観測値のクラスに関する確率分布の推定
 6.2.9 センサ観測値のクラス推定の実装例
6.3 自己位置と観測物体のクラスの同時推定の実行
 6.3.1 実行
 6.3.2 尤度分布の比較
 6.3.3 棄却性能の比較
 6.3.4 欠点
6.4 汎用的クラスを用いた自己位置推定法への拡張
 6.4.1 汎用的クラスを導入することの難しさ
 6.4.2 クラス情報を活用した尤度計算モデル
6.5 関連研究
6.6 まとめ

7. 信頼度付き自己位置推定
7.1 グラフィカルモデルと定式化および信頼度の解釈
 7.1.1 グラフィカルモデル
 7.1.2 定式化
 7.1.3 信頼度付き自己位置推定における信頼度の解釈
 7.1.4 信頼度と確信度
7.2 信頼度付き自己位置推定の実装
 7.2.1 処理手順
 7.2.2 信頼度遷移モデル
 7.2.3 判断モデル
7.3 信頼度付き自己位置推定の実行
 7.3.1 正誤判断分類器の学習の実行
 7.3.2 実行
 7.3.3 信頼度推定の結果
 7.3.4 性能限界
7.4 関連研究
7.5 まとめ

8. センサ観測値と地図間の誤対応認識
8.1 観測の独立性
 8.1.1 観測の独立性を仮定することの必要性
 8.1.2 観測の独立性を仮定することの問題
 8.1.3 観測の独立性の仮定の正しさ
 8.1.4 自己位置推定の性能保証の観点から見たSLAMの重要性
8.2 センサ観測値全体の関係性を考慮した誤対応認識
 8.2.1 未知変数全結合型のマルコフ確率場のグラフィカルモデル
 8.2.2 定式化
8.3 誤対応認識の実装
 8.3.1 グラフィカルモデルにおける変数の物理的意味
 8.3.2 尤度ベクトル
 8.3.3 二つの未知変数がなすクリーク上のポテンシャル関数
 8.3.4 事後分布の推定
 8.3.5 事後分布推定のプログラムによる実装
 8.3.6 自己位置推定失敗の検知
 8.3.7 自己位置推定失敗の検知のプログラムによる実装
 8.3.8 全結合の意味と注意点
8.4 誤対応認識の実行
 8.4.1 実装例
 8.4.2 プログラムの実行
 8.4.3 性能限界
8.5 関連研究
8.6 まとめ

9. One-shot自己位置推定とMCLの融合
9.1 One-shot自己位置推定
9.2 誘拐状態の検知と復帰およびそれらの課題
 9.2.1 誘拐状態の検知
 9.2.2 センサリセット
 9.2.3 膨張リセット
 9.2.4 誘拐状態の検知・リセットの難しさ
9.3 深層学習を用いたOne-shot自己位置推定とMCLの融合
 9.3.1 重点サンプリング
 9.3.2 深層学習の予測の不確かさ
 9.3.3 重点サンプリングを介したOne-shot自己位置推定の融合
9.4 One-shot自己位置推定とMCLの融合の実装
 9.4.1 One-shot自己位置推定からサンプリングされたパーティクルの尤度計算
 9.4.2 尤度に従った自己位置の推定
 9.4.3 リサンプリング
9.5 One-shot自己位置推定とMCLの融合の実行
 9.5.1 実装例
 9.5.2 実行結果
 9.5.3 性能限界
9.6 関連研究
9.7 まとめ

10. 自己位置推定の高性能化に向けて
10.1 環境変化に対する自己位置推定の頑健性
 10.1.1 頑健性保証の難しさ
 10.1.2 頑健性向上のためのアプローチ
 10.1.3 観測モデルに関するさらなる発展
10.2 自己位置推定結果の信頼度
 10.2.1 自己位置推定結果の確信度と信頼度
 10.2.2 信頼度推定のためのアプローチ
 10.2.3 より正確な信頼度を推定するために
10.3 自己位置推定結果の正誤判断
 10.3.1 センサ観測値と地図間の誤対応認識
 10.3.2 誤対応認識のアプローチ
 10.3.3 より正確な誤対応認識
10.4 誘拐状態からの復帰
 10.4.1 誘拐状態の検知と復帰の難しさ
 10.4.2 誘拐状態からの復帰アプローチ
 10.4.3 より正確な誘拐状態からの復帰
10.5 まとめ

引用・参考文献
索引

読者モニターレビュー【 めっくろぐ 様(ご専門:自動運転)】

本書は、LiDARを用いた自己位置推定の従来手法が抱える課題について、筆者が取り組んできた解決策を述べる一冊である。確率論的アプローチについて、自己位置推定と同時に信頼度といった付加的な情報も取り出すことで、自己位置推定・自律走行が失敗しないよう高度化を図るものである。

このような筆者の取り組みを知るために本書が最適であることはもちろんだが、自己位置推定の初学者にもお薦めであると感じた。数学的な入門から始まり最新の研究動向までが、コンパクトな一冊に、抜け目なくまとめられているからである。要所要所で、言及している技術において何が実現可能であるのか、何が課題であるのかということが端的に解説されているので、理解が深まりやすい。取り扱わない関連研究についても、本書の手法と比較しながら述べられているので、それぞれの特徴も理解しやすい。参考文献も豊富に掲載されているので、興味があれば自分でこれらを追っていくことができる。初心者でも、最新の研究動向までカバーできるようになっているのである。

そして、C++実装例の掲載は、理解を深めるためにやはり大いに役立つ。単なるツールの使用方法の説明ではなく、原理を理解するための実装例なので、これをベースに自分のアイデアを作ってみることもできるだろう。

自律移動技術のニーズが高まるなかで、自己位置推定の高度化と、裾野を広げるという2つの側面において、本書の貢献は大きなものになると感じている。

読者モニターレビュー【 名無し 様(業務内容:環境認識システムの研究開発)】

本書は、数あるセンシング技術の中からLiDARを用いた手法を対象とした自己位置推定方法を数式ベースで詳細に解説したうえで、既存技術の課題点を上げ、筆者の解決法を丁寧に論じている。

1章から5章までは数式をメインとした解説が続いてるが、筆者が記述している通りメインテーマに入る前に理解しておく必要がある数学的基礎である。私を含め、普段から確率論などの数学に触れていない者には難しく感じてしまうかもしれないが、本書では丁重に説明されている。時間をかけても本題の6章に入る前に理解を深めておくか、先の章で躓いた時に立ち戻ると理解が進むと思われる。

後半の章では単に自己位置推定法を解説するだけではなく、自己位置推定がどのように失敗し誤検出をしてしまうかまで詳細に説明することで、問題点や課題点への理解がしやすい導入になっている。自己位置推定といった分野にフォーカスした書籍や情報集で、概論だけでなく原理など詳細に至るまで書き記させている日本語書籍は他にないのではないだろうか。
この分野を研究、または専門と扱う職種の方にぜひおすすめしたい書籍である。

読者モニターレビュー【 3A 様(ご専門:ロボティクス)】

章の構成として、下記の通り順序だてられていて、読み進めやすい構成となっている。1章、背景。2章、開発環境。3章、本書で扱っている技術を理解するうえで必要な数学知識。4章、Probablistic Roboticsで解説されている従来の確率的自己位置推定法(動作モデル、観測モデル)。5章、パーティクルフィルタを用いた自己位置推定法であるMCL位置推定の実装(C++での一般的な実装例と拡張実装例)。6章、自己位置と観測物体のクラスに関する同時分布を推定する方法。7章、自己位置推定の正誤を正しく認識することを目的とした自己位置推定結果の信頼度推定方法。8章、自己位置推定の失敗の結果生じる、観測値と地図の間の誤対応を認識する方法、およびこの誤対応の結果に基づいて自己位置推定の失敗を検知する方法。9章、One-Shot自己位置推定とMCLを確率的に融合させる方法(近年注目されている機械学習を矛盾なくMCLに融合させる方法)。10章、まとめとして、本書で解説した技術を使って解決できていることとまだ不十分であること、そして今後の展望。

5章以降、随所にソースコードを使った説明がなされており、それが内容理解の助けになっているとともに、実際に実装する際に参考になる内容となっている。また、6章から9章では関連研究という節を設け、近年の研究についての解説があり、参考になる内容だった。

赤井 直紀

赤井 直紀(アカイ ナオキ)

2016年宇都宮大学大学院博士後期課程修了。博士(工学)。2020年より名古屋大学大学院工学研究科助教。ロボットの自動走行や自律飛行に関する研究、特に自己位置推定に関する研究に従事。

掲載日:2022/06/20

「日本ロボット学会誌」2022年6月号広告

掲載日:2022/06/07

「日本機械学会誌」2022年6月号広告

掲載日:2022/06/01

「電子情報通信学会誌」2022年6月号広告

掲載日:2022/05/31

日刊工業新聞広告掲載(2022年5月31日)