webots仿真機器人平臺


Webots機器人仿真平臺介紹

轉發請註明原文鏈接:http://blog.csdn.net/chchlh/article/details/18355477 webots

第一部分:Webots的前世今生

 

Webots是Cyberbotics公司出品的便攜式機器人仿真平臺,可運行在windows,Mac和Linux上,內建3D編輯器,可構建3D機器人模型。應用C++或JAVA或者MATLAB編輯機器人程序可模擬機器人的動作。也就是說,它支持多種編程語言,包括C, C++, JAVA, Python, Matlab, VRML97。

    Webots是一個商業產品,最新的版本是7.2.4,目前網上存在的只有6.2.4的破解版,從官網下載的版本剛開始打開的時候是試用版(Free),這個免費版本是個雞肋,它不允許用戶修改機器人的控制器的代碼,就是說,你不能寫自己的控制器,圖1.1可以看出來不同版本的區別。下載之後,從官網註冊一個賬號之後用註冊的賬號在軟件的Preference中的License註冊,可以免費使用30天的PRO版本,或者EDU版本。PRO版本是旗艦版,涵蓋了軟件所有的功能,所以使用的時候推薦使用PRO版本。



圖 1.1

    這個軟件學起來其實很容易,就是一個仿真平臺,並且封裝和提供了各種API函數。這個軟件的學習資料中文版的很少,幾乎沒有,我知道的只有一個“Webots使用介紹.pdf”這個中文教程,但是它其實就是官網的第一個教程的翻譯而已。官網或者軟件本身提供了兩個很好的很強大的英文學習資料,並且以pdf格式和html兩種形式發佈,一個是UserGuide(用戶指南),一個是Reference Manual(參考手冊)。 我推薦在網頁直接看,因爲網頁的目錄做得很好,查找方便,另外,用google瀏覽器還可以直接網頁翻譯,遇到不認識的英文詞句就可以很快捷地理解他們的意思了。

官網:http://www.cyberbotics.com/

用戶指南:http://www.cyberbotics.com/dvd/common/doc/webots/guide/index.html

參考手冊:http://www.cyberbotics.com/dvd/common/doc/webots/reference/

學習建議是:照着官網的用戶指南學習,主要是學習兩個方面,1.Getting Started with Webots,熟悉Weobts平臺的界面;2.Tutorials,學習tutorial1-6一步一步地學會寫創建機器人,編寫控制器代碼。在學習指南的過程中,有任何不懂的地方可以迅速查看參考手冊的內容,對於每一個節點的數據結構,每一個API函數的功能,參數,使用方法,參考手冊都有很詳盡的介紹,有時還有例子說明。等到把指南看完,對Webot這個軟件的使用也就算入門了。

下面我整理一下暑假看的關於Webots的一些重要的內容,其實這些內容都可以在用戶指南和參考手冊中找到的。不過我把自己看的時候的心得體會一起寫下來,而且是獨一無二的中文版介紹,所以還是有很大的參考意義的。

因爲暑假看的都是Webots7.2.4Windows版本的,所以下面的內容都是基於Webots7.2.4Windows版本的,Webots每個版本的變化有多大我不知道,我只知道6.2.4破解版版本和7.2.4版本的最大區別就是6.2.4破解版建立一個水平的地面太難了。很多7.2.4版本的程序不能再6.2.4版本運行的原因就是沒有一個地面,因爲加載不進來,地面這個node兩個版本不一樣,而我沒有找到6.2.4版本的地面要怎麼構建,雖然我嘗試過。(最後還是師兄找到了方法,就是修改6.2.4的一個配置文件,具體哪個我記不住,大家可以自己試試)


第二部分:Webots快速上手

 

1.要求,至少會webots支持的語言的其中一種,編程語言主要是用來控制機器人的動作的。

2.界面

如圖1.2,除了標準的菜單欄,Webots分爲四大板塊,左邊是場景樹(SceneTree),中間是3D窗口,右邊是代碼編輯區(Texteditor),下邊是控制檯(Consol)。

場景樹的作用是創建和編輯機器人及其周圍環境的模型,整個3D仿真環境的每一個物體的屬性都可以在場景樹中調整,包括物體的長寬高,材質,顏色,相對於世界座標系的位置,旋轉角度。

3D窗口和場景樹相輔相成,注意;

鼠標左鍵是改變觀看的視角,右鍵是改變物體的位置,滑輪可以調整畫面的縮放。

SHIFT+鼠標左鍵是移動物體,SHIFT+鼠標右鍵是將物體繞旋轉軸旋轉,SHIFT+鼠標中鍵是調整物體的高度。如下圖:





代碼編輯區就是編寫控制器代碼,在場景樹中把機器人的controller這個屬性改成自己寫的控制器文件,就可以在這個編輯區中修改和控制機器人的運動。每次編輯完代碼,都要先點擊一下保存,然後再點擊runthe simulation去運行。

控制檯和VS控制檯一樣,都是顯示調試時候的參數還有顯示你代碼中的輸出。

圖1.2

3.創建一個簡單的應用

點擊向導(wizard)->新項目目錄(newproject directory),彈出


點擊next,然後彈出


選擇一個存放項目文件的目錄。

再點擊widzard—>new robot controller,先選擇編程語言,然後選擇控制器的名字,這樣,你就在選定的文件夾內新建了一個項目,這個項目有一個你命名的控制器文件,項目的可執行文件時.wbt文件,這個文件相當於vs2010的.sln文件。點擊代碼編輯區的save,然後點擊build。。

接下來導入機器人,爲了關聯這個機器人和控制器程序,我們需要在導入的機器人的controller這個屬性設置爲自己寫的控制器文件名。點擊場景樹的Addnew按鈕,就可以選擇各種各樣webots提供的機器人,包括有aibo,create,達爾文,nao等知名的機器人。

導入機器人之後,我們點擊3D窗口的runthe simulation 按鈕,就開始仿真了,也就是說機器人開始按照控制器代碼運動,點擊stopthe simulation 就可以結束仿真。

第三部分:Webots深入學習

1. 如何給一個物體添加一個力或者力矩,我們先來看userguide是怎麼說的: 

按下ALT+鼠標左鍵並且拖動鼠標,這樣就可以拖動物體了(linux就要同時按下Ctrl+Alt+鼠標左鍵);對於施加力矩,ALT+鼠標右鍵並且拖動鼠標。

2.使用什麼編程語言?

因爲Webots提供的代碼都是基於C或C++語言的,所以如果使用C或C++語言的話可以很方便地瞭解Webots的程序,我學習並使用了Matlab,並把UserGuide中提供的C或C++的代碼用Matlab語言替代。其實Matlab的編程和C或C++語言的區別並不是很大,學習一陣時間,就會發現二者的區別很少,完全可以相互替換的。

在Webots中,Matlab編程和c語言編程的一個重要的區別Matlab不需要寫c必須寫的一個初始化函數:wb_robot_init()和 一個清理函數:wb_robot_cleanup(),從下面C語言的標準初始化程序可以看出。

3.關於ROS

       我對於ROS沒有了解,和Webots的關係也是放一邊沒有研究。

4.如何查找API函數的用法?

下面是一個用C語言實現的“HelloWorld!”程序。

從中可以看到很多Webots的基本規範,包括頭文件,webots提供的API函數如wb_robot_step(32)。現在我不明白wb_robot_step(32)這個API的用法,那麼趕緊去查用戶手冊(ReferenceManual),怎麼查?

Webots提供的API函數有着很好的命名規範,所以如果你看到wb_robot_這樣前綴的API函數,那麼這個函數就跟robot有着一定的關係,如果看到wb_motor這樣前綴的API函數,那麼這個函數就跟motor有着一定的關係,現在,我們在網頁打開用戶指南,點擊Nodesand API Functions,這個地方存放了webots的精華,絕大多數常用的節點和API函數的解釋都可以在這裏查到,接着點擊robots,使用Ctrl+F查找wb_robot_step()這個函數,很快就可以看到:

這麼詳盡的解釋了。

5.如何搭建一個自己的機器人

具體可以看Tutorial6, 或者更難的。


6. 如何控制輪式機器人的行走

輪式機器人都會至少安裝有兩個舵機,通過控制這兩個舵機控制的輪子的旋轉速度和方向,就可以實現前進,後退,向左拐彎,向右拐彎等。比如向左拐彎,可以讓左邊的輪子速度變慢,右邊的輪子速度變快,就可以了。

7. 如何控制雙足機器人的行走

       Webots控制雙足機器人的行走有兩種方式:

(1)直接循環讀取文件。這些文件存放了每一個時間點的關節角序列,機器人的每一個關節角都確定之後,賦給舵機,機器人自然能夠行走。這些文件的關節角序列需要提前測好並寫入文件。

(2)自己計算得到。

(3)這個只有NAO機器人擁有,NAO機器人的生產公司提供了一些API函數調用,在Webots中也集成了這些API函數,所以可以直接調用函數來控制機器人行走。(可以參考Webots給的樣例程序-關於NAO的)

這個模型圖畫出來之後,每一層的節點就十分清楚明白了。構建機器人也就十分簡單了。還有一點很重要的就是,構建機器人的一些組件時,必要的時候可以先簡單地計算一下每一個頂點的相對位置。

 



8.如何學習 Tutorial?

       只需要好好認真地學習前面6個Tutorial,而且這個教程是循序漸進的,它會手把手地叫你從創建第一個仿真開始,教會你學習如何調用機器人,比如輪型機器人的旋轉,雙足機器人的行走,同時可以畫圖,比如繪製機器人雙足運動時候的壓力變化圖。然後如何添加一個物體,修改物體的一些屬性,包括顏色,大小,旋轉角度,如何給一個物體添加紋理,如何組合物體形成一個新的幾何形狀,最後Tutorial6 教我們如何自己設計一個和E-PUCK一模一樣的四輪機器人,並且設計一個控制器,使得機器人可以靠兩個距離傳感器來判斷前面是否有障礙並避開障礙的算法。


9.爲什麼需要Webots仿真平臺?

   機器人大多數都很昂貴,一個良好的仿真平臺可以事先檢測自己算法的優劣而不會輕易損壞機器人。而且webots也提供了和真實機器人的接口,可以用自己的算法檢測實際的機器人。

10. 6.2.4破解版下載?

   其實盜版是不好的,但是中國學生都交不起昂貴的正版費用。但是還是給大家一個下載鏈接:

點擊打開鏈接

密碼是:j94n


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章