找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2525|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

深度解析|機(jī)器人自主移動(dòng)的秘密(三)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
hello,every在之前的分享中,我們分別介紹了機(jī)器人繪制地圖的四種表現(xiàn)方式以及在實(shí)現(xiàn)SLAM的過(guò)程中都會(huì)遇到那些坑?
這周,讓我們來(lái)繼續(xù)探討機(jī)器人自主移動(dòng)的秘密,看看SLAM技術(shù)是如何實(shí)現(xiàn)機(jī)器人自主移動(dòng)的!
首先,先看看SLAM與路徑規(guī)劃的關(guān)系!



實(shí)際上,SLAM算法本身只是完成了機(jī)器人的定位和地圖構(gòu)建兩件事情,與我們說(shuō)的導(dǎo)航定位并不是完全等價(jià)的。這里的導(dǎo)航,其實(shí)是SLAM算法做不了的。它在業(yè)內(nèi)叫做運(yùn)動(dòng)規(guī)劃(Motion Planning)。

運(yùn)動(dòng)規(guī)劃是一個(gè)很大的概念,從機(jī)械臂的運(yùn)動(dòng)、到飛行器的飛行,再到這里我們說(shuō)的掃地機(jī)的清掃路徑規(guī)劃,都是運(yùn)動(dòng)規(guī)劃的范疇。

我們先談?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ò)去。


要實(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)軌跡的。

當(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ī)器人怎么繞開眼前的障礙物特別在行。


這兩個(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ì)很差。

為此,也會(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)境中游刃有余。

D*算法的最大優(yōu)點(diǎn)是不需要預(yù)先探明地圖,機(jī)器人可以和人一樣,即使在未知環(huán)境中,也可以展開行動(dòng),隨著機(jī)器人不斷探索,路徑也會(huì)時(shí)刻調(diào)整。


以上是目前大部分移動(dòng)機(jī)器人都需要的路徑規(guī)劃算法,而掃地機(jī)器人作為最早出現(xiàn)在消費(fèi)市場(chǎng)的服務(wù)機(jī)器人之一,它需要的路徑規(guī)劃算法更為復(fù)雜。

一般來(lái)說(shuō),掃地機(jī)需要這么幾個(gè)規(guī)劃能力:貼邊打掃、折返的工字形清掃以及沒電時(shí)候自主充電。單單依靠前面介紹的D*這類算法,無(wú)法滿足這些基礎(chǔ)需要。

掃地機(jī)器人還需要有額外的規(guī)劃算法,比如針對(duì)折返的工字形清掃,有很多問題要處理。掃地機(jī)如何最有效進(jìn)行清掃而不重復(fù)清掃?如何讓掃地機(jī)和人一樣,理解房間、門、走廊這種概念?

針對(duì)這些問題,學(xué)術(shù)界長(zhǎng)久以來(lái)有一個(gè)專門的研究課題,叫做空間覆蓋(space coverage),同時(shí)也提出了非常多的算法和理論。其中,比較有名的是Morse Decompositions,掃地機(jī)通過(guò)它實(shí)現(xiàn)對(duì)空間進(jìn)行劃分,隨后進(jìn)行清掃。


20世紀(jì)70年代,卡內(nèi)基梅隴大學(xué)(CMU)完全依靠超聲波做到了現(xiàn)在我們掃地機(jī)的行為,當(dāng)然造價(jià)也十分昂貴。

前面介紹的從A點(diǎn)到B點(diǎn)移動(dòng)路徑規(guī)劃也是實(shí)現(xiàn)這類更高級(jí)路徑規(guī)劃的基礎(chǔ)。實(shí)際上,要從SLAM實(shí)現(xiàn)到掃地機(jī)器人所需要的這些功能,還是有非常多的工作要做的。

針對(duì)掃地機(jī)器人,我們將其特有的路徑規(guī)劃功能預(yù)先內(nèi)置在SLAMWARE中,方便廠家進(jìn)行整合,不需要進(jìn)行二次開發(fā)。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表