天天看點

開放源代碼機器人控制軟體

開放機器人控制軟體(Open RObot COntrol Software,OROCOS)是為了開始開放源代碼機器人控制軟體項目所作的努力。我們開展了廣泛的讨論,涉及的問題有可以重用其它項目的哪些經驗代碼和工具,應該在項目中內建哪些開放标準,還有什麼樣的組織結構最适合這個項目。該項目的目的是按以下要求開發機器人控制軟體,如下所示:

·      在開放源代碼和/或自由軟體的許可下

·      盡量子產品化

·      品質最好(從技術和軟體工程兩種角度)

·      獨立于(但相容)商業機器人生産廠商

·      用于各類機器人裝置和計算機平台

·      為所有程式設計語言本地化

·      以運動學、動力學、計劃、傳感、控制和硬體接口等方面的可配置的軟體元件為特點。

項目的目的不隻是要複制現存的商業機器人控制器或機器人模拟/程式設計軟體包。OROCOS 項目希望開發可共享的庫、獨立元件(有時候被稱為軟體代理程式)和一個可以消除和控制所有分布式機器人系統的可配置的運作時環境。這類項目在以下幾種情況有用處:

·      重用代碼

·      作為一個獨立的子系統使用

·      複制其組織結構

·      從管理一個開放源代碼項目的經驗中學習

·      設計和開發可擴充和可重用的軟體

開放源代碼矩陣庫

下面是滿足上面提到的要求的開放源代碼矩陣庫。我們推薦 Octave,因為它是 GPL 許可的,而且實作了所有需要的功能。

GNU Octave: GNU Octave 是一種進階語言,主要用于數字運算。它提供了一種友善的指令行界面,可以數字化地解決線性和非線性問題,也可以使用一種與 Matlab 基本上相容的語言執行其它數字實驗。通過 Octave 自己的語言編寫的使用者定義函數或使用 C++、C、Fortran 或其它語言編寫的動态載入的子產品,它很容易擴充和定制。

GNU Octave 是免費分發的軟體。您可以重新分發它,或是修改它,但要符合自由軟體基金(Free Software Foundation)頒布的 GNU 通用公共許可(General Public License,GPL)條款。關于 GNU Octave 更詳細的資訊可以在通路 Octave Web 站點時找到(請參閱參考資料)。

GSL(GNU 科學庫) GSL 是為數字運算開發一個現代的廣泛 ANSI C 語言庫正在進行的努力。GNU 科學庫(GNU ScientificLibrary,GSL)收集了數字運算的例程。這些例程由 GSL 小組用 ANSI C 語言從頭編寫,旨在為 C 語言程式員提供一種現代應用程式程式設計接口(Applications Programming Interface,API),同時允許包裝器為很進階的語言編寫。

GSL 是自由軟體。它遵照 GNU 通用公共許可分發。請通路 Red Hat Web 站點(請參閱參考資料)以了解更多關于 GSL 的資訊。

實時核心

實時 Linux(Real-Time Linux,RTLinux) RTLinux(TM)是一個可靠的實時作業系統,處理對時間關鍵的任務,并将 Linux 作為最低優先權執行線程運作。在 RTLinux 中,核心與标準 Linux 共享一個或更多的處理器。這使系統能夠運作執行資料采集的、系統控制和機器人技術的精确計時的應用程式,同時作為标準的 Linux 工作站提供服務。在 ftp.rtlinux.com(請參閱參考資料)Web 站點上可以獲得版本 3.0(最終版本)。

RTLinux.org 是開放源代碼使用者和開發人員社群的非商業 RTLinux 站點。其姐妹站點 RTLinux.com(請參閱參考資料)讨論商業支援和開發。

eCos(嵌入式可配置作業系統): eCos 是一個深度嵌入應用程式的開放源代碼實時作業系統。它符合 Linux 不能達到的嵌入空間需求。在考慮應用程式和服務需求之前,Linux 目前核心最小約 500 千位元組,占用 1.5 MB 記憶體。eCos 開放源代碼項目可以在它的 Web 站點上找到(請參閱參考資料)。

RTEMS(GPL 許可): RTEMS 是 C、C++ 和 Ada95 的開放源代碼實時作業系統和環境。它遵從 GNU 通用公共許可的條款分發。

請通路 RTEMS 站點(請參閱參考資料)以下載下傳和擷取更多關于 RTEMS 的詳細資訊。

實用程式和工具

ROBOOP(一個機器人技術面向對象 C++ 軟體包): 本軟體包是一個關于機器人模拟的面向對象 C++ 軟體包。技術參考和下載下傳在參考資料中提供。

CORBA: 用于嵌入分布式軟體代理的實時通信和對象請求中介程式軟體包。每個獨立的軟體部分通過 IDL(Interface Definition Language,接口定義語言)的方式向 ORB 注冊它本身及其功能。請通路其 Web 站點(請參閱參考資料)以獲得 COBRA 技術資訊、下載下傳和文檔。

TANGO/TACO: 這個軟體對控制多裝置和多工具的機器人系統也許有用。TANGO 是一個基于 COBRA 的面向對象控制系統。裝置服務程式可以用 C++ 或 Java 編寫。TACO 是面向對象的,因為它将所有(實體的和邏輯的)控制系統中的控制點作為分布式環境中的對象來對待。所有行動都以類來實作。新的類可以以一種分級的方式從現存的類建構,這樣可以確定高度的軟體重用。類可以用 C++、用 C(使用一種稱為 C 中的對象的方法)、用 Python 或用 LabView(使用 G 程式設計語言)編寫。

TACO 設計成可移植的,并能夠在許多平台(例如 Linux、Solaris、HP-UX、Windows/NT、Windows/95 和 OS9)上運作。要下載下傳源代碼和其它技術文檔,請通路其 Web 站點(請參閱參考資料)。

控制器

任務控制體系: 任務控制體系(Task Control Architecture,TCA)為移動機器人簡化了任務級控制系統的建立。“任務級别”指的是完成給定的一套目标(任務)的感覺、計劃和實時控制的內建和協調。TCA 提供了一個通用的控制架構,旨在控制多種機器人。TCA 提供了一種進階的獨立于機器的方法,可以在分布式機器之間發送消息(包括在 Lisp 和 C 程序之間)。TCA 提供了控制功能,如任務分解、監控和資源管理,這些對很多移動機器人應用程式來說是很常見的。參考資料一節提供了任務控制體系的技術參考和下載下傳資訊。

EMC(增強的機器控制器): EMC 軟體建立在 NIST 實時控制系統(Real time Control System,RCS)方法的基礎之上,使用 NIST RCS 庫程式設計。RCS 庫使向多種 UNIX 和微軟的平台移植變得容易,它向作業系統資源提供了一種中性的應用程式程式設計接口(application programming interface,API),如共享的記憶體、信号量和計時器。EMC 軟體用 C 和 C++ 編寫,而且已經被移植到 PC Linux、Windows NT 和 Sun 的 Solaris 作業系統上。

Darwin2K: Darwin2K 是一個免費的機器人模拟和自動化設計開放源代碼工具包。它的特性是衆多的模拟功能和一個改良的運算法則,該法則能夠自動地綜合和優化機器人設計,使其符合任務特定的性能目标。

語言

RoboML(機器人标記語言): RoboML 用于與機器人技術相關的資料的标準化表達。其設計的意圖是既支援機器人為主的程序之間和接口程序之間的通信語言,也支援人- 機器人接口代理之間的通信語言,并提供了一種人 -機器人接口代理使用的歸檔資料的格式。

ROSSUM: 一種移動機器人的程式設計和模拟環境。Rossum 項目試圖幫助收集、開發和分發機器人應用程式軟體。Rossum 項目希望将類似的協作擴充到機器人軟體的開發。

XRCL(可擴充機器人控制語言,Extensible Robot Control Language): XRCL(發音為 zircle)是個相對簡單、現代的程式設計語言和環境,設計成讓機器人技術研究人員可以通過共享代碼來共享他們的想法。它是一個開放源代碼項目,受 GNU Copyleft 的保護。

自動化系統内部控制的開放系統體系(Open System Architecture for Controls within Automation Systems,OSACA): OSACA 是一個合作的歐洲項目,旨在增進機器工具和控制系統生産廠商在世界市場中的競争性。項目的主要目标是規定獨立于生産廠商的開放控制系統的系統體系