2010年9月30日 星期四

YARP介紹

YARP全名Yet Another Robot Platform為人型機器人發展平台。主要目標是降低人型機器人發展的困難度。
機器人現行軟體發展的問題是,在硬體變化快速的狀況下,若是軟體一直要隨硬體而修改,將使機器人軟體發展不易。
但硬體的改變是必定會遭遇到,所以必須使高層軟體可以重覆利用。另外和硬體相關的程式必須模組化,以便於新硬體加入。

其實也有許多機器人發展平台,但都是綁語言或是綁硬體。YARP則是使用C++語言為基礎,並採用Open Source的開放架構。
另外在跨平台部分,採用CMake來達成不同作業系統平台上的移轉,例如使用同一個程式碼可以編譯成Linux,Windows及OS X的執行檔。

YARP設計為一層Middleware,所以可以使用其他語言來觸發。可以用一般Shell上發動的語言例如:Java、Perl、Python及TCL等。Matlab則可以利用Java做為界面觸發。

Bee看了一下YARP是如何達成如此多的語言可以連接,其實很簡單,就是將裝置做成檔案夾的方式。這個是Unix常用的模式,所以可以容易去連接。
而為了將同類裝置使用相同高階程式,則必項將不同啟動程式設定在像.ini檔案中,內容以XML做為描述語言。

對Bee來說有幾個地方是有興趣的。最重要的是在應用上,可以做為分散式嵌入式系統的發展平台,可以讓不同的機器統合而完成一個工作。
而且也有幾個模組也是Bee感興趣的,其中包括有CUDA、OpenCV、MPI及馬達控制。
看來是值得去研究的架構。