5
| 本文作者: 金紅 | 2017-03-23 00:04 | 專題:雷峰網(wǎng)公開課 |
雷鋒網(wǎng)新智造按:運(yùn)動(dòng)規(guī)劃 (Motion Planning) ,有別于軌跡規(guī)劃 (Path Planning)。一般來說,軌跡規(guī)劃用于無人車/無人機(jī)領(lǐng)域,而運(yùn)動(dòng)規(guī)劃主要用于機(jī)械臂,類人機(jī)器人領(lǐng)域。關(guān)于運(yùn)動(dòng)規(guī)劃的具體定義,雷鋒網(wǎng)新智造本期公開課特邀請(qǐng)到上海交通大學(xué)機(jī)械與動(dòng)力工程學(xué)院博士生邱強(qiáng)為我們做詳細(xì)的講解。邱強(qiáng)目前研究方向?yàn)闄C(jī)械臂運(yùn)動(dòng)規(guī)劃,除了講解什么是運(yùn)動(dòng)規(guī)劃,還會(huì)介紹他做的機(jī)器人規(guī)劃實(shí)例。同時(shí),他還會(huì)講解目前關(guān)于運(yùn)動(dòng)規(guī)劃都有哪些前沿研究方向。
嘉賓介紹:

邱強(qiáng),上海交通大學(xué)機(jī)械與動(dòng)力工程學(xué)院博士生,本科畢業(yè)于清華大學(xué)機(jī)械工程系,目前研究方向?yàn)闄C(jī)械臂運(yùn)動(dòng)規(guī)劃。運(yùn)營個(gè)人微信公眾號(hào)Nao (ID: qRobotics),以qqfly(或fly qq)之名撰寫過多篇技術(shù)文章。
公開課完整視頻:
以下內(nèi)容整理自邱強(qiáng)在雷鋒網(wǎng)硬創(chuàng)公開課的分享,由于內(nèi)容有很多針對(duì)圖或視頻的細(xì)節(jié)講解,文中做了刪減,完整內(nèi)容可觀看視頻。關(guān)注雷鋒網(wǎng)旗下微信公眾號(hào)「新智造」,回復(fù)「PPT」可獲取嘉賓完整PPT。

我們先來看這四個(gè)視頻。左上角是機(jī)器人在抓取桌上的東西,這是我們實(shí)驗(yàn)室之前一個(gè)博士師兄的課題,主要就是機(jī)械臂通過軌跡規(guī)劃抓取識(shí)別到的物體而不碰到障礙物。右上角是蛋白質(zhì)折疊過程,使用的是我們之后會(huì)提到的算法去規(guī)劃它空間變化。左下角是《帝國時(shí)代2》的場(chǎng)景,我們?cè)谕孢@類游戲的時(shí)候只需要點(diǎn)擊一個(gè)目標(biāo)點(diǎn),游戲人物就會(huì)自行找到可行的路徑。最后一個(gè)是我們之前做過的一個(gè)機(jī)器人導(dǎo)航項(xiàng)目,通過激光雷達(dá)和算法機(jī)器人可在室內(nèi)找到路徑。從這四個(gè)視頻我們可以從中給運(yùn)動(dòng)規(guī)劃得出一個(gè)定義:
在給定環(huán)境中,指定機(jī)器人起點(diǎn)與終點(diǎn),計(jì)算出連接起點(diǎn)與終點(diǎn),并滿足一定約束條件(如避障)的軌跡。
從數(shù)學(xué)角度上看,移動(dòng)機(jī)器人的路徑規(guī)劃( Path Planning )也屬于運(yùn)動(dòng)規(guī)劃的范疇。但由于問題的維度不同,所以使用的算法也不同,大家習(xí)慣上將兩者區(qū)分開。

社會(huì)老齡化

這是世界銀行發(fā)布的關(guān)于中日兩國國內(nèi)生產(chǎn)總值(GDP)變化曲線圖,小圖是中日兩國的人口結(jié)構(gòu),可以看到2000年日本和中國2015年的人口結(jié)構(gòu)已經(jīng)很接近了,所以未來中國勞動(dòng)力數(shù)量會(huì)減少,我們必須提高平均勞動(dòng)生產(chǎn)力,這樣才能防止GDP的增速減緩。機(jī)器人是可以解決這些問題的。
市場(chǎng)轉(zhuǎn)變

傳統(tǒng)工業(yè)機(jī)器人主要應(yīng)用在汽車行業(yè),而這個(gè)行業(yè)的特點(diǎn)是一個(gè)車型可以生產(chǎn)很多年,同時(shí)每臺(tái)車的利潤也會(huì)相較較高,但是從目前來看機(jī)器人在汽車行業(yè)已經(jīng)基本飽和,所以大家的關(guān)注點(diǎn)開始轉(zhuǎn)向3C(Computer、Communication、ConsumerElectronics)行業(yè)。
3C產(chǎn)品具備這些特點(diǎn):更新周期短、款式種類多、單件利潤低、整體市場(chǎng)大、勞動(dòng)力成本增加、對(duì)自動(dòng)化需要加大。
示教

現(xiàn)在我們工業(yè)機(jī)器人的使用方法通常是示教,即使像右圖采用拖動(dòng)示教這種比較便利的方式,效率還是很低,因?yàn)槊恳慌_(tái)機(jī)器人的示教都需要人參與進(jìn)來,而且示教的路徑?jīng)]辦法應(yīng)對(duì)其他一些環(huán)境的變化,尤其在3C行業(yè)你每次更新一次機(jī)型,我們就必須對(duì)流水線上所有的機(jī)器人重新示教,這樣的效率肯定是不夠高的。
加中間點(diǎn)

當(dāng)然,目前有些機(jī)器人應(yīng)用是加入了機(jī)器視覺等技術(shù),就是在檢測(cè)之后讓機(jī)器人應(yīng)對(duì)一些變化情況。左邊碼垛機(jī)器人就是通過視覺可以抓取東西,但它的路徑是人工指定中間點(diǎn)。右邊是我做過的類似插秧機(jī)器人,原理與前面碼垛機(jī)器人類似。這類機(jī)器人想要在3C行業(yè)被靈活運(yùn)用肯定是不行的,所以如果運(yùn)動(dòng)規(guī)劃研究成熟算法比較穩(wěn)定的話,就可以用高級(jí)編程語言去編程,比如我們的指令讓它抓取零件A然后加工零件B的某一面,這種下達(dá)指令的方式就不需要每一步都示教了。
對(duì)于規(guī)劃器的評(píng)價(jià)標(biāo)準(zhǔn),我們現(xiàn)在有兩個(gè)準(zhǔn)則:
Optimality(最優(yōu)性): 路徑最短、規(guī)劃速度最快等。
Complete(完備性):在有限時(shí)間內(nèi)解決所有有解問題。
然后,我們從最基礎(chǔ)的問題入手,也就是2維環(huán)境中的點(diǎn)狀機(jī)器人(point agent),點(diǎn)狀機(jī)器人是沒有實(shí)體的。接下來介紹下點(diǎn)狀機(jī)器人的路徑規(guī)劃算法都有哪些。
Walk To
直接朝著目標(biāo)走,直到到達(dá)目標(biāo)點(diǎn)為止。
很多 RPG 游戲就采用了這種簡單的算法
最優(yōu)性,但不完備

優(yōu)化算法(蟻群等)
類似最優(yōu)控制
大部分情況下效果不錯(cuò),但復(fù)雜問題很容易陷入局部極值
不完備也不最優(yōu)

人工勢(shì)場(chǎng)
在障礙物周圍建立排斥勢(shì)場(chǎng)
從起點(diǎn)到終點(diǎn)構(gòu)建吸引勢(shì)場(chǎng)
采用梯度下降等方式求解
容易實(shí)現(xiàn)、效果很好
可以與控制結(jié)合
可能陷入局部極值
不完備且不最優(yōu)

圖搜索算法
將問題描述成圖(節(jié)點(diǎn)+邊)
用圖搜索算法解決問題
Dijkstra、A*
在給定的圖中完備且最優(yōu)

可視圖(Visibility Graph)
用封閉多面體描述障礙物
利用障礙物頂點(diǎn)間的連線構(gòu)建一個(gè)圖(graph),之后用圖搜索算法求解
站在某個(gè)頂點(diǎn)上,環(huán)繞四周,把你能看到(無障礙物)的頂點(diǎn)連接起來
完備且最

柵格化(Cell Decomposition)
按一定分辨率將地圖進(jìn)行網(wǎng)格劃分
用四連通或八連通規(guī)則建立網(wǎng)格圖
分辨率完備(Resolution Complete)且最優(yōu)

隨機(jī)路圖法
PRM(Probabilistic Road Maps)
通過隨機(jī)采樣選取不碰撞的點(diǎn)
兩點(diǎn)連接采用簡單的局部規(guī)劃器如 Walk to 算法
將起止點(diǎn)連入路圖
用圖搜索求解
概率完備且不最優(yōu)

快速擴(kuò)展隨機(jī)樹法
RRT(Randomly Exploring Randomized Trees)
基于樹狀結(jié)構(gòu)的搜索算法
概率完備且不最優(yōu)

前面我們講的都是2D點(diǎn)狀機(jī)器人的情況,現(xiàn)在我們想怎么把這些問題推廣到實(shí)際機(jī)器人上。實(shí)際機(jī)器人有兩個(gè)問題,一個(gè)是機(jī)器人不再是一個(gè)點(diǎn),需要將機(jī)器人的體積考慮在內(nèi),另外,機(jī)器人的自由度更高,原本的算法是否都還可用?
C空間(理論基礎(chǔ))
構(gòu)形空間,Configuration Space
用向量描述機(jī)器人的構(gòu)形
在C空間內(nèi),機(jī)器人是一個(gè)點(diǎn)
C 空間拓?fù)湫再|(zhì)與笛卡爾坐標(biāo)系下的情況不同——二自由度機(jī)械臂的C空間是一個(gè)圓環(huán)面
大部分機(jī)構(gòu)(連續(xù)旋轉(zhuǎn)關(guān)節(jié)、平動(dòng)關(guān)節(jié)等)形成的構(gòu)形空間均是微分流形,任一點(diǎn)的鄰域均與歐式空間同態(tài)
微分流形:大部分算法效果與在笛卡爾坐標(biāo)下效果相同
高維度
蟻群等優(yōu)化算法:收斂慢,更多局部極值點(diǎn)
可視圖法:在高維空間中,算法不成立
柵格法:理論上可行;但會(huì)計(jì)算量太大;對(duì)于一個(gè)六自由度機(jī)械臂,我們按照6°分辨率(已經(jīng)是很低的分辨率了)劃分網(wǎng)格,那么將會(huì)產(chǎn)生606 = 4.67 × 1010 個(gè)網(wǎng)格,單是對(duì)每個(gè)網(wǎng)格進(jìn)行碰撞檢測(cè)(如果碰撞檢測(cè)速度為0.1ms),就需要1296小時(shí)。
一般在高于三維的問題上不使用該方法。
人工勢(shì)場(chǎng)
在 C 空間內(nèi)建立勢(shì)場(chǎng)不方便
只對(duì)個(gè)別控制點(diǎn)進(jìn)行計(jì)算,折算到每個(gè)關(guān)節(jié)上
不完備且不最優(yōu),但對(duì)于簡單的問題很實(shí)用

PRM 和 RRT
不需要知道 C 空間的具體情況,只對(duì)隨機(jī)采樣點(diǎn)進(jìn)行碰撞檢測(cè)(判斷是否在 C 空間的可行區(qū)域內(nèi))
兩點(diǎn)之間采用簡單的局部規(guī)劃器(如 Walk to)進(jìn)行連接
PRM:獲得一個(gè)圖,采用圖搜索算法求解
RRT:獲得一個(gè)連接到終點(diǎn)的樹,反向搜索即可
在高維空間內(nèi)可行,概率完備且不最優(yōu)
現(xiàn)狀:主要使用 RRT 和 PRM 等 Sampling-based methods;這些算法計(jì)算的結(jié)果一般需要進(jìn)行后處理(smoothing等)。
RRT 和 PRM 變種
C 空間
隨機(jī)采樣(各種采樣算法 T-RRT)
有效性判斷(如碰撞檢測(cè)算法 AABB、減少碰撞檢測(cè) Lazy-RRT)
局部規(guī)劃器連接(各種連接方法、重新連接 RRT*,PRM*)
…
RRT*
漸進(jìn)最優(yōu)
Informed RRT*
先驗(yàn)知識(shí)——只在sub-problem下采樣

理論學(xué)習(xí)
Coursera: 賓大 Robotics: Computational Motion Planning (簡單編程)
Choset, Howie M. Principles of robot motion: theory, algorithms, and implementation. MIT press, 2005.
經(jīng)典論文+編程實(shí)現(xiàn)經(jīng)典算法。
實(shí)踐
ROS MoveIt!:http://moveit.ros.org/
容易上手+容易修改
理論現(xiàn)狀是,從運(yùn)動(dòng)學(xué)規(guī)劃角度,給定足夠多的時(shí)間一定能夠最優(yōu)且完備地求解到軌跡。從理論的角度而言,這個(gè)問題已經(jīng)解決了。現(xiàn)在研究方向主要在這兩個(gè)方面,探索新問題和做一些實(shí)用化工作。
重規(guī)劃 re-plan
這個(gè)算是蠻實(shí)用的,因?yàn)槊看我?guī)劃完執(zhí)行的過程中會(huì)遇到環(huán)境變化的問題,這就需要在執(zhí)行過程中重新規(guī)劃。重新規(guī)劃的路線與之前的路線是連接的,而不是中間停下來重新走。上面是RSS在2016年的研究,感興趣的可以了解下。
考慮系統(tǒng)動(dòng)力學(xué)
理想狀態(tài)下機(jī)器人在運(yùn)動(dòng)規(guī)劃下直接端一杯水到一個(gè)地方就行了,但實(shí)際情況下這個(gè)過程是有動(dòng)力學(xué)在里面,如果不做任何處理,這個(gè)杯子會(huì)掉。所以,在考慮了動(dòng)力學(xué)之后,重新進(jìn)行運(yùn)動(dòng)規(guī)劃,這時(shí)候杯子才不會(huì)掉。這個(gè)問題還是比較簡單的,因?yàn)槟阒恍枰阉兂梢粋€(gè)約束就好了。
考慮接觸動(dòng)力學(xué)
因?yàn)槲覜]有做這塊東西,所以不太清楚它是怎么運(yùn)作的,但是這個(gè)問題是存在的,因?yàn)樵谝?guī)劃的時(shí)候會(huì)跟環(huán)境接觸,例如這個(gè)機(jī)器人攀爬桿子然后落地,涉及到整個(gè)身體動(dòng)力學(xué)跟你身體運(yùn)動(dòng)的協(xié)調(diào)過程,這個(gè)工作是MIT計(jì)算機(jī)科學(xué)與人工智能實(shí)驗(yàn)室在2014年的實(shí)驗(yàn)。接觸動(dòng)力學(xué)比傳統(tǒng)的單體動(dòng)力學(xué)復(fù)雜很多,因?yàn)槲覀儾恢浪佑|的碰撞摩擦力這些不好建模。
運(yùn)動(dòng)規(guī)劃+任務(wù)規(guī)劃
運(yùn)動(dòng)規(guī)劃是指我給你一個(gè)大任務(wù),你自動(dòng)生成一些小任務(wù)。這是IROS在2016年的一個(gè)工作,它的目標(biāo)是讓機(jī)器人到達(dá)對(duì)面這個(gè)點(diǎn),而它的路徑被障礙物擋住了,這個(gè)時(shí)候把運(yùn)動(dòng)規(guī)劃加進(jìn)來,從更高一個(gè)空間維度去求解這個(gè)問題。第一步,它把這個(gè)桌子往前推,發(fā)現(xiàn)桌子推不動(dòng)的時(shí)候?qū)θ蝿?wù)進(jìn)行重規(guī)劃,然后規(guī)劃到去推這個(gè)桌子,然后發(fā)現(xiàn)執(zhí)行的效果與預(yù)計(jì)的不一樣,所以它又生成新的任務(wù),然后它拉開桌子之后就走到了對(duì)面實(shí)現(xiàn)了工作。這只是一個(gè)很簡單的demo,但實(shí)際上生活中會(huì)遇到很多這樣的問題,比如我想從這個(gè)房間到另一個(gè)房間,而門是關(guān)著的,這個(gè)時(shí)候就需要把門打開。所以說,不是要給機(jī)器人生成很多子任務(wù),而是一個(gè)大任務(wù),未來服務(wù)機(jī)器人想要做好這塊是必須要做的。
另外大部分時(shí)間大家都用在了實(shí)用化上,雖然說只要有足夠時(shí)間它一定能求解出來,但實(shí)際情況下我們不可能給它無限的時(shí)間。另外RRT這些算法生成軌跡很奇怪, 你可以看右邊這個(gè)視頻,只是讓它敲這個(gè)東西它要畫一大圈,所以這也是一個(gè)問題,就是怎么優(yōu)化它的軌跡。所以需要將研究領(lǐng)域好的算法往工業(yè)領(lǐng)域推,目前兩者之間是存在很大缺口的。

軌跡復(fù)用(相對(duì)固定的動(dòng)作)

這個(gè)工作是想辦法把舊的軌跡給用起來,通過人工的方式指定一個(gè)運(yùn)動(dòng)微元,也就是原始軌跡,等到了新的環(huán)境后再進(jìn)行改變。當(dāng)然,這個(gè)爬樓梯的過程,環(huán)境和動(dòng)作基本上都相同,所以可以在這個(gè)微元的基礎(chǔ)上進(jìn)行改變。首先,通過變形的工作拉到現(xiàn)在起始點(diǎn)位置,部分起始點(diǎn)會(huì)重合,然后對(duì)這些新起始點(diǎn)進(jìn)行重復(fù)利用,它會(huì)形成一個(gè)好的軌跡。這個(gè)工作是Hauser et al在2008年發(fā)布的論文。現(xiàn)在存在的問題是運(yùn)動(dòng)微元必須由人工來指定,所以研究方向是由系統(tǒng)自動(dòng)生成運(yùn)動(dòng)微元。
舊軌跡信息(相對(duì)固定的環(huán)境)

這是之前做的一個(gè)內(nèi)容,比較簡單但在相對(duì)固定的環(huán)境比較好用。大概原理就是根據(jù)人工示教的路徑,通過高斯混合模型(GMM)對(duì)可行C空間進(jìn)行建模,之后在這個(gè)GMM-C空間內(nèi)進(jìn)行規(guī)劃。這個(gè)方法有點(diǎn)類似Learning From Demonstration 的工作,但我只用了它們前面一半的步驟,后面一半還是采用采樣的方法。
加約束

這個(gè)是我針對(duì)加工過程做的另一個(gè)工作。我們?cè)诠I(yè)領(lǐng)域用機(jī)器人往往期望的不是整個(gè)機(jī)械臂的動(dòng)作,而只是末端的動(dòng)作。假設(shè)我要拋光一個(gè)面,首先我要對(duì)末端進(jìn)行規(guī)劃,用CAD模型就可以計(jì)算實(shí)現(xiàn);得到路徑后發(fā)給機(jī)器人,之后直接求逆解或者用雅克比迭代過去。當(dāng)然,這種方法大部分時(shí)候夠用,但有時(shí)候也會(huì)遇到奇異點(diǎn)或者碰到障礙物。我就是針對(duì)這個(gè)七軸的機(jī)械臂,利用它的一個(gè)冗余自由度進(jìn)行規(guī)劃。因?yàn)槟┒耸枪潭ǖ能壽E,這個(gè)時(shí)候,只要找到冗余自由度對(duì)應(yīng)的C空間流形,我們就可以在這么一個(gè)低維(2維)流形內(nèi)進(jìn)行很快速的規(guī)劃,實(shí)現(xiàn)末端固定軌跡,且關(guān)節(jié)避障避奇異。
深度強(qiáng)化學(xué)習(xí) DRL

我個(gè)人現(xiàn)在現(xiàn)在最關(guān)注的一塊,目前還沒有實(shí)質(zhì)性的東西出來,在這里就和大家討論下,我覺得這一塊未來會(huì)出來不少的研究成果。
假設(shè)深度學(xué)習(xí)做運(yùn)動(dòng)規(guī)劃,那么它進(jìn)行一次運(yùn)動(dòng)規(guī)劃的時(shí)間就是一次網(wǎng)絡(luò)正向傳播時(shí)間,這個(gè)時(shí)間非常短的,所以只要網(wǎng)絡(luò)訓(xùn)練好后,運(yùn)動(dòng)規(guī)劃需要耗費(fèi)很長時(shí)間的問題就沒有了。目前這塊也有一些這方面的研究,上面左邊圖是用深度學(xué)習(xí)玩游戲,Nature上的一篇論文,效果比人還厲害;右上角是谷歌用深度學(xué)習(xí)來開門;右下角就是AlphaGo下圍棋了。這個(gè)是很有意思的,它也是運(yùn)動(dòng)規(guī)劃和控制的問題,但它是用網(wǎng)絡(luò)來做的映射。
我為什么對(duì)這方面很感興趣呢?首先,CNN已經(jīng)具備強(qiáng)大的環(huán)境理解能力,很容易從觀測(cè)估計(jì)狀態(tài),觀測(cè)是圖片這類,而狀態(tài),如果是物體識(shí)別,就是是什么物體,如果是定位,那就是物體在什么地方。也就是說,在給定信息滿足系統(tǒng)狀態(tài)可觀性的前提下,CNN環(huán)境理解能力是非常強(qiáng)大的。

第二個(gè)就是RL(強(qiáng)化學(xué)習(xí))可以進(jìn)行路徑規(guī)劃,通過 value iteration 等方式建立表格,這個(gè)表格紀(jì)錄的是從狀態(tài)到動(dòng)作的映射。不過運(yùn)動(dòng)規(guī)劃的維度這么高不可能用表格來存,所以可以通過神經(jīng)網(wǎng)來解決這個(gè)映射問題。

Q:運(yùn)動(dòng)規(guī)劃、軌跡規(guī)劃、路徑規(guī)劃的區(qū)別與聯(lián)系?
A:這幾個(gè)概念在國內(nèi)的教材里確實(shí)比較混亂,所以我按照我的理解大概說一下:①運(yùn)動(dòng)規(guī)劃(Motion Planning)就是我這次說的主要內(nèi)容;②路徑規(guī)劃(Path Planning)跟運(yùn)動(dòng)規(guī)劃概念是一樣的,只是我們習(xí)慣上把它放在平面機(jī)器人上;③軌跡規(guī)劃(Trajectory Planning),主要是涉及速度、加速度插值,包括梯形速度曲線等底層的軌跡插值算法。
一般運(yùn)動(dòng)規(guī)劃后的結(jié)果是離散的路徑點(diǎn),也會(huì)需要進(jìn)行軌跡規(guī)劃后發(fā)給機(jī)器人。
Q:運(yùn)動(dòng)規(guī)劃中如何實(shí)現(xiàn)姿態(tài)轉(zhuǎn)接,角速度,角加速度的連續(xù)。
A:首先是姿態(tài)的連續(xù)變化問題:因?yàn)槲覀兪窃贑空間(也就是關(guān)節(jié)空間進(jìn)行的),所以不存在這個(gè)問題;如果是對(duì)無人機(jī)進(jìn)行規(guī)劃(在SE(3)里),那么可以考慮看看四元數(shù)插值的算法。
第二個(gè)是角速度、角加速度連續(xù);這個(gè)有兩種方法,一個(gè)是我只規(guī)劃角度,然后用軌跡規(guī)劃進(jìn)行插值;另一個(gè)是我同時(shí)規(guī)劃速度和加速度(如優(yōu)化算法),直接得到一個(gè)軌跡。
Q:移動(dòng)機(jī)器人(例如AGV)的路徑規(guī)劃有什么推薦的軟件或者平臺(tái)嗎?
A:AGV的路徑規(guī)劃,我這邊做的不多,而且會(huì)根據(jù)你具體做的內(nèi)容而不同(如SLAM、定位、導(dǎo)航等)。就我實(shí)驗(yàn)室來說的話,在ROS下效果就不錯(cuò),可以用gmapping建圖、然后navigation導(dǎo)航。當(dāng)然,如果ROS還是比較適合實(shí)驗(yàn)室,商用的話我就不太了解了。
Q:學(xué)習(xí)機(jī)器人,一定要從運(yùn)動(dòng)學(xué)動(dòng)力學(xué)軌跡規(guī)劃一步一步走過來嘛?
A:因?yàn)闄C(jī)器人涉及的內(nèi)容真的很多,如果是做機(jī)械臂的話,我還是建議把基礎(chǔ)的東西完全弄清楚,包括空間運(yùn)動(dòng)、正逆解、動(dòng)力學(xué)等。因?yàn)檫@些基礎(chǔ)知識(shí)里很多細(xì)節(jié),如果直接跳過,后面會(huì)遇到很多問題。這方面打好基礎(chǔ),后面就會(huì)輕松很多的。
Q:機(jī)械臂逆運(yùn)動(dòng)學(xué)推導(dǎo)和雅可比矩陣求解怎么在Ros上結(jié)合規(guī)劃算法來做出仿真?
A:其實(shí)我們規(guī)劃的過程中需要不斷進(jìn)行運(yùn)動(dòng)學(xué)求解等。當(dāng)然,ROS里面的話,我們可以先不關(guān)心這個(gè)。因?yàn)镽OS里的KDL、ikFast等都可以幫我們做這些工作。當(dāng)然了,由于MoveIt采用的是Plugin的形式,如果是你自己算的運(yùn)動(dòng)學(xué),那可以做成Plugin放進(jìn)去。之后MoveIt的規(guī)劃就是基于你的運(yùn)動(dòng)學(xué)進(jìn)行計(jì)算了。
Q:請(qǐng)問動(dòng)態(tài)環(huán)境下的運(yùn)動(dòng)規(guī)劃有什么研究熱點(diǎn)和方向?
A:這個(gè)有兩點(diǎn),一個(gè)是剛才提到的重規(guī)劃re-plan問題,當(dāng)環(huán)境變化或者任務(wù)變化的時(shí)候能在執(zhí)行的過程中重新規(guī)劃出一個(gè)新的軌跡;另一個(gè)則是在規(guī)劃的過程中考慮動(dòng)態(tài)情況:例如我們對(duì)無人車進(jìn)行規(guī)劃的時(shí)候,就應(yīng)該同時(shí)估計(jì)出周圍人、車的速度和運(yùn)動(dòng)趨勢(shì),之后在此基礎(chǔ)上進(jìn)行規(guī)劃。這樣可以避開運(yùn)動(dòng)的障礙物等。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。