《概率機器人》對概率機器人學這一新興領域進行了全面的介紹。概率機器人學依賴統(tǒng)計技術表示信息和進行決策,以容納當今大多數(shù)機器人應用中必然存在的不確定性,是機器人學的一個分支。它依賴統(tǒng)計技術表示信息和制定決策。這樣做,可以接納在當今大多數(shù)機器人應用中引起的不確定性。本書主要專注于算法,對于每種算法,均提供了四項內容:①偽碼示例;②完整的數(shù)學推導;③實驗結果;④算法優(yōu)缺點的詳細討論。
《概率機器人》包括了基礎知識、定位、地圖構建、規(guī)劃與控制四大部分。本書共17章,每章的后都提供了練習題和動手實踐的項目。相信本書可以加深讀者對概率機器人學的認識。
適讀人群 :從事機器人、移動機器人研究和開發(fā)的科技人員,高等院校計算機、控制、電子等專業(yè)研究生
《概率機器人》是機器人領域的經(jīng)典之作。作者Sebastian Thrun博士是谷歌自動駕駛汽車之父、X實驗室創(chuàng)始人之一。三位作者綜合自己深厚的數(shù)學理論及算法實踐,打通數(shù)學理論模型,到實際應用平臺路經(jīng),讓人們順利應用機器人算法,讓機器人更“智能”。
原書前言
本書對概率機器人學這一新興領域進行了全面的介紹。概率機器人學與感知和控制機器人有關,是機器人學的一個分支。它依賴統(tǒng)計技術去表示信息和制定決策。這樣做,可以接納在當今大多數(shù)機器人應用中引起的不確定性。近幾年,概率技術已經(jīng)成為機器人算法設計的主導范式之一。本書第一次將這一領域的一些主要技術進行了全面的介紹。
本書專注于算法。本書中的所有算法都是基于一個單一的總體數(shù)學基礎:貝葉斯理論及其推論———貝葉斯濾波。這種統(tǒng)一的數(shù)學體系是概率算法的核心。
在寫這本書時,我們已經(jīng)盡可能保持技術細節(jié)的完整。每章描寫一個或多個主要算法。對每一種算法,我們提供了以下四項內容:①偽碼的示例實現(xiàn);②從基本定理開始的完整的數(shù)學推導(使每個算法的不同假設都很清晰);③實驗結果(有助于進一步理解本書中的算法);④本書中每一個算法優(yōu)缺點的詳細討論(從一個專業(yè)人員的視角)。對每一個不同的算法都進行這樣的開發(fā),是一件辛苦的工作。即使跳過數(shù)學推導部分(讀者常會這樣),對于普通讀者來說,理解這本書有時還是有困難的。我們希望細心的讀者能對本書有深入的理解,因為本 書并不是就某一主題進行膚淺的和非數(shù)學的闡述。
本書是我們(包括幾位作者、我們的學生以及同行)在該領域數(shù)十年的研究成果。我們從1999年開始寫這本書,本打算用幾個月的時間完成這本書。但是,5年過去了,初稿中的內容幾乎沒有被保留下來的。通過這本書的寫作,我們學到的信息和決策理論遠比我們當初以為的要多得多。并且,我們學到的大量理論也已經(jīng)在本書中進行了闡述。
本書是寫給學生、研究者和機器人技術從業(yè)者的。我們相信,任何人要構建機器人都要開發(fā)軟件。因此,本書的內容適用于每一位機器人專家。同時,應用統(tǒng)計學專家及與客觀世界的傳感器數(shù)據(jù)有關的非機器人學領域的人們,也會對本書感興趣。為使本書廣泛服務于具有不同技術背景的讀者,我們力圖做到使本書盡可能地自成體系。如果讀者具有一些線性代數(shù)、概率論和數(shù)理統(tǒng)計的基礎知識對理解本書內容是非常有幫助的,不過我們還是介紹了一些概率的基本定律的入門知識,并且本書全文避免使用太過先進的數(shù)學技術。
本書也可以用于教學。每一章都提供了一些習題和動手實踐的項目。將本書用于教學時,每一章都要用一兩個課時。有些章節(jié)可以跳過或者根據(jù)需要重新排序進行講授;事實上,在我們自己的教學工作中,我們通常從本書的中間部分(第7章)開始教授。我們建議學習本書的同時應根據(jù)每章最后的指導親自動手實踐。在機器人技術領域,沒有比親自動手做更重要的了。
盡管我們非常努力,本書中還是會有一些技術錯誤。有一部分錯誤在本書第三次印刷時已經(jīng)更正。我們還會在本書的網(wǎng)站上繼續(xù)修訂,與本書有關的其他內容也會放在網(wǎng)站上。
希望你喜歡這本書!
Sebastian Thrun Wolfram Burgard Dieter Fox
目 錄
譯者序
原書前言
致謝
第Ⅰ部分 基礎知識
第1章 緒論 1
1.1 機器人學中的不確定性 1
1.2 概率機器人學 2
1.3 啟示 6
1.4 本書導航 7
1.5 概率機器人課程教學 7
1.6 文獻綜述 8
第2章 遞歸狀態(tài)估計 10
2.1 引言 10
2.2 概率的基本概念 10
2.3 機器人環(huán)境交互 14
2.3.1 狀態(tài) 15
2.3.2 環(huán)境交互 16
2.3.3 概率生成法則 18
2.3.4 置信分布 19
2.4 貝葉斯濾波 20
2.4.1 貝葉斯濾波算法 20
2.4.2 實例 21
2.4.3 貝葉斯濾波的數(shù)學推導 23
2.4.4 馬爾可夫假設 25
2.5 表示法和計算 25
2.6 小結 26
2.7 文獻綜述 26
2.8 習題 27
第3章 高斯濾波 29
3.1 引言 29
3.2 卡爾曼濾波 30
3.2.1 線性高斯系統(tǒng) 30
3.2.2 卡爾曼濾波算法 31
3.2.3 例證 32
3.2.4 卡爾曼濾波的數(shù)學推導 33
3.3 擴展卡爾曼濾波 40
3.3.1 為什么要線性化 40
3.3.2 通過泰勒展開的線性化 42
3.3.3 擴展卡爾曼濾波算法 44
3.3.4 擴展卡爾曼濾波的數(shù)學推導 44
3.3.5 實際考慮 46
3.4 無跡卡爾曼濾波 49
3.4.1 通過無跡變換實現(xiàn)線性化 49
3.4.2 無跡卡爾曼濾波算法 50
3.5 信息濾波 54
3.5.1 正則參數(shù) 54
3.5.2 信息濾波算法 55
3.5.3 信息濾波的數(shù)學推導 56
3.5.4 擴展信息濾波算法 57
3.5.5 擴展信息濾波的數(shù)學推導 58
3.5.6 實際考慮 59
3.6 小結 60
3.7 文獻綜述 61
3.8 習題 62
第4章 非參數(shù)濾波 64
4.1 直方圖濾波 64
4.1.1 離散貝葉斯濾波算法 65
4.1.2 連續(xù)狀態(tài) 65
4.1.3 直方圖近似的數(shù)學推導 67
4.1.4 分解技術 69
4.2 靜態(tài)二值貝葉斯濾波 70
4.3 粒子濾波 72
4.3.1基本算法 72
4.3.2 重要性采樣 75
4.3.3 粒子濾波的數(shù)學推導 77
4.3.4 粒子濾波的實際考慮和特性 79
4.4 小結 85
4.5 文獻綜述 85
4.6 習題 86
第5章 機器人運動 88
5.1 引言 88
5.2 預備工作 89
5.2.1 運動學構型 89
5.2.2 概率運動學 89
5.3 速度運動模型 90
5.3.1 閉式計算 91
5.3.2 采樣算法 92
5.3.3 速度運動模型的數(shù)學推導 94
5.4 里程計運動模型 99
5.4.1 閉式計算 100
5.4.2 采樣算法 102
5.4.3 里程計運動模型的數(shù)學推導 104
5.5 運動和地圖 105
5.6 小結 108
5.7 文獻綜述 109
5.8 習題 110
第6章 機器人感知 112
6.1 引言 112
6.2 地圖 114
6.3 測距儀的波束模型 115
6.3.1 基本測量算法 115
6.3.2 調節(jié)固有模型參數(shù) 119
6.3.3 波束模型的數(shù)學推導 121
6.3.4 實際考慮 126
6.3.5 波束模型的局限 127
6.4 測距儀的似然域 127
6.4.1 基本算法 127
6.4.2 擴展 130
6.5 基于相關性的測量模型 131
6.6 基于特征的測量模型 133
6.6.1 特征提取 133
6.6.2 地標的測量 133
6.6.3 已知相關性的傳感器模型 134
6.6.4 采樣位姿 135
6.6.5 進一步的考慮 137
6.7 實際考慮 137
6.8 小結 138
6.9 文獻綜述 139
6.10 習題 139
第Ⅱ部分 定 位
第7章 移動機器人定位:馬爾可夫與高斯 142
7.1 定位問題的分類 144
7.2 馬爾可夫定位 146
7.3 馬爾可夫定位圖例 147
7.4 擴展卡爾曼濾波定位 149
7.4.1 圖例 149
7.4.2 擴展卡爾曼濾波定位算法 151
7.4.3 擴展卡爾曼濾波定位的數(shù)學推導 151
7.4.4 物理實現(xiàn) 157
7.5 估計一致性 161
7.5.1 未知一致性的擴展卡爾曼濾波定位 161
7.5.2 極大似然數(shù)據(jù)關聯(lián)的數(shù)學推導 162
7.6 多假設跟蹤 164
7.7 無跡卡爾曼濾波定位 165
7.7.1 無跡卡爾曼濾波定位的數(shù)學推導 165
7.7.2 圖例 168
7.8 實際考慮 172
7.9 小結 174
7.10 文獻綜述 175
7.11 習題 176
第8章 移動機器人定位:柵格與蒙特卡羅 179
8.1 介紹 179
8.2 柵格定位 179
8.2.1 基本算法 179
8.2.2 柵格分辨率 180
8.2.3 計算開銷 184
8.2.4 圖例 184
8.3 蒙特卡羅定位 189
8.3.1 圖例 189
8.3.2 蒙特卡羅定位算法 191
8.3.3 物理實現(xiàn) 191
8.3.4 蒙特卡羅定位特性 194
8.3.5 隨機粒子蒙特卡羅定位:失效恢復 194
8.3.6 更改建議分布 198
8.3.7 庫爾貝克-萊布勒散度采樣:調節(jié)樣本集合大小 199
8.4 動態(tài)環(huán)境下的定位 203
8.5 實際考慮 208
8.6 小結 209
8.7 文獻綜述 209
8.8習題 211
第Ⅲ部分 地圖構建
第9章 占用柵格地圖構建 213
9.1 引言 213
9.2 占用柵格地圖構建算法 216
9.2.1 多傳感器信息融合 222
9.3 反演測量模型的研究 223
9.3.1 反演測量模型 223
9.3.2 從正演模型采樣 224
9.3.3 誤差函數(shù) 225
9.3.4 實例與深度思考 226
9.4 最大化后驗占用地圖構建 227
9.4.1 維持依賴實例 227
9.4.2 用正演模型進行占用柵格地圖構建 228
9.5 小結 231
9.6 文獻綜述 231
9.7 習題 232
第10章 同時定位與地圖構建 235
10.1 引言 235
10.2 基于擴展卡爾曼濾波的SLAM 237
10.2.1 設定和假設 237
10.2.2 已知一致性的SLAM問題 238
10.2.3 EKF SLAM的數(shù)學推導 241
10.3 未知一致性的EKF SLAM 244
10.3.1 通用EKF SLAM算法 244
10.3.2 舉例 247
10.3.3 特征選擇和地圖管理 250
10.4 小結 252
10.5 文獻綜述 253
10.6 習題 256
第11章 GraphSLAM算法 258
11.1 引言 258
11.2 直覺描述 260
11.2.1 建立圖形 260
11.2.2 推論 262
11.3 具體的GraphSLAM算法 265
11.4 GraphSLAM算法的數(shù)學推導 270
11.4.1 全SLAM后驗 271
11.4.2 負對數(shù)后驗 272
11.4.3 泰勒表達式 272
11.4.4 構建信息形式 273
11.4.5 濃縮信息表 274
11.4.6 恢復機器人路徑 277
11.5 GraphSLAM算法的數(shù)據(jù)關聯(lián) 278
11.5.1 未知一致性的GraphSLAM算法 279
11.5.2 一致性測試的數(shù)學推理 281
11.6 效率評價 283
11.7 實驗應用 284
11.8 其他的優(yōu)化技術 288
11.9 小結 290
11.10 文獻綜述 291
11.11 習題 293
第12章 稀疏擴展信息濾波 294
12.1 引言 294
12.2 直觀描述 296
12.3 SEIF SLAM算法 298
12.4 SEIF的數(shù)學推導 301
12.4.1 運動更新 301
12.4.2 測量更新 304
12.5 稀疏化 304
12.5.1 一般思想 304
12.5.2 SEIF的稀疏化 306
12.5.3 稀疏化的數(shù)學推導 307
12.6 分期償還的近似地圖恢復 308
12.7 SEIF有多稀疏 310
12.8 增量數(shù)據(jù)關聯(lián) 313
12.8.1 計算增量數(shù)據(jù)關聯(lián)概率 313
12.8.2 實際考慮 315
12.9 分支定界數(shù)據(jù)關聯(lián) 318
12.9.1 遞歸搜索 318
12.9.2 計算任意的數(shù)據(jù)關聯(lián)概率 320
12.9.3 等價約束 320
12.10 實際考慮 322
12.11 多機器人SLAM 325
12.11.1 整合地圖 326
12.11.2 地圖整合的數(shù)學推導 328
12.11.3 建立一致性 329
12.11.4 示例 329
12.12 小結 332
12.13 文獻綜述 333
12.14 習題 334
第13章 FastSLAM算法 336
13.1 基本算法 337
13.2 因子分解SLAM后驗 338
13.2.1 因式分解的SLAM后驗的數(shù)學推導 339
13.3 具有已知數(shù)據(jù)關聯(lián)的FastSLAM算法 341
13.4 改進建議分布 346
13.4.1 通過采樣新位姿擴展路徑后驗 346
13.4.2 更新可觀察的特征估計 348
13.4.3 計算重要性系數(shù) 349
13.5 未知數(shù)據(jù)關聯(lián) 351
13.6 地圖管理 352
13.7 FastSLAM算法 353
13.8 高效實現(xiàn) 358
13.9 基于特征的地圖的 FastSLAM 360
13.9.1 經(jīng)驗思考 360
13.9.2 閉環(huán) 363
13.10 基于柵格的FastSLAM算法 366
13.10.1 算法 366
13.10.2 經(jīng)驗見解 366
13.11 小結 369
13.12 文獻綜述 371
13.13 習題 372
第Ⅳ部分 規(guī)劃與控制
第14章 馬爾可夫決策過程 374
14.1 目的 374
14.2 行動選擇的不確定性 376
14.3 值迭代 380
14.3.1 目標和報酬 380
14.3.2 為完全能觀測的情況尋找最優(yōu)控制策略 383
14.3.3 計算值函數(shù) 384
14.4 機器人控制的應用 387
14.5 小結 390
14.6 文獻綜述 391
14.7 習題 392
第15章 部分能觀測馬爾可夫決策過程 394
15.1 動機 394
15.2 算例分析 395
15.2.1 建立 395
15.2.2 控制選擇 397
15.2.3 感知 398
15.2.4 預測 402
15.2.5 深度周期和修剪 404
15.3 有限環(huán)境POMDP算法 407
15.4 POMDP的數(shù)學推導 409
15.4.1 置信空間的值迭代 409
15.4.2 值函數(shù)表示法 410
15.4.3 計算值函數(shù) 410
15.5 實際考慮 413
15.6 小結 416
15.7 文獻綜述 417
15.8 習題 419
第16章 近似部分能觀測馬爾可夫決策過程技術 421
16.1 動機 421
16.2 QMDP 422
16.3 AMDP 423
16.3.1 增廣的狀態(tài)空間 423
16.3.2 AMDP算法 424
16.3.3 AMDP的數(shù)學推導 426
16.3.4 移動機器人導航應用 427
16.4 MC-POMDP 430
16.4.1 使用粒子集 430
16.4.2 MC-POMDP算法 431
16.4.3 MC-POMDP的數(shù)學推導 433
16.4.4 實際考慮 434
16.5 小結 435
16.6 文獻綜述 436
16.7 習題 436
第17章 探測 438
17.1 介紹 438
17.2 基本探測算法 439
17.2.1 信息增益 439
17.2.2 貪婪技術 440
17.2.3 蒙特卡羅探測 441
17.2.4 多步技術 442
17.3 主動定位 442
17.4 為獲得占用柵格地圖的探測 447
17.4.1 計算信息增益 447
17.4.2 傳播增益 450
17.4.3 推廣到多機器人系統(tǒng) 452
17.5 SLAM探測 457
17.5.1 SLAM熵分解 457
17.5.2 FastSLAM探測 458
17.5.3 實驗描述 460
17.6 小結 462
17.7 文獻綜述 463
17.8 習題 466
參考文獻 468