orocos開源專案簡介

2021-08-31 23:08:44 字數 1206 閱讀 4160

orocos (open robot control software ) 是乙個用來構建實時控制軟體的c++框架,適合開發機械人或者機器的控制軟體。orocos 實時工具包提供了乙個基礎框架,以快速開發可執行在實時作業系統的應用,如rtai和xenomai ,當然它也支援linux 系統。這個計畫的目的是要開發一種通用的,免費的模組化架構,用於機械人控制。orocos計畫用四個c++庫組成:實時工具集,運動學與動力學演算法集,貝葉斯過濾庫 及orocos元件庫。

orocos

元件庫(ocl)提供了一些現成的控制模組。如硬體介面模組,控制模組 及 模組的管理功能元件。

運動與動力學元件(kdl)是乙個c++的函式庫。提供了時實的動力學約束計算。

貝葉斯過濾庫(bfl)提供了一種特別的應用。他是由動態貝葉斯網路理論所推導出的。這個理論可以做遞迴資訊處理及基於貝葉斯規則的演算法評估,例如卡爾曼濾波,粒子濾波演算法等。

此外,現在orocos專案還提供乙個用於**的simulation toolbox

不考慮貝葉斯過濾的情況下,主要包括kdl和rtt兩個namespace,而kdl又包括kdl family和motion兩個module,主要針對機械人本體模型。rtt工具鏈是最核心的,kdl可視作其框架中指令碼檔案的屬性(properties and in script files of the 

orocos

real-time toolkit framework),kdl對此提供了相應的類kdl::kdltoolkitplugin.從程式設計的角度,rtt中的類提供了kdl中變數的type資訊和composer,decomposer方法。

乙個用於底層構建,乙個用於上層程式設計?

ocl包含在rtt中,它提供了與硬體和應用無關的元件,不同task之間的data flow port,也提供了sensor,motor的hardware inte***ce,應該是可以構建類似於abb的虛擬控制器virtual irc5及對應的與硬體關聯的實際控制器。

rtt提供了乙個實時引擎作為應用程式和作業系統之間的適配層,不同的component從軟體的角度看就是不同的task,相互之間存在通訊。rtt除支援c++,還支援script language(優點是易於擴充套件和不需重新編譯)。程式設計時涉及到task之間的程序排程。

如果元件採取分布式,則在network上用corba協議通訊。

開源專案Foq簡介

foq是乙個輕量級 執行緒安全的mocking類庫。使用它來mock抽象類與介面這是我們通常的做法。foq的名字來自moq,如果你使用過moq的話,自然後聯想到它能做什麼。foq主要是為了f 的開發人員做單元測試。可以與fsunit一起使用編寫一些fluent的斷言。甚至與autofixture一起...

OPENMV 開源專案簡介

一 openmv簡介 openmv專案旨在建立低成本,可擴充套件的,基於python的機器視覺模組,並旨在成為 機器視覺的arduino 其目標是讓機器視覺演算法更接近製造商和業餘愛好者,openmv整合諸多 困難且耗時的視覺演算法,為您的創造留下更多時間!openmv cam就像乙個超級強大的ar...

github參與開源專案,fork簡介

當我們參與github上開源專案時,因為開源專案,不是每個人都有push許可權,所以這時候,我們就需要了解乙個操作 fork fork的意思可以理解為複製,把別人github上的 複製到自己github上乙份。joe和其餘貢獻者已經對這個專案做了一些修改,而你將在他們的修改的基礎上,還要再做一些修改...