終于有人把ROS機器人操作系統(tǒng)講明白了
導(dǎo)讀:機器人是多專業(yè)知識交叉的學(xué)科,通常涉及傳感器、驅(qū)動程序、多機通信、機械結(jié)構(gòu)、算法等,為了更高效地進行機器人的研究和開發(fā),選擇一個通用的開發(fā)框架非常必要,ROS(Robot Operating System,機器人操作系統(tǒng))就是流行的框架之一。


官網(wǎng):www.ros.org 源碼:github.com Wiki:wiki.ros.org 問答:answers.ros.org


src文件夾放置各個功能包和配置功能包的CMake配置文件CMakeLists.txt。這里說明一下,由于ROS中的源碼采用catkin工具進行編譯,而catkin工具又基于CMake技術(shù),所以我們在src源文件空間和各個功能包中都會見到一個CMake配置文件CMakeLists.txt,這個文件起到配置編譯的作用。 build文件夾放置編譯CMake和catkin功能包時產(chǎn)生的緩存、配置、中間文件等。 devel文件夾放置編譯好的可執(zhí)行程序,這些可執(zhí)行程序是不需要安裝就能直接運行的。一旦功能包源碼編譯和測試通過后,可以將這些編譯好的可執(zhí)行文件直接導(dǎo)出與其他開發(fā)人員分享。
CMakeLists.txt是功能包配置文件,用于編譯Cmake功能包編譯時的編譯配置。 package.xml是功能包清單文件,用xml的標(biāo)簽格式標(biāo)記該功能包的各類相關(guān)信息,比如包的名稱、開發(fā)者信息、依賴關(guān)系等,主要是為了使功能包的安裝和分發(fā)更容易。 include/<pkg_name>是功能包頭文件目錄,可以把功能包程序中包含的*.h頭文件放在這里。include目錄之所以還要加一級路徑<pkg_name>是為了更好地區(qū)分自己定義的頭文件和系統(tǒng)標(biāo)準(zhǔn)頭文件,<pkg_name>用實際功能包的名稱替代。不過這個文件夾不是必要項,比如有些程序沒有頭文件。 msg、srv和action這三個文件夾分別用于存放非標(biāo)準(zhǔn)話題消息、服務(wù)消息和動作消息的定義文件。ROS支持用戶自定義消息通信過程中使用的消息類型。這些自定義消息不是必要的,比如程序只使用標(biāo)準(zhǔn)消息類型。 scripts目錄存放Bash、Python等腳本文件,為非必要項。 launch目錄存放節(jié)點的啟動文件,*.launch文件用于啟動一個或多個節(jié)點,在含有多個節(jié)點的大型項目中很有用,為非必要項。 src目錄存放功能包節(jié)點所對應(yīng)的源代碼,一個功能包中可以有多個節(jié)點程序來完成不同的功能,每個節(jié)點程序都可以單獨運行。這里src目錄存放的是這些節(jié)點程序的源代碼,你可以按需創(chuàng)建文件夾和文件來組織源代碼,源代碼可以用C++、Python等編寫。



劃重點??
干貨直達??
評論
圖片
表情
