機(jī)械社區(qū)

標(biāo)題: 行業(yè)干貨|機(jī)器人如何實(shí)現(xiàn)自主移動(dòng)與路徑規(guī)劃? [打印本頁(yè)]

作者: SLAMTEC思嵐科技    時(shí)間: 2017-6-30 16:03
標(biāo)題: 行業(yè)干貨|機(jī)器人如何實(shí)現(xiàn)自主移動(dòng)與路徑規(guī)劃?
智能服務(wù)機(jī)器人正成為行業(yè)的風(fēng)口浪尖,從清掃機(jī)器人開始,家庭陪伴機(jī)器人、送餐機(jī)器人等陸續(xù)進(jìn)入公眾視線。  q% j! [9 U. z& L0 ]/ H2 }0 l! \

+ y! f- |: {! _
在討論這類機(jī)器人是否能解決實(shí)際問(wèn)題時(shí),自主定位導(dǎo)航技術(shù)作為機(jī)器人智能化的第一步正不斷引起行業(yè)內(nèi)的重視。同時(shí),作為自主定位導(dǎo)航技術(shù)的重要突破口,SLAM 技術(shù)也成為關(guān)注焦點(diǎn)。

  a( G$ m7 ?* Q$ g" C  t8 |
正如圖中所示,機(jī)器人自主定位導(dǎo)航技術(shù)中包括定位、地圖創(chuàng)建與路徑規(guī)劃(運(yùn)動(dòng)控制),而 SLAM 本身只是完成機(jī)器人的定位和地圖創(chuàng)建,二者有所區(qū)別。

* q- Z* p  \$ M) |+ n% t9 u: [* F1 Q
[attach]426634[/attach]

) B8 B+ B) k0 y8 O* O
那么,SLAM 技術(shù)究竟是如何實(shí)現(xiàn)的?它有哪些難點(diǎn)?機(jī)器人如何實(shí)現(xiàn)自主移動(dòng)和路徑規(guī)劃?到底什么樣的掃地機(jī)器人才算智能?

# }/ z1 L( u9 }+ r1 I
這些問(wèn)題,小編將為你一一解答,帶領(lǐng)大家了解機(jī)器人自主移動(dòng)的秘密。

7 ~: n1 G; h2 X0 w5 |
今天,我們先從 SLAM 說(shuō)起。
3 c0 K, A) S" Q- [3 ]1 h! D" H
什么是SLAM技術(shù)?

2 G. J  x9 [8 h# ]( M  Y
SLAM 是同步定位與地圖構(gòu)建 (Simultaneous Localization And Mapping) 的縮寫,最早由 Hugh Durrant-Whyte 和 John J.Leonard 提出。

" Q4 M$ Z: n1 _( n
其實(shí),SLAM 更像是一個(gè)概念而不是一個(gè)算法,它本身包含許多步驟,其中的每一個(gè)步驟均可以使用不同的算法實(shí)現(xiàn)。主要用于解決移動(dòng)機(jī)器人在未知環(huán)境中運(yùn)行時(shí)即時(shí)定位與地圖構(gòu)建的問(wèn)題。

5 i/ W% u9 M4 m- U- t# I
當(dāng)你身處異地,怎么準(zhǔn)確找到想去的地方?在戶外迷路時(shí),怎么找到回家的路?沒(méi)錯(cuò),我們有導(dǎo)航軟件和戶外地圖。
; X" ]7 h! ^# f: D2 ]
和人類繪制地圖一樣,機(jī)器人描述環(huán)境、認(rèn)識(shí)環(huán)境的過(guò)程主要就是依靠地圖。它利用環(huán)境地圖來(lái)描述其當(dāng)前環(huán)境信息,并隨著使用的算法與傳感器差異采用不同的地圖描述形式。

3 A) m% b$ C$ c% h0 ]6 T9 D9 m
四種常見的地圖表示方法是什么?

* U% a7 r. h) j( I
機(jī)器人學(xué)中地圖的表示方法有四種:柵格地圖、特征地圖、直接表征法以及拓?fù)涞貓D
# z; l' }" j4 n" I
柵格地圖
1 g$ Y; g- g5 j
機(jī)器人對(duì)環(huán)境地圖的描述的方式最常見的為柵格地圖 (Grid map) 或者稱為 Occupancy Map。柵格地圖就是把環(huán)境劃分成一系列柵格,其中每一柵格給定一個(gè)可能值,表示該柵格被占據(jù)的概率。
$ |5 r& m  k. ]
[attach]426635[/attach]
- P% O0 R4 M; q+ S. D4 H
這種地圖看起來(lái)和人們所認(rèn)知的地圖沒(méi)什么區(qū)別,它最早由 NASA 的 Alberto Elfes 在 1989 年提出,在火星探測(cè)車上就用到過(guò),其本質(zhì)是一張位圖圖片,但其中每個(gè)「像素」則表示了實(shí)際環(huán)境中存在障礙物的概率分布。
) J* h6 h1 L! @7 V9 ~; s
一般來(lái)說(shuō),采用激光雷達(dá)、深度攝像頭、超聲波傳感器等可以直接測(cè)量距離數(shù)據(jù)的傳感器進(jìn)行 SLAM 時(shí),可以使用該地圖。這種地圖也可以通過(guò)距離測(cè)量傳感器、超聲波(早期)、激光雷達(dá)(現(xiàn)在)繪制出來(lái)。

' s4 b$ t7 a" b* z
特征點(diǎn)地圖
+ a) w: M! o6 W9 d. \
特征點(diǎn)地圖,是用有關(guān)的幾何特征(如點(diǎn)、直線、面)表示環(huán)境,常見于 vSLAM(視覺(jué) SLAM)技術(shù)中。
, A  c5 _% `, s; Y- Y% Y
[attach]426636[/attach]
2 P8 J# b2 a  \4 [" C$ E! V
相比柵格地圖,這種地圖看起來(lái)就不那么直觀了。它一般通過(guò)如 GPS、UWB 以及攝像頭配合稀疏方式的 vSLAM 算法產(chǎn)生,優(yōu)點(diǎn)是相對(duì)數(shù)據(jù)存儲(chǔ)量和運(yùn)算量比較小,多見于最早的 SLAM 算法中。

- M3 G: c/ K( S# R
直接表征法

2 z, R/ g1 l* B# I! W
直接表征法中,省去了特征或柵格表示這一中間環(huán)節(jié),直接用傳感器讀取的數(shù)據(jù)來(lái)構(gòu)造機(jī)器人的位姿空間。

% _3 ^8 I# f& k5 D; [
[attach]426637[/attach]
0 m7 a' r, q; i% k
上圖就是直接記錄了屋子內(nèi)天花板畫面的圖像地圖。這種方法就像衛(wèi)星地圖一樣,直接將傳感器原始數(shù)據(jù)通過(guò)簡(jiǎn)單處理拼接形成地圖,相對(duì)來(lái)說(shuō)更加直觀。

  o" F  p% N/ E$ V4 B
拓?fù)涞貓D
& B! q& |- u& i( W0 j8 j
拓?fù)涞貓D,是一種相對(duì)更加抽象的地圖形式,它把室內(nèi)環(huán)境表示為帶結(jié)點(diǎn)和相關(guān)連接線的拓?fù)浣Y(jié)構(gòu)圖,其中結(jié)點(diǎn)表示環(huán)境中的重要位置點(diǎn)(拐角、門、電梯、樓梯等),邊表示結(jié)點(diǎn)間的連接關(guān)系,如走廊等。這種方法只記錄所在環(huán)境拓?fù)滏溄雨P(guān)系,這類地圖一般是由前幾類地圖通過(guò)相關(guān)算法提取得到。
( t2 K7 E3 X! @: J% R- L; A
比如掃地機(jī)器人要進(jìn)行房間清掃的時(shí)候,就會(huì)建立這樣的拓?fù)涞貓D:
) J/ t+ _$ O7 [$ v) d
[attach]426638[/attach]
小結(jié)
- `. y! w) m' k* K' N# v
在機(jī)器人技術(shù)中,SLAM 的地圖構(gòu)建通常指的是建立與環(huán)境幾何一致的地圖。
1 F7 |, L: q& w' G2 U7 i
一般算法中建立的拓?fù)涞貓D只反映了環(huán)境中的各點(diǎn)連接關(guān)系,并不能構(gòu)建幾何一致的地圖,因此,這些拓?fù)渌惴ú荒鼙挥糜?SLAM。
9 ?, R. n4 D$ O; [7 H* `# S' D
直接表征法類似衛(wèi)星地圖,它是直接使用傳感器(一般是圖像傳感器)構(gòu)建得到。這種方法的信息冗余度最大,對(duì)于數(shù)據(jù)存儲(chǔ)是很大的挑戰(zhàn),同時(shí),機(jī)器人要從中提取出有用的數(shù)據(jù)也要耗費(fèi)一番周折,因此在實(shí)際應(yīng)用中很少使用。

$ z. G( I( {4 A
特征點(diǎn)地圖又是另一個(gè)極端,雖然數(shù)據(jù)量少,但是它往往不能反應(yīng)所在環(huán)境的一些必須的信息,比如環(huán)境中障礙物的位置。vSLAM 技術(shù)中,多采用這種地圖來(lái)解決機(jī)器人定位問(wèn)題。想讓機(jī)器人進(jìn)行自主避障和路徑規(guī)劃,還需要額外配置距離傳感器,如激光雷達(dá)、超聲波來(lái)完成。
$ i6 m# x4 I' F/ D" b( W+ T
柵格地圖,或者 Occupancy Map(占據(jù)地圖)恰好介于其中,一方面它能表示空間環(huán)境中的很多特征,機(jī)器人可以用它來(lái)進(jìn)行路徑規(guī)劃,另一方面,它又不直接記錄傳感器的原始數(shù)據(jù),相對(duì)實(shí)現(xiàn)了空間和時(shí)間消耗的最優(yōu)。因此,柵格地圖是目前機(jī)器人所廣泛應(yīng)用的地圖存儲(chǔ)方式。
+ F  y9 e, D+ H$ ^! t6 i& k* p$ c
思嵐科技的 SLAMWARE 系統(tǒng)內(nèi)部也采用這種地圖方式。
3 w+ a# _" n  a" U  n: g
[attach]426639[/attach]
5 O9 F/ n% m& U' \
當(dāng)你打開手機(jī)中的導(dǎo)航軟件,在選擇前往目的地的最佳路線之前,首先要做的動(dòng)作是什么呢?沒(méi)錯(cuò),就是定位。我們要先知道自己在地圖中的位置,才可以進(jìn)行后續(xù)的路徑規(guī)劃。
. W& a8 B+ h- K& p  [
在機(jī)器人實(shí)時(shí)定位問(wèn)題中,由于通過(guò)機(jī)器人運(yùn)動(dòng)估計(jì)得到的機(jī)器人位置信息通常具有較大的誤差,我們還需要使用測(cè)距單元得到的周圍環(huán)境信息更正機(jī)器人的位置。

; D& X7 q4 K6 i3 i5 y/ d
目前,常見的測(cè)距單元包括激光測(cè)距、超聲波測(cè)距以及圖像測(cè)距三種。其中,憑借激光良好的指向性和高度聚焦性,激光雷達(dá)已經(jīng)成為移動(dòng)機(jī)器人的核心傳感器,同時(shí)它也是目前最可靠、最穩(wěn)定的定位技術(shù)。
  q( A5 ~, K+ P0 A' g" ^
自 1988 年被提出以來(lái),SLAM 的理論研究發(fā)展十分迅速。在實(shí)際應(yīng)用時(shí),除配備激光雷達(dá)外,還需要機(jī)器人具有 IMU(慣性測(cè)量單元)、里程計(jì)來(lái)為激光雷達(dá)提供輔助數(shù)據(jù),這一過(guò)程的運(yùn)算消耗是巨大的,傳統(tǒng)上需要 PC 級(jí)別的處理器,這也成為限制 SLAM 廣泛應(yīng)用的瓶頸之一。

, `( b; \5 F$ P" x+ Q
那么,實(shí)現(xiàn) SLAM 的過(guò)程中,都會(huì)遇到哪些坑呢?

. U( P2 C5 {. x
SLAM 實(shí)現(xiàn)過(guò)程中的難點(diǎn)有哪些?
. r0 ?4 G* @! R" s' s
SLAM 主要解決機(jī)器人的實(shí)時(shí)定位與自動(dòng)建圖問(wèn)題,那么,在實(shí)際應(yīng)用時(shí),SLAM 究竟是如何實(shí)現(xiàn)的呢?在實(shí)現(xiàn)過(guò)程中有哪些難點(diǎn)?

, k! i7 X5 Q) D6 T& Q/ j$ C4 s/ J' R+ V
這是一個(gè)完整的 SLAM 和導(dǎo)航系統(tǒng)的主要架構(gòu)圖:
+ w/ B5 ?  w+ O
[attach]426640[/attach]

) N9 L& J. f" t. s3 a& c( X4 [
其中,SLAM 核心過(guò)程包括 3 個(gè)步驟,第一步稱為預(yù)處理。我們知道,激光雷達(dá)和其他雷達(dá)設(shè)備一樣,某一個(gè)時(shí)刻只能獲取它所在位置的環(huán)境信息。

1 D( m! Y4 j* ^. X- S, D
這就是我們所說(shuō)的點(diǎn)云,它只能反映機(jī)器人所在環(huán)境中的一個(gè)部分。第一步預(yù)處理就是對(duì)激光雷達(dá)原始數(shù)據(jù)進(jìn)行優(yōu)化,剔除一些有問(wèn)題的數(shù)據(jù),或者進(jìn)行濾波。

' _& s9 z' q' J: O
[attach]426641[/attach]
8 y5 P8 T8 R/ e' V! T6 o$ b# \
第二步是匹配,也就是說(shuō)把當(dāng)前這一個(gè)局部環(huán)境的點(diǎn)云數(shù)據(jù)在已經(jīng)建立地圖上尋找到對(duì)應(yīng)的位置,這個(gè)步驟非常關(guān)鍵。
" i: o# W( p  W
這個(gè)是 ICP 的點(diǎn)云匹配算法,用于實(shí)現(xiàn)匹配。說(shuō)這個(gè)過(guò)程關(guān)鍵,就是因?yàn)樗暮脡模苯佑绊懥?SLAM 構(gòu)建地圖的精度。這個(gè)過(guò)程和我們玩拼圖游戲有點(diǎn)類似,就是在已經(jīng)拼好的畫面中找到相似之處,確定新的一個(gè)拼圖該放在哪里。
: d4 @- }% r; n5 ?3 i
在 SLAM 過(guò)程中,需要將激光雷達(dá)當(dāng)前采集的點(diǎn)云(紅色部分)匹配拼接到原有地圖中。

8 E7 B5 Q5 i+ U6 R; S; c: i
[attach]426642[/attach]
. W3 ?2 d: u$ c' }) R
+ v0 ^3 k* d( }& o
如果不進(jìn)行匹配過(guò)程,所構(gòu)建的地圖可能就亂成一團(tuán),變成這樣。

6 T" D  B1 i& [4 e7 _
[attach]426643[/attach]
5 y8 Y+ e# ]/ C6 u+ k5 a9 s
在這個(gè)部分完畢以后,就進(jìn)行第三步,地圖融合,也就是將這一輪來(lái)自激光雷達(dá)的新數(shù)據(jù)拼接到原始地圖當(dāng)中,最終完成地圖的更新。
$ K' O9 [0 T& a4 O
就像這個(gè)圖一樣,這個(gè)過(guò)程是永遠(yuǎn)伴隨 SLAM 過(guò)程的。
1 m! a- o" o3 r; S8 Q
[attach]426644[/attach]
0 Q, T: Z; O1 F% e: j) d# B
數(shù)據(jù)融合和簡(jiǎn)單的貼圖是有很大的差異的。因?yàn)閷?shí)際上傳感器描繪的世界存在一定的誤差,或者正巧在這個(gè)時(shí)間環(huán)境有了變化,例如機(jī)器人旁邊闖入了一只小貓。

* h4 `7 H- f5 N, B$ B  `
因此,實(shí)際要進(jìn)行的過(guò)程會(huì)更加復(fù)雜,需要用很多概率算法,并采用濾波的方式進(jìn)行融合。將上述這個(gè)過(guò)程逐次執(zhí)行,就最終產(chǎn)生了我們看到的柵格地圖。

9 t7 m" {5 U. D& q& a
[attach]426645[/attach]
+ s6 g' S2 Q5 a0 N
這個(gè)過(guò)程聽起來(lái)其實(shí)并不復(fù)雜,但是要處理好有很大難度。這里舉幾個(gè)例子,比如叫做 Loop Closure(回環(huán))問(wèn)題。如果匹配算法不足夠優(yōu)秀,或者環(huán)境中存在很不巧的干擾,當(dāng)機(jī)器人繞著環(huán)境一圈后,就會(huì)發(fā)現(xiàn)原本是應(yīng)該閉合的一個(gè)環(huán)形走廊斷開了。

# }. m8 `0 h- M2 x1 w
比如正常地圖應(yīng)該這樣:

. j4 N, a7 @1 g; r) K0 i
[attach]426646[/attach]

- Q3 N: x5 [/ R- b1 v+ Y
如果處理不好,實(shí)際地圖就成這樣:
) i$ H. d$ x# q
[attach]426647[/attach]

; ~' s( [$ K) p$ B1 P) M( n
對(duì)于環(huán)境比較大的場(chǎng)景,回環(huán)問(wèn)題是不得不面對(duì)的,但現(xiàn)實(shí)總是不完美的,即使是激光雷達(dá)這種高精度傳感器,也難免存在誤差。而回環(huán)問(wèn)題的難點(diǎn)恰恰在于在一開始出現(xiàn)少許誤差的時(shí)候,并不會(huì)被發(fā)覺(jué),直到機(jī)器人繞著環(huán)路一圈,隨著誤差的累加,發(fā)現(xiàn)環(huán)路已經(jīng)無(wú)法閉合時(shí),此時(shí)已經(jīng)釀成大錯(cuò),一般很難回天。
1 |, y+ V1 T6 W3 l- e
當(dāng)然這個(gè)問(wèn)題并不是無(wú)解,一個(gè)好的商用化 SLAM 系統(tǒng),回環(huán)問(wèn)題是否能很好的解決,就成為評(píng)判這個(gè)系統(tǒng)實(shí)力的指標(biāo)了。
5 y0 O1 l2 F) l" d0 L. E
這是前兩天在我們辦公室進(jìn)行的測(cè)試,左邊的視頻是基于開源的 ROS 機(jī)器人操作系統(tǒng)進(jìn)行的地圖構(gòu)建,右邊的是基于 SLAMWARE 構(gòu)建的地圖。

& O" b: e6 j4 k& S

4 P  a! \) `0 W: E

+ h" x! U+ c" ^3 W- _8 _/ ?* B+ e; C8 f% W, |/ b( M8 A# {6 D
當(dāng)機(jī)器人已經(jīng)繞場(chǎng)一周后,ROS 構(gòu)建的地圖出現(xiàn)了中斷,而 SLAMWARE 構(gòu)建的地圖是一個(gè)完美的閉環(huán),它與我們辦公室的設(shè)計(jì)圖完美重合。

& O# H- M' t2 ]; M. i+ S( q
[attach]426649[/attach]

$ G8 a& L* s& m3 e/ G* N' y
除了算法層面的回環(huán)問(wèn)題,SLAM 實(shí)際應(yīng)用中還有很多這種坑,比如走廊問(wèn)題與外界干擾問(wèn)題。

- b4 C# d* f% }/ b
以外界干擾問(wèn)題來(lái)說(shuō),通常,激光雷達(dá)作為機(jī)器人的眼睛,一般是安裝在底盤上的,它能看到的視野很有限。當(dāng)受到外界干擾(人類或者寵物等等)后,機(jī)器人很容易丟失定位精度,無(wú)法正常完成后續(xù)的建圖工作。

) D) r1 j0 m2 m7 T
目前,SLAM 的開源實(shí)現(xiàn)代表多為學(xué)術(shù)界,實(shí)際應(yīng)用有很多 Corner Case 要處理,需要傳感器、系統(tǒng)參數(shù)、其他輔助設(shè)備的聯(lián)合調(diào)優(yōu)。

7 C3 J: P1 h" ?* }
一般來(lái)說(shuō),上述的 SLAM 過(guò)程對(duì)于運(yùn)算消耗是巨大的,雖然并沒(méi)有達(dá)到像訓(xùn)練神經(jīng)網(wǎng)絡(luò)動(dòng)用服務(wù)器集群那種地步,但傳統(tǒng)上需要 PC 級(jí)別的處理器。
0 f+ B( t& U, Y$ l8 |
除配備激光雷達(dá)外,還需要機(jī)器人具有 IMU(慣性測(cè)量單元)、里程計(jì)來(lái)為激光雷達(dá)提供輔助數(shù)據(jù),否則 SLAM 系統(tǒng)也難以得到運(yùn)行?偟膩(lái)說(shuō),SLAM 算法本身是一個(gè)對(duì)于外部系統(tǒng)有著多種依賴的算法,這是一個(gè)切實(shí)的工程問(wèn)題。
; q4 f( U, o6 {% m4 a. B
很多機(jī)器人,比如掃地機(jī)是不可能裝一個(gè) PC 進(jìn)去的,為了讓 SLAM 能在這類設(shè)備里運(yùn)行,除了解決激光雷達(dá)成本外,還要對(duì) SLAM 算法做出很好的優(yōu)化。
! [$ G9 @  m; e/ C8 r$ S4 ?
那么,機(jī)器人利用 SLAM 技術(shù)得到了有效的空間信息后,它是怎樣實(shí)現(xiàn)路徑規(guī)劃的?SLAM 和路徑規(guī)劃之間關(guān)系是怎樣的?

+ \) m. [& `6 f
機(jī)器人如何實(shí)現(xiàn)自主移動(dòng)和路徑規(guī)劃?

9 b/ ]  k: R$ L  D4 t! d
上面我們已經(jīng)知道了 SLAM 與路徑規(guī)劃的關(guān)系。
; `- s0 r! s3 Q$ b4 [0 z* s
實(shí)際上,SLAM 算法本身只是完成了機(jī)器人的定位和地圖構(gòu)建兩件事情,與我們說(shuō)的導(dǎo)航定位并不是完全等價(jià)的。這里的導(dǎo)航,其實(shí)是 SLAM 算法做不了的。它在業(yè)內(nèi)叫做運(yùn)動(dòng)規(guī)劃 (Motion Planning)。

( }) B* W" F* Y# E1 F$ {" W
運(yùn)動(dòng)規(guī)劃是一個(gè)很大的概念,從機(jī)械臂的運(yùn)動(dòng)、到飛行器的飛行,再到這里我們說(shuō)的掃地機(jī)的清掃路徑規(guī)劃,都是運(yùn)動(dòng)規(guī)劃的范疇。
& |+ e3 w( F# r6 }3 }0 a
我們先談?wù)勧槍?duì)掃地機(jī)這類輪式機(jī)器人的運(yùn)動(dòng)規(guī)劃。這里所需的基礎(chǔ)能力就是路徑規(guī)劃,也就是一般在完成 SLAM 后,要進(jìn)行一個(gè)叫做目標(biāo)點(diǎn)導(dǎo)航的能力。通俗的說(shuō),就是規(guī)劃一條從 A 點(diǎn)到 B 點(diǎn)的路徑出來(lái),然后讓機(jī)器人移動(dòng)過(guò)去。

% U( b3 ?5 H8 Q
要實(shí)現(xiàn)這個(gè)過(guò)程,運(yùn)動(dòng)規(guī)劃要實(shí)現(xiàn)至少兩個(gè)層次的模塊,一個(gè)叫做全局規(guī)劃,這個(gè)和我們車載導(dǎo)航儀有一點(diǎn)像,它需要在地圖上預(yù)先規(guī)劃一條線路,也要有當(dāng)前機(jī)器人的位置。這是由我們的 SLAM 系統(tǒng)提供出來(lái)的。行業(yè)內(nèi)一般會(huì)用叫做 A * 的算法來(lái)實(shí)現(xiàn)這個(gè)過(guò)程,它是一種啟發(fā)式的搜索算法,非常優(yōu)秀。它最多的應(yīng)用,是在游戲中,比如像星際爭(zhēng)霸、魔獸爭(zhēng)霸之類的即時(shí)戰(zhàn)略游戲,都是使用這個(gè)算法來(lái)計(jì)算單位的運(yùn)動(dòng)軌跡的。

1 _; J) P$ P2 g2 o
當(dāng)然,僅僅規(guī)劃了路徑還是不夠的,現(xiàn)實(shí)中會(huì)有很多突發(fā)情況,比如正巧有個(gè)小孩子擋道了,就需要調(diào)整原先的路徑。當(dāng)然,有時(shí)候這種調(diào)整并不需要重新計(jì)算一遍全局路徑,機(jī)器人可能稍微繞一個(gè)彎就可以。此時(shí),我們就需要另一個(gè)層次的規(guī)劃模塊,叫做局部規(guī)劃。它可能并不知道機(jī)器人最終要去哪,但是對(duì)于機(jī)器人怎么繞開眼前的障礙物特別在行。

" x* q# y3 S5 J. p% o9 g這兩個(gè)層次的規(guī)劃模塊協(xié)同工作,機(jī)器人就可以很好的實(shí)現(xiàn)從 A 點(diǎn)到 B 點(diǎn)的行動(dòng)了,不過(guò)實(shí)際工作環(huán)境下,上述配置還不夠。比如 A*算法規(guī)劃的路徑是根據(jù)已知地圖,預(yù)先規(guī)劃好的,一旦機(jī)器人前往目的地的過(guò)程中遇到了新的障礙物,就只好完全停下來(lái),等待障礙物離開或者重新規(guī)劃路徑了。如果掃地機(jī)器人買回家,必須先把屋子都走一遍以后才肯掃地,那用戶體驗(yàn)就會(huì)很差。

* i7 O  |$ d) G9 q3 t
為此,也會(huì)有針對(duì)這類算法的改進(jìn),比如 SLAMWARE 內(nèi)我們采用改良的 D * 算法進(jìn)行路徑規(guī)劃,這也是美國(guó)火星探測(cè)器采用的核心尋路算法。這是一種動(dòng)態(tài)啟發(fā)式路徑搜索算法,它讓機(jī)器人在陌生環(huán)境中行動(dòng)自如,在瞬息萬(wàn)變的環(huán)境中游刃有余。
3 S* I! B3 I! _
D * 算法的最大優(yōu)點(diǎn)是不需要預(yù)先探明地圖,機(jī)器人可以和人一樣,即使在未知環(huán)境中,也可以展開行動(dòng),隨著機(jī)器人不斷探索,路徑也會(huì)時(shí)刻調(diào)整。

8 |/ w# ?- ^' C. k% j

, S& K, {! Q- b) N. B, T- T) y
以上是目前大部分移動(dòng)機(jī)器人都需要的路徑規(guī)劃算法,而掃地機(jī)器人作為最早出現(xiàn)在消費(fèi)市場(chǎng)的服務(wù)機(jī)器人之一,它需要的路徑規(guī)劃算法更為復(fù)雜。
3 p; x" O) Z# D# A1 ?4 s% e
一般來(lái)說(shuō),掃地機(jī)需要這么幾個(gè)規(guī)劃能力:貼邊打掃、折返的工字形清掃以及沒(méi)電時(shí)候自主充電。單單依靠前面介紹的 D * 這類算法,無(wú)法滿足這些基礎(chǔ)需要。
9 {( X1 \1 B4 D% {5 B4 g
掃地機(jī)器人還需要有額外的規(guī)劃算法,比如針對(duì)折返的工字形清掃,有很多問(wèn)題要處理。掃地機(jī)如何最有效進(jìn)行清掃而不重復(fù)清掃?如何讓掃地機(jī)和人一樣,理解房間、門、走廊這種概念?
針對(duì)這些問(wèn)題,學(xué)術(shù)界長(zhǎng)久以來(lái)有一個(gè)專門的研究課題,叫做空間覆蓋(space coverage),同時(shí)也提出了非常多的算法和理論。其中,比較有名的是 Morse Decompositions,掃地機(jī)通過(guò)它實(shí)現(xiàn)對(duì)空間進(jìn)行劃分,隨后進(jìn)行清掃。
4 m& |3 N6 P+ O0 v
20 世紀(jì) 70 年代,卡內(nèi)基梅隴大學(xué)(CMU)完全依靠超聲波做到了現(xiàn)在我們掃地機(jī)的行為,當(dāng)然造價(jià)也十分昂貴。

$ P, V4 o$ z- K, n
前面介紹的從 A 點(diǎn)到 B 點(diǎn)移動(dòng)路徑規(guī)劃也是實(shí)現(xiàn)這類更高級(jí)路徑規(guī)劃的基礎(chǔ)。實(shí)際上,要從 SLAM 實(shí)現(xiàn)到掃地機(jī)器人所需要的這些功能,還是有非常多的工作要做的。
, o# p( |; C5 s& t7 y* h: P
& D$ y9 t3 c0 u+ {, u" Y% U
5 H. ]/ E9 H+ C7 q

作者: 未來(lái)第一站    時(shí)間: 2017-6-30 22:24
謝謝分享!
作者: 韓寒11    時(shí)間: 2017-6-30 23:00
家里就有掃地機(jī)器人,很好用的
作者: 天天來(lái)一回    時(shí)間: 2017-7-3 16:22
謝謝分享
作者: simpleplanfx    時(shí)間: 2017-7-4 08:40
干貨,學(xué)習(xí)了
作者: qwchenhao    時(shí)間: 2017-7-4 14:47
樓主是否可以談?wù)勍勇輧x在機(jī)器人導(dǎo)航中的應(yīng)用。。
作者: nangonglyj    時(shí)間: 2017-7-4 16:08
+ b' f* p; o7 V$ M





歡迎光臨 機(jī)械社區(qū) (http://e-learninguniversity.com/) Powered by Discuz! X3.4