《數(shù)學建模 機器人避障問題.doc》由會員分享,可在線閱讀,更多相關《數(shù)學建模 機器人避障問題.doc(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、機器人避障問題
機器人避障問題
一、摘要
本文討論了機器人在平面場景中避障行走的問題,已知機器人的行走模式(直線與相切圓弧)以及場景障礙物的分布,計算出到平面各個給定點的最短路徑,以及到A點的最短時間。
文中,首先,考慮到機器人與障礙物之間有10個單位的碰撞距離,故用CAD軟件將平面場景圖進行改進,再用CAD設計可能的最短路徑。接著,對每條具體路徑進行分解,得到三種基本線圓形模型(點圓模型,雙圓異側模型,雙圓同側模型),對這三種模型進行求解,得到各個模型直線長度以及轉彎圓弧圓形角的表達公式。之后,參照具體的行走路徑,構造合適的行走矩陣,用以判斷每段路徑所屬的基本模型。路徑總的長度可用如
2、下公式表達:
最后,通過計算設計的集中可能的最短路徑,我們得到每段的最短路徑的長度分別為:
O——A路段:471.0372(單位);
O——B路段: 853.7001(單位);
O——C路段: (單位);
O——A——B——C——O路段: (單位)。
對于問題二,我們在問題一的基礎上分別利用直線最大速度和轉彎最大速度計算出時間的表達式。為了方便計算,我們將轉彎圓弧的圓心定在P(80,210)(場景中正方形5的左上角),這樣得到時間T與轉彎半徑的函數(shù)關系式:
通過MATLAB編程,畫出其圖像,求解得出:當半徑=11.435時,時間T最小,其大小為94.5649(秒)。
關
3、鍵詞:最短路徑 線圓模型 行走矩陣 MATLAB
二、問題重述
在一個800800的平面場景圖(見附錄一),在原點O(0, 0)點處有一個機器人,它只能在該平面場景范圍內活動。圖中有12個不同形狀的區(qū)域是機器人不能與之發(fā)生碰撞的障礙物,障礙物的數(shù)學描述如下表:
編號
障礙物名稱
左下頂點坐標
其它特性描述
1
正方形
(300, 400)
邊長200
2
圓形
圓心坐標(550, 450),半徑70
3
平行四邊形
(360, 240)
底邊長140,左上頂點坐標(400, 330)
4
三角形
(280, 100)
上頂點坐標(345, 2
4、10),右下頂點坐標(410, 100)
5
正方形
(80, 60)
邊長150
6
三角形
(60, 300)
上頂點坐標(150, 435),右下頂點坐標(235, 300)
7
長方形
(0, 470)
長220,寬60
8
平行四邊形
(150, 600)
底邊長90,左上頂點坐標(180, 680)
9
長方形
(370, 680)
長60,寬120
10
正方形
(540, 600)
邊長130
11
正方形
(640, 520)
邊長80
12
長方形
(500, 140)
長300,寬60
在圖中的平面場景中,
5、障礙物外指定一點為機器人要到達的目標點(要求目標點與障礙物的距離至少超過10個單位)。規(guī)定機器人的行走路徑由直線段和圓弧組成,其中圓弧是機器人轉彎路徑。機器人不能折線轉彎,轉彎路徑由與直線路徑相切的一段圓弧組成,也可以由兩個或多個相切的圓弧路徑組成,但每個圓弧的半徑最小為10個單位。為了不與障礙物發(fā)生碰撞,同時要求機器人行走線路與障礙物間的最近距離為10個單位,否則將發(fā)生碰撞,若碰撞發(fā)生,則機器人無法完成行走。
機器人直線行走的最大速度為 個單位/秒。機器人轉彎時,最大轉彎速度為 ,其中 是轉彎半徑。如果超過該速度,機器人將發(fā)生側翻,無法完成行走。
現(xiàn)需建立機器人從區(qū)域中一點到達另一點的避
6、障最短路徑和最短時間路徑的數(shù)學模型。對場景圖中4個點O(0, 0),A(300, 300),B(100, 700),C(700, 640),具體計算:
(1) 機器人從O(0, 0)出發(fā),O→A、O→B、O→C和O→A→B→C→O的最短路徑。
(2) 機器人從O (0, 0)出發(fā),到達A的最短時間路徑。
并要求給出路徑中每段直線段或圓弧的起點和終點坐標、圓弧的圓心坐標以及機器人行走的總距離和總時間。
三、模型假設
1、假設機器人可看做一個質點,不考慮其實際大??;
2、假設機器人能夠準確的按照設計的路線行走行走,在其行走中不發(fā)生任何突發(fā)事故;
3、機器人以最大速度行駛,在轉彎過程中
7、沒有發(fā)生側翻,速度發(fā)生突變,不考慮加速減速。
四、符號說明
:圓到圓圓心的距離;
:機器人經過的第i個圓弧的圓心角;
:第i段直線多對應的圓心角
:圓的半徑;
:機器人經過的第i段直線的長度;
S:行走路徑的總的長度;
T:機器人行走的總的時間
N:機器人行走經過的總點數(shù)(包括起點終點以及轉彎圓弧的圓心);
A:行走矩陣。
五、模型建立
對于該題建立機器人從區(qū)域中一點到達另一點的避障最短路徑和最短時間路徑的數(shù)學模型的研究,主要是用盡可能短的路徑和時間避開障礙物到達目標點。根據(jù)題目中的要求可知,機器人行走線路與障礙物間的最近距離為10個單位,否則將發(fā)生碰撞,若碰撞
8、發(fā)生,則機器人無法完成行走,故可把各障礙物的邊界擴大10單位。利用CAD軟件制圖可在距每個障礙物的邊緣10個單位處添加外邊框,形成新的屏障,特別注意的是在障礙物頂點處使用圓弧。機器人就可在新屏障外的范圍內隨意活動,不用擔心發(fā)生碰撞,根據(jù)原圖修改后的圖形見下圖1。
C(700, 640)
B(100, 700)
A(300,300)
圖1
機器人行駛路線是由直線段和圓弧組成。機器人從O(0, 0)出發(fā),建立數(shù)學模型求得O→A、O→B、O→C和O→A→B→C→O的最短路徑。現(xiàn)將各個路段的情況進行綜合分析,根據(jù)每個路段所遇到的情況,從起始點到目標點的最短距離應該是直線段與圓弧組成,
9、由已知的數(shù)學知識,兩點之間線段最短,故機器人走的直線越多,路徑越短,也就是說當機器人繞過障礙物的時候,半徑越小,路徑越短,根據(jù)題意,轉彎半徑可按最小半徑10來計算,經過分析,可建立如下三個線圓模型。
模型一:(點圓模型)
該模型主要求解——的路徑長度,該路徑只有一個轉彎,由圖2易知,,C、D均為直線與圓的切點,CD為圓弧,為圓弧對應的圓心角的大小,根據(jù)已積累的知識,圓弧的長度為圓弧對應的圓心角與圓半徑的乘積,即,同時利用余弦定理
,即可求得總距離為:
S=;
其中 =
C
圖2
D
模型二:(雙圓異側模型)
該模型是為了計算——的距離,從
10、起始點到目標點經過圓弧異側拐彎(如圖3),根據(jù)已知點、、、可求得的長度。,AB、CD為兩段圓弧,、為其對應的圓心角,BC與的交點E是這兩條線段的中點,根據(jù)兩個全等三角形以及勾股定理,可求得BC長度。
其中,
E
A
D
C
B
圖3
模型三:(雙圓同側模型)
該模型是為了計算——的距離,從起始點到目標點經過圓弧同側拐彎(如圖4),添加輔助線,連接、,運用幾何知識輕易能夠證明。由圖4易知,可以根據(jù)已知點的坐標求出所需線段的長度,進而求得起始點到目標點的總距離。
其中,
圖4
D
E
F
C
綜合模
11、型:
在實際情況中,機器人所走的路線是以上三種模型的結合。設計好機器人的行走方案,可根據(jù)設計好的方案構建行走矩陣,構建方法如下:
i段為模型1
i段為模型2
i段為模型3
i段為模型1
i段為模型2
i段為模型3
則i段的直線長度為:
其中i=1,2…N-1;
第i段與i+1段之間的轉彎圓弧所對應的的圓心角為:
其中i=1,2…N-2;
i段為模型1
i段為模型2
i段為模型3
機器人行走的總的長度為:
六、模型求解
問題(1):
根據(jù)所建立的數(shù)學模型,用CAD畫出可能的最短路徑,構建每條路
12、線的行走矩陣,通過MATLAB編程計算出每天路線的實際長度,從而得到最短路徑。
1、O——A路段,這是四個路段中最簡單的情況,從O到A經過了一個轉彎,從圖5中易看出有兩種方案,虛線與實線各代表一個方案。
A(300,300)
(80,60)
(0,0)
圖5
利用MATLAB編程求解,計算結果如下:
機器人從O到A的行走路線長度為471.0372;
同理,O從下面繞到目標點A的總的路線長度為498.4259;
通過比較兩種方案的結果易知,機器人在點O從上面繞到目標點A的距離最短,期最短路線長度為471.0372 。
2、O——B路段,經過分析與整理,我們得到四種方案,如
13、圖6所示①②③④,在這四種方案中,三種模型全部都要用到,模型一在O——A路段已詳細說明,模型二就是從起始點到目標點經過的圓弧在所走路徑的異側,而模型三就是從起始點到目標點經過的圓弧在所走路徑的同側,從O——B路段,有多次轉彎,具體見圖6。
B(100,700)
O(0,0)
④
③
②
①
圖6
就①路線而言,機器人經過了五次轉彎,根據(jù)三種模型中的理論公式,需要把各個圓弧與直線長度求得,可利用MATLAB軟件對其進行編程。計算結果如下:
①路線機器人行走的總距離為853.7001;
②路線機器人行走的總距離為877.3841;
③路線機器人行走的總距離為990
14、.1608;
④路線機器人行走的總距離為;
經過比較可得①路線為最短路徑,即機器人在點O從上面繞到目標點B的距離最短,期最短路線長度為853.7001 。
3、O——C路段,經過整理分析,我們得到四種方案,具體見圖7,
O(0,0)
④
③
②
①
C
(700,640)
圖7
每條路線都是由圓弧與直線段,但是該路段與其他路段相比,又有其不同之處,在③路線中有一部分是在兩個不同大小的圓的異側和同側(如圖8,圖9所示)
圖8
A
E
B
就圖8容易看出,
,
圖9
E
B
A
就圖9容易得出,
15、 ,
利用MATLAB軟件對其進行編程。計算結果如下:
①路線機器人行走的總距離為;
②路線機器人行走的總距離為 ;
③路線機器人行走的總距離為;
④路線機器人行走的總距離為;
顯而易見,經過比較可得④路線為最短路徑,即機器人在點O從上面繞到目標點C的距離最短,其最短路線長度為。
4、O——A——B——C——O路段,這一路段需要結合之前求得的最短路徑,當機器人在A、B、C轉彎時,為確定其路徑最短,既使A點處在機器人的轉彎圓弧上,我們設立了如圖11的路徑,并計算出轉彎圓弧的圓心。
A
O
圖10
由圖易算出轉彎圓弧的圓心坐標為:
圖1
16、1
A(300,300)
O(0,0)
C(700, 640)
B(100, 700)
需要注意的是,在C點附近,由于其位置的特殊性,原有的線圓模型不能很好的處理,我們采用兩段相切圓弧的線路。
利用MATLAB軟件對其進行編程。計算結果如下:
機器人行走的總距離為
問題(2)
機器人從O (0, 0)出發(fā),求得到達A的最短時間路徑。通過問題(1)中對各個路段最短路徑的求解,我們可以做出合理假設:機器人轉彎圓弧的圓心在點P(80,210)的位置,而半徑我們設為。由問題(1),可以得到機器人從O點到A的時間為(參照模型一):
其中為長度,為長度,為長度,為,由于圓心
17、固定,其值為固定值。通過MATLAB編程,得到的函數(shù)圖象如下圖所示:
從圖中可以看出,當半徑=11.435時,時間T最小,其大小為94.5649。
七、模型評價與推廣
優(yōu)點:1、該模型設計了三種基本模型,將實際線路進行簡化,從而降低了計算難度;
2、提出行走矩陣的概念,在程序中對不同模型進行判斷,從而簡化了程序,方便了計算,使得程序更具備一般性;
3、最終結果由MATLAB編程計算,計算結果真實可靠。
缺點:1、最短路徑的設計上有一定的主觀性,可能會與實際有所偏差;
2、在計算到A點最短時間時,未考慮機器人加速減速的情況,使得計算值與實際值相比偏大。
3、在計算到A點最
18、短時間時,為了方便計算,將轉彎圓弧的圓心確定在點P(80,210),模型過于簡單粗糙,會與實際情況有所偏差。
八、參考文獻
[1] 丁緒東編著,AutoCAD2007實用教程[M],中國電力出版社,2007。
[2] 曹戈 , 《MATLAB教程及實訓》, 機械工業(yè)出版社 2008年5月1日。
[3] 孫祥,MATLAB 7.0基礎教程,北京:清華大學出版社,2005。
[4] 戴光明.避障路徑規(guī)劃的算法研究[D].華中科技大學,計算機科學與技術學院,2004。
[5]薛定宇,陳陽泉,高等應用數(shù)學的Matlab解.清華大學出版社.2004.183~191。
[6]馮杰,黃力偉,王琴,尹成義,數(shù)學建模原理與案例,科學出版社,2007。
附錄一
場景圖: