您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 虚拟蜘蛛建网及步行的互动式模拟系统
虛擬蜘蛛建網及步行的互動式模擬系統InteractiveSimulationofWebConstructionandLocomotionforVirtualSpider林翰儂李蔡彥政治大學政治大學北市指南路二段64號北市指南路二段64號s8908@cs.nccu.edu.twli@nccu.edu.twAbstract目前在電腦動畫方面,已有許多模擬生物運動的規劃並且也到達相當成熟技術,像是人類的行走運動規劃;但是對於節肢動物的運動規劃,現在並不多見,大多並不是採用程式自動產生的方式製造節肢動物的運動動畫。本論文研究模擬蜘蛛網的建構及虛擬蜘蛛在蜘蛛網上自動規劃行走運動的模擬程式。此論文的所採用的方法是依據我們定義的蜘蛛網結網規則和指定參數的方式建構蜘蛛網,蜘蛛在網上的步行也是經過搜尋判斷後才得到路徑。本系統建造蜘蛛網的部分已經可以成功的模擬出蜘蛛網的型態,也能夠自動規劃蜘蛛在蜘蛛網上的運動路徑。在實作方面是混合2D與3D的使用者介面,使用者以2D介面操作,以3D的方式呈現結果。1.簡介製作電腦動畫的方式主要有動作擷取(MotionCapture)和取動作關鍵格(key-framing)以及程式自動產生動畫這三種方法。一般製作動畫主要是利用動作擷取和取動作關鍵格這兩個方式產生動畫。動作擷取的特點是利用真人演員的表演動作,讓電腦讀取後產生虛擬演員的動作。其優點是可以得到看起來很自然的動作模組,但是要把動作套到虛擬人物的時候仍然需要做關節間距的調整,而且得到的動作不能適應其他環境或是地型的變化。取動作關鍵格的方法常見於坊間的3D動畫製作軟體,使用者可以將做好的模型依照時間先後,每間隔一段時間調整模型在該時間點要擺放的位置,此動作就是在設定模型的動作關鍵格。之後,讓軟體利用內插法(interpolation)產生關鍵格與關鍵格之間連接的動作。而程式自動產生的動畫可以做到動作擷取美中不足的地方。此方式根據運動原理以程式方式模擬動作,優點是重複性極是用性高。此方法式要解決的問題定義好,設定要遵循的規則,基本上就可以得到需要的動作。而且重複使用性高,但可以花費較少的時間得到不錯的結果。我們的目標在於程式自動模擬蜘蛛網與蜘蛛在蜘蛛網上的行走模式。而動機可以分成兩種,第一是藉由程式模擬蜘蛛的行為。如此,就可以讓一般人藉由虛擬的方式就可以觀察蜘蛛的行為與蜘蛛網的構成,不需到野外捕抓蜘蛛也不會破壞生態。能藉由模擬系統來讓一般人了解蜘蛛結網的行為以及結網的規則和特性;另外使用者可以和虛擬蜘蛛互動,決定蜘蛛在蜘蛛網上行走的終點,藉以觀察蜘蛛在蜘蛛網上的步行達到育教娛樂的效果。第二點是在動畫特效娛樂上的呈圖一:最粗的線條是外框,輻射狀的普通粗線是輻射絲,螺旋狀的細線是螺旋絲。擁有黏性的絲線只有螺旋絲。圖二:蜘蛛網的建造順序是外框-輻射絲-螺旋絲。圖片來源出自[5]。2現。提供出一個基本的架構給想要做出蜘蛛網或是蜘蛛爬行運動的場景或效果,不需再從頭開始,直接利用此程式即可產生出雛型再加以修飾就可以呈現出蜘蛛網的效果及蜘蛛爬行的動畫。為使用者提供基礎,提升動畫製作的效率及便利性。實做的部分,藉由少量的參數得到變化多端的蜘蛛網以及模擬蜘蛛的行走運動,所使用的方法是利用程式自動產生蜘蛛網與規劃蜘蛛在蜘蛛網上行走的路徑,再利用抓取動作關鍵格用內插法產生腳步之間的動作。本論文所描述之系統的目標有兩個;第一點是藉由使用者指定蜘蛛網的外框讓程式自動產生虛擬蜘蛛網的架構。圖一是擷取自我們的程式自動產生的結果,其中最粗的線段代表的就是外框,輻射絲和螺旋絲的部分就由程式依據給定的規則,自動產生。第二點是模擬蜘蛛在蜘蛛網上的行走運動規劃,其行走的環境也就是之前第一點產生的虛擬蜘蛛網。在第二單元會簡單介紹過去相關研究,其中包括多腳機器人和模擬蜘蛛網的部分;第三單元會提到關於蜘蛛網的建構規則以及虛擬蜘蛛機器人的身體構造定義;第四、五單元會探討蜘蛛網建構以及蜘蛛步行產生的演算法,第六單元討論實做方法及實驗結果,第七單元是未來發展與結論。2.相關研究關於蜘蛛網的模擬已經有人[1]作出蜘蛛結網歸納出一般性的規則,但是它所用的方法是先給予一些建造網子的規則以及一些變數,再利用基因演算法(GeneticAlgorithm)和評估蜘蛛網的真似程度的評估程式來調整衍生出的蜘蛛網。而我們的目標也以他們歸納出來的蜘蛛網架構為主要參考原則來建立蜘蛛網。但是我們不同於[1]的地方,在於我們的蜘蛛網產生出來之後必須成為蜘蛛機器人行走的環境。他們的結果是最終產生的蜘蛛網要用來和真實世界的蜘蛛網做比較,其目標在於蜘蛛網的擬真程度。至於蜘蛛或多腳機器人步行的模擬目前已經有相當多的研究成果[2,3,4,8],但絕大多數的研究目標都是把焦點放在行走於平面或崎嶇的環境上,目前尚未有人研究蜘蛛在蜘蛛網上行走的模擬;並且,不論在蜘蛛腳關節的自由度上或是腳的數目上以及行走的步伐模式,都不是在模擬真正蜘蛛的八隻腳構造,最常見到的是四隻腳以及六隻腳的蜘蛛機器人(spiderrobot)。在互動的層面上,除了虛擬蜘蛛網可以由使用者給定外框後自動產生蜘蛛網,也可以藉由參數控制板上的滑桿調整蜘蛛網的屬性。在與蜘蛛機器人的互動上是在於使用者可以利用放置獵物促使蜘蛛機器人從現在位置走向獵物所在地。這一點與[10]提過的三層自主式機器人溝通的中階溝通也就是指定終點令蜘蛛自動感測週遭環境再自動找出路徑與步行的規劃,都是通知機器人要移動到哪個地方的工作目標導向的命令。在虛擬生物的方面來說,分成模擬現實世界存在的生物與完全虛構的生物這兩種。在模擬現實世界的方面來說有[11]模擬真實魚的運動。其他常見的模擬生物也有像是[10]模擬狗與人類的互動。而我們論文所提出的模擬蜘蛛也是屬於模擬真實生物的範疇之中。在虛構生物的方面,有[12]所提出的利用基因演算法(geneticalgorithm)從簡單的肢節構造繁衍出複雜型體的生物與該生物的運動行為,像是跑、跳和游泳。以及[13]給定虛擬生物一些常識讓牠們在環境中做出合於常識判斷的行為。這些也都是相當有趣也值得探討的議題。3.問題定義3.1.環境定義蜘蛛網分成立體網和平面網,立體網像是比較著名的黑寡婦,就是利用類似垂簾的網子捕捉獵物,甚至也有地洞型的陷阱網。這些構造複雜的網可以相當有效率的捕捉到獵物,不過構造比較簡單的平面網除了有花費的絲線量比較少的優點之外他的捕捉獵物的功能也不遜於立體網的效果。平面網又有分成圓形網及不規則型的網子,不規則的網子結網規則不容易歸納出來,不同的品種也有其不同的規則,就算是同種的蜘蛛也可能會因為壓力、天氣、溼度等變因影響網子的結構。我們著重的目標是針對平面圓網型的蜘蛛網進行模擬。首先我們先介紹蜘蛛網的特性。就外觀而言;它主要分成三個部分,外框、輻射絲、螺旋絲。外框幾乎都是由凸多邊形組成的內部則有輻射絲與螺旋絲如圖一。在模擬蜘蛛網之前我們要先了解真正的蜘蛛是如何建造網子。不論在國外或國內學界都有一種通用的程序來描述一隻織平面圓網的蜘蛛,如圖二。建造網子的順序是先建構出外框(圖二步驟A-C)再以此為支架架設輻射線(radiiline)(圖二步驟D-I),這時就可以開始製造輻射線了。值得觀察的一點是,有些品種的蜘蛛在建完輻射線之後會先架起鷹架再建螺旋線。所謂鷹架指的是蜘蛛會由內向外大略織出間距相當寬且不愈黏性的輻射絲,之後再由外而內織間距較小且具黏性的輻射絲。依我們的推測有可能是因為蜘蛛有偏好走線與線之間的交叉點的結果,因為這樣的走法比較穩固,舖出來的絲線也可以比較精準整齊。這邊由於牽涉到蜘蛛的行走偏好,所以在下一個小節會有更詳盡的解釋。在我們這個研究中會跳過這個搭鷹架的步驟,直接搭建輻射絲,因為這個行為只是蜘蛛自己為了建出整齊的絲線而做的行為,也有相當多的蜘蛛也跳過了這個步驟。附帶一提,在SamuelZschokke3先生的網頁中[5]有錄下花園十字蛛(Araneusdi-adematus)整個結網過程的影片,我們也有參考這個影片所呈現的現象,並且藉由這個影片做為定義蜘蛛網規則的參考根據。因此我們所模擬的蜘蛛網除了根據[1]的原則之外,也有參考生物學上的定義而組成現在的虛擬蜘蛛網。在稍後演算法的部分會詳盡的說明如何產生出蜘蛛網的過程。3.2.蜘蛛構造定義現在我們知道了有螺旋蜘蛛絲是有黏性的,我們就可以大致決定蜘蛛可行走的區域就是輻射絲。不過值得注意的一點,真實世界的蜘蛛的腳是不會被自己的絲黏到的,因為它們的腳底有特殊的油脂並且接觸面積也小。不過他們還是比較不偏好走螺旋線,因為會減低黏絲的黏度,也會減少能困住獵物的時間。並且在觀察實際蜘蛛爬行時我們發現到蜘蛛在已搭建完成的網子上,對於螺旋線和輻射線上的交點也有者相當高的偏好。這種現象的原因有可能是源自於結網的蜘蛛因為在網上移動最主要的感官是觸覺以及本體感覺來預測腳的落點,由於結網蜘蛛的視覺相當弱只能感測光線而非像人類一樣可以利用視覺的判斷,所以大致上牠們會有腳向前伸再往後勾線類似摸索的一個動作,這樣的結果也就會很自然的讓腳站在交點上。所以我們在虛擬蜘蛛如何選擇落腳點的偏好也有提高這一方面的喜好程度。真實的蜘蛛有八隻腳,每隻腳各有七個關節。這在模擬上有相當大的困難由於每個關節都要有個別的自由度和關節彎曲度的限制,單單一隻腳的計算複雜度及各個關節點的位置判斷就非常複雜,所以我們既要簡化腳的關節但又要兼顧真實性,做法就是將彎曲度較不顯著的關節和其他關節簡化並使得簡化過的那一段腳有較大的自由度以模擬原本的腳可以踩到的範圍。所以目前在這裡定義出的虛擬蜘蛛的身體結構有八隻腳,每隻腳有各分有上下兩段,也就是兩個自由度兩個關節。事實上,我們可以用肉眼可以看出蜘蛛的腳分為三段,但是我們可以用兩段來模擬三節的腳,也可以達到相同的效果。每隻腳我們設定相同固定的長度,並且每隻腳都是以身體中心為原點。關於身體的部分,真實的蜘蛛身體分為兩段頭胸部和腹部,腳都分布在頭胸部的部分。在這邊的定義則是簡化為一個球體並有自己的座標以及旋轉的角度,這三個元素加起來就是身體的結構(configuration),如圖三所示。身體後方的橢圓只是為了外觀上的完整而加上的,不具特別的意義。蜘蛛可以踩的範圍,是假設蜘蛛的腳有內外關節的限制,所以向內向外可以踏的範圍有限制,所以我們把這個範圍畫成一個甜甜圈型如圖四,以身體中心為圓心的灰色甜甜圈就是蜘蛛可以踩的範圍。4.虛擬蜘蛛網的建造規則我們依據自然界的原則(如圖五)來建造蜘蛛網。圖五中的步驟是由上而下的順序先後建出蜘蛛網;規則可以分成兩類,第一類是建造輻射絲的原則(RadiiLineRules),這一類的規則在使用者定義完外框之後就可以開始實做建造輻射絲。第二類螺旋絲建造原則(SpiralLineRules)是做完第一類的規則之後才能實做螺旋絲,完成以上兩類規則就可以製出蜘蛛網。只要使用者輸入的外框是凸多邊型就是合法的,我們就可以使用以上兩類規則產生虛擬蜘蛛網。除了給定外框外,我們還需要指定四個參數來產生蜘蛛網,關於這四個參數請詳見下節。接下來針對這兩類規則中的細部規則做更詳細的敘述。4.1.輻射絲規則(RadiiLineRules)我們先接受使用者傳入的參數中其中與輻射絲的建構有關的兩個。一個是調整輻射線的數目,輻射線的架設就是取決於蜘蛛的測量與蜘蛛的腳長有關,因為蜘蛛會用自己的腳像是尺量看看兩條輻射線的距離是否太寬。如果太寬的話再多加一條輻射絲,所以簡單的說腳越短的蜘蛛在相同面積的網子上做出的輻射線會越多。另一個是螺旋線之間容許的角度誤差值;蜘蛛不會做出非常精確平均分配輻射線之間夾角的蜘蛛網,所以需要誤差值來讓網子看起來比較自然。這問題其實並沒有確切的數據可以告訴我們,就算是同品種的蜘蛛也會因為不同的個體依照不同的習慣去做出不同的網子,所以這方面算是蜘蛛本身的圖四:蜘蛛可以踩的範圍。圖三:蜘蛛的正面圖與俯視圖。4偏好。關於演算法部分,首先在得到外框和參數之後,依照第一類規則(RadiiLineRule)第一項規則朝特定方向建造的第一條輻射絲(FirstRadiiLineRule)。再依據第二項規則(NextR
本文标题:虚拟蜘蛛建网及步行的互动式模拟系统
链接地址:https://www.777doc.com/doc-31389 .html