内容説明
ロボットの自律走行・ドローンの自律飛行の鍵となるSLAM技術について一から解説した入門書。さらに、改訂2版では発展的な内容を追加。
本書は,ロボットの自律走行・ドローンの自律の鍵となるSLAM(Simultaneous Localization and Mapping)技術について一から解説した入門書です.
さらに,改訂2版では,SLAM技術の高性能化・高機能化を踏まえて,2D-SLAMの処理速度やロバスト性を向上させる方法,3D-SLAMの原理の説明など,より発展的な内容も充実させています.
本書では,プログラムをつくりながら考えるスタイルにし,読み進めるうちに,必要に応じて基礎に立ち返ることができるようにしました.すなわち,「まずは原理も構造も簡単な部品をつくり,何がうまくいかなかったかを分析しながら,改良して部品を置き換える」という手順で,簡単なところから段階的に理解を深めてもらえるように解説しています(解説に使用しているプログラムはWebサイトより入手可能).
ロボットの環境認識,センシング,SLAMなどに興味があり,既存のオープンソースを使うだけでなく,自分でプログラムをつくれるようになりたい,あるいは,プログラムの内容を理解したいと考えている人に,まさに「打って付け」の書籍です.
目次
第1章 はじめに
1.1 なぜ地図が必要か?
1.2 SLAMで何ができるのか?
1.3 SLAMで構築した地図の例
第2章 SLAMの基礎
2.1 SLAMとは
2.2 SLAMの原理
2.3 SLAMの要素技術
2.4 SLAMの処理形態:一括処理と逐次処理
第3章 SLAMの入出力
3.1 SLAMの入力
3.2 SLAMの出力
第4章 SLAMシステムの具体化
4.1 システム構成の方針
4.2 システムの概要
4.3 グラフベースSLAM
第5章 本書のプログラム
5.1 プログラムの概要
5.2 本書で用いるC++の要点
5.3 プログラムの構成
5.4 データセット
5.5 プログラムの使い方
5.6 プログラムの起動
第6章 オドメトリによる地図構築
6.1 センサデータの構造
6.2 実 装
6.3 gnuplotによる描画関数
第7章 スキャンマッチング
7.1 スキャンマッチングとは
7.2 ICP
7.3 ICPの実装
7.4 動作確認
第8章 スキャンマッチングの改良
8.1 改良のポイント
8.2 スキャン前処理
8.3 地図生成の改良
8.4 参照スキャン生成の改良
8.5 データ対応づけの改良
8.6 ロボット位置の最適化
8.7 改良プログラムの実装
8.8 動作確認
第9章 センサ融合による退化への対処
9.1 退化はなぜ生じるか?
9.2 センサ融合
9.3 共分散の計算
9.4 センサ融合の実装
9.5 動作確認
第10章 ループ閉じ込み
10.1 ループ閉じ込みとは
10.2 ポーズ調整
10.3 部分地図の導入
10.4 ループ検出
10.5 地図の修正
10.6 ループ閉じ込みの実装
10.7 動作確認
第11章 SLAMの高速化とロバスト化
11.1 スキャンマッチングの高速化
11.2 スキャンマッチングのロバスト化
11.3 MAP 推定による退化の対処
11.4 kd木を用いたデータ対応づけ
11.5 ループ閉じ込みのロバスト化
11.6 追加機能の実装
11.7 動作確認
第12章 3D-SLAMの基礎
12.1 センサ
12.2 点群の扱い
12.3 回転の扱い
12.4 スキャンマッチング
12.5 LidarとIMUのセンサ融合
12.6 ループ閉じ込み
12.7 3D-SLAMによる地図の例
第13章 SLAMの数学的基礎
13.1 線形代数
13.2 座標変換
13.3 最小二乗法
13.4 確率分布
13.5 誤差解析
13.6 ロボット位置の共分散の計算
13.7 点群の主成分分析
13.8 垂直距離と共分散の関係
13.9 正規分布の融合
13.10 M推定
13.11 3次元回転の表現
13.12 3次元回転とリー代数
13.13 ベイズフィルタによるSLAM
13.14 バンドル調整
13.15 オブジェクト指向フレームワーク