在一些三維制圖軟件或仿真軟件里,都有運(yùn)動副的概念,webots的節(jié)點(diǎn)里好像沒有,不要擔(dān)心,在物理插件里可以做到,不過要學(xué)習(xí)有關(guān)于ODE(開源動力學(xué)引擎的)一些內(nèi)容。在webots中,怎樣建立一個鉸鏈呢,我做了一個簡單的例子,小區(qū)門口的那種可以控制的欄桿,效果圖如下。
那每一個桿件,它們的關(guān)系在怎么定義呢?其實(shí)關(guān)系是在ODE中定義的,我們只需要建立一些沒有約束關(guān)系的桿件就行。場景樹貼出在下面,雖然這些節(jié)點(diǎn)是以servo定義的,但是在不需要約束關(guān)系的桿件,例如連桿3,將type改成none,那么,桿件3與gan Robot的關(guān)系就不是servo關(guān)系了,在仿真中可以看成兩個零件。模型就不介紹怎么建立了,后面會給出整個仿真的文件。
建立完模型之后,點(diǎn)擊菜單欄的 向?qū)?—>新物理插件,代碼如下:
1 //來自“博客園,_阿龍clliu” http://www.cnblogs.com/clliu/, 2 #include <ode/ode.h> 3 #include <plugins/physics.h> 4 5 6 7 dBodyID getBody(const char *def) { 8 dBodyID body = dWebotsGetBodyFromDEF(def); 9 if (! body) dWebotsConsolePrintf("Warning: did not find body with DEF name: %s", def); 10 return body; 11 } 12 13 14 void webots_physics_init(dWorldID world, dSpaceID space, dJointGroupID contactJointGroup) { 15 16 &nbs