【正文】
色的點(diǎn)。圖十一:在3D環(huán)境中的蜘蛛如圖九所示,黑點(diǎn)是目前站立的點(diǎn),淺色甜甜圈是它目前身體位置的腳可到達(dá)範(fàn)圍,深色甜甜圈是身體位置向前移動(dòng)但不動(dòng)腳可到達(dá)的範(fàn)圍。圖十:甜甜圈中的四個(gè)小黑點(diǎn)是蜘蛛的立足點(diǎn),灰色的軸上的黑圓是蜘蛛頭朝向的方向,左邊是合法的站位,右邊是不合法的,因?yàn)樵谒膫€(gè)象限的站立點(diǎn)有兩個(gè)象限是空的。但是同樣的立足點(diǎn)卻也可以在不同身體位置的甜甜圈範(fàn)圍形成合法的站立狀態(tài)。後續(xù)要面對(duì)的問題就是如何決定下一步的身體位置,也就是要解決行走的問題。圖九:蜘蛛如何利用甜甜圈的可踩範(fàn)圍取得下一步的資訊。接下來就是決定要讓哪些腳站在這些點(diǎn)上,我們依照實(shí)際觀察可得知蜘蛛的行走模式或是在沒有破損的網(wǎng)子上是用左邊第一、三隻腳和右邊第二、四隻腳一起挪動(dòng)之後再讓左邊第二、四隻腳和右邊第一、三隻腳移動(dòng),重複者這樣的2組模式。判斷能否站立的準(zhǔn)則是看網(wǎng)子和代表可站立的甜甜圈範(fàn)圍的交集處,我們以黑點(diǎn)表示合法的站立點(diǎn)。. 蜘蛛腳步與腳步之間的安排首先,我們建設(shè)好網(wǎng)子,如圖八所示。最後產(chǎn)生圖八的結(jié)果。再從八個(gè)候選位置中篩去不合法的位置,從剩下的找出距離終點(diǎn)最近的點(diǎn)移動(dòng)。使用的演算法是best first search。蜘蛛在旋轉(zhuǎn)的時(shí)候是以身體中心為圓心做旋轉(zhuǎn),所以任何角度的甜甜圈中合法立足點(diǎn)只要座標(biāo)值一樣就會(huì)有相同的合法立足點(diǎn),所以在組態(tài)Q中holds的參數(shù)不需要角度也能找到踏腳點(diǎn)。以身體中心為原點(diǎn)畫出的四個(gè)象限,只要讓蜘蛛的其中四隻腳在個(gè)別不同的四個(gè)象限(如圖七),我們就可以確定蜘蛛是在平衡的位置。第一:蜘蛛要能在每一步保持平衡;第二:蜘蛛目前站立的姿勢有合法的下一步。粗線代表的是蜘蛛從起點(diǎn)到終點(diǎn)的路徑。利用之前第三單元的定義,蜘蛛踩在蜘蛛網(wǎng)上的限制與偏好作為設(shè)定障礙物的標(biāo)準(zhǔn),就可以做出運(yùn)動(dòng)規(guī)劃。蜘蛛就能感知獵物離它有多近。蜘蛛的可以踩的範(fàn)圍之前有定義成一個(gè)以身體為圓心畫出的甜甜圈。首先,蜘蛛身體合法的位置建立在是否有合適的踏腳點(diǎn)。(右圖)X代表蜘蛛周圍八個(gè)空位代表蜘蛛下一步可可能選擇的方向。所以算是只做區(qū)域性規(guī)劃。Qg = (X, Y, θ) (global position)區(qū)域規(guī)劃(Local planning)就是注重在腳步之間是如何移動(dòng),如何從目前的站位走到下一個(gè)站立的位置。全域規(guī)劃(Global planning)是不考慮機(jī)器人是如何移動(dòng)腳步,直接將機(jī)器人從起點(diǎn)帶到終點(diǎn)的規(guī)劃,其中要遵守不會(huì)碰到障礙物的原則。整體而言,虛擬蜘蛛網(wǎng)和真實(shí)的蜘蛛網(wǎng)像不像的這個(gè)評(píng)估我們就交給使用者來評(píng)估而非[1]使用基因演算法的概念利用和真實(shí)蜘蛛網(wǎng)的上下左右的絲線總長度來比較評(píng)估來決定是否產(chǎn)生出理想的蜘蛛網(wǎng),不過在我們的控制版提供的數(shù)據(jù)之下可以找出一個(gè)滿意的答案,並且也適合於給蜘蛛機(jī)器人當(dāng)作行走的環(huán)境。補(bǔ)好的網(wǎng)子會(huì)和原先的網(wǎng)子又些不同,在螺旋線的部分就會(huì)在破掉的區(qū)域來回折返由內(nèi)側(cè)補(bǔ)到外圍。我們?cè)诔淌街性黾恿恕奔艟€”的功能,也就是把網(wǎng)子弄得殘缺再讓蜘蛛行走,做法就是藉由點(diǎn)選螺旋絲的線段移除該線段。由於有誤差值的參數(shù)也會(huì)使得每一次的執(zhí)行結(jié)果會(huì)有不同所以要做出和蜘蛛網(wǎng)相似的圖形,其實(shí)還是很難模擬。一般的外框由於周遭地型的關(guān)係蜘蛛搭建的外框不一定會(huì)是完整的圓型,並且這種情形以長型的外框居多,長型的外框會(huì)使得上下兩側(cè)最接近外框的螺旋絲的距離變遠(yuǎn)。第二點(diǎn)來說凹多邊形的形成有可能是因?yàn)橥鈬Ъ艿膹埩Σ痪鴮?dǎo)致的,這樣的網(wǎng)子也比較容易纏在一起。. 特殊狀況及實(shí)做考量關(guān)於設(shè)定外框,本系統(tǒng)不同於過去其他研究的做法是我們需要幫蜘蛛設(shè)定外框,再讓他做輻射線和螺旋線方便模擬蜘蛛網(wǎng),而外框的形狀一定要是凸多邊形。所謂”填滿”的意義是,真實(shí)的蜘蛛不會(huì)讓最外圈的輻射絲到外框之間有太大的空隙,因?yàn)檫@樣浪費(fèi)了蜘蛛網(wǎng)的空間,讓能獵補(bǔ)的空間少了許多,所以他們會(huì)盡量把螺旋線填滿任何一個(gè)可用的角落,如圖五所示。當(dāng)蜘蛛重複做螺旋絲的動(dòng)作做到無法輻射線與外框之間沒有足夠的空間可以放螺旋線的時(shí)候,就開始遵照第三項(xiàng)規(guī)則(Reverse Rule)反向再做第二項(xiàng)規(guī)則(Next Loop Rule)的動(dòng)作。在螺旋線繞完一圈後回到開始蜘蛛絲放置的螺旋線上的,其距離中心點(diǎn)是使用者設(shè)定的參數(shù)「輻射線之間的寬度」加上hub的距離。我們?nèi)〉胔ub的參數(shù)之後就可以放置螺旋線。蜘蛛一般由上向下快速移動(dòng)時(shí)會(huì)將自己的絲線一端黏在現(xiàn)在的位置上,再往下一跳助跑再爬行,所以蜘蛛在蜘蛛網(wǎng)上或其他地形向下跑會(huì)比較快。依照觀察通常蜘蛛網(wǎng)的輻射絲中心會(huì)在比較偏高,原因是因?yàn)橹┲胪ǔT谥行木W(wǎng)(hub)的地方等待獵物,並且他往下衝的速度比往上爬的速度快了許多。另一個(gè)參數(shù)是離中心點(diǎn)多遠(yuǎn)才開始放置螺旋線的距離,這裡我們將中心點(diǎn)到最內(nèi)圈螺旋線之間的部分叫做中心網(wǎng)(hub),這點(diǎn)也是因?yàn)橹┲氲钠枚鴽Q定的。一個(gè)是指定螺旋絲之間的寬度,就是圖五中的粗邊矩形中兩條細(xì)線的間距,螺旋線的寬度也是取決於蜘蛛的腳長,螺旋線之間的寬度絕對(duì)不會(huì)大於蜘蛛橫向的身長。. 螺旋絲規(guī)則(Spiral Line Rules)圖六:當(dāng)外框是狹長型的情況,蜘蛛會(huì)想辦法填滿網(wǎng)子,利用每一個(gè)角落。重複第二項(xiàng)規(guī)則直到?jīng)]有空間放輻射絲或是輻射絲的數(shù)目到達(dá)使用指定的數(shù)目。關(guān)於演算法部分,首先在得到外框和參數(shù)之後,依照第一類規(guī)則(Radii Line Rule)第一項(xiàng)規(guī)則朝特定方向建造的第一條輻射絲(First Radii Line Rule)。另一個(gè)是螺旋線之間容許的角度誤差值;蜘蛛不會(huì)做出非常精確平均分配輻射線之間夾角的蜘蛛網(wǎng),所以需要誤差值來讓網(wǎng)子看起來比較自然。一個(gè)是調(diào)整輻射線的數(shù)目,輻射線的架設(shè)就是取決於蜘蛛的測量與蜘蛛的腳長有關(guān),因?yàn)橹┲霑?huì)用自己的腳像是尺量看看兩條輻射線的距離是否太寬。接下來針對(duì)這兩類規(guī)則中的細(xì)部規(guī)則做更詳細(xì)的敘述。只要使用者輸入的外框是凸多邊型就是合法的,我們就可以使用以上兩類規(guī)則產(chǎn)生虛擬蜘蛛網(wǎng)。圖五中的步驟是由上而下的順序先後建出蜘蛛網(wǎng);規(guī)則可以分成兩類,第一類是建造輻射絲的原則(Radii Line Rules),這一類的規(guī)則在使用者定義完外框之後就可以開始實(shí)做建造輻射絲。蜘蛛可以踩的範(fàn)圍,是假設(shè)蜘蛛的腳有內(nèi)外關(guān)節(jié)的限制,所以向內(nèi)向外可以踏的範(fàn)圍有限制,所以我們把這個(gè)範(fàn)圍畫成一個(gè)甜甜圈型如圖四,以身體中心為圓心的灰色甜甜圈就是蜘蛛可以踩的範(fàn)圍。在這邊的定