成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

干貨:機器人開源操作系統(tǒng)ROS

系統(tǒng) 其他OS
前不久,John 為大家介紹過物聯(lián)網(wǎng)開源操作系統(tǒng),或許大家還記憶猶新。今天,要介紹的是一款機器人領(lǐng)域的開源操作系統(tǒng):ROS。

導(dǎo)讀:前不久,John 為大家介紹過物聯(lián)網(wǎng)開源操作系統(tǒng),或許大家還記憶猶新。今天,要介紹的是一款機器人領(lǐng)域的開源操作系統(tǒng):ROS。

簡介

[[181496]]

ROS,英文全稱 Robot Operating System,即機器人操作系統(tǒng)。它的目標(biāo)是為機器人軟件開發(fā)者的提供了一個靈活的框架,其中包含一些列的工具、庫和約定。同時,ROS還可以為異質(zhì)計算機集群,提供了類似操作系統(tǒng)的中間件。

總結(jié)起來,正如下圖所示:ROS = 架構(gòu) + 工具 + 功能 + 生態(tài)系統(tǒng)。

干貨:機器人開源操作系統(tǒng)ROS

服務(wù)

ROS提供標(biāo)準(zhǔn)的操作系統(tǒng)服務(wù)例如硬件抽象、底層設(shè)備控制、常用功能實現(xiàn)、進(jìn)程間消息傳遞、軟件包管理。ROS基于一種圖狀架構(gòu),從而不同節(jié)點的進(jìn)程能接受,發(fā)布,聚合各種信息(例如傳感,控制,狀態(tài),規(guī)劃等等)。

分層

ROS可以分成兩層:低層是操作系統(tǒng)層(上面有描述),上層則是廣大開發(fā)者貢獻(xiàn)的功能各異的軟件包例如定位繪圖,行動規(guī)劃,感知,模擬等等。

生態(tài)系統(tǒng)

ROS生態(tài)系統(tǒng)的軟件可以分成三組:

  • 獨立于開發(fā)語言和平臺的工具,用于構(gòu)建和發(fā)布基于ROS的軟件。
  • ROS客戶端庫的實現(xiàn)例如 roscpp、rospy、roslisp。
  • 利用一個或者多個ROS客戶端庫,包含相關(guān)應(yīng)用代碼的軟件包。

ROS客戶端庫,主要包括開發(fā)語言例如C++、Python、LISP,由于依賴于大量開源軟件,所以可在類Unix系統(tǒng)上使用。對于這些客戶端庫,Ubuntu Linux 是完全支持的,而其他系統(tǒng)例如Fedora Linux、Mac OS X、 Microsoft Windows 是“實驗性”(不是太完善的)的支持。另外,這些客戶端庫也得到了開發(fā)者社區(qū)的支持。

第三種的軟件包,通常由于開發(fā)者自己開發(fā),使用的功能和應(yīng)用包括:硬件驅(qū)動、機器人模塊、數(shù)據(jù)類型、計劃、感知、即時定位和地圖構(gòu)建,仿真工具以及其他算法。

許可證

所有,獨立于開發(fā)語言的工具和主要客戶端庫(C++,Python,LISP),都在BSD開源授權(quán)協(xié)議下發(fā)布,這些開源軟件可以免費用于商用和研究目的。其他的軟件包例如開發(fā)者自己開發(fā)的,使用其他開源許可授權(quán),例如Apache 2.0、 GPL 、MIT 甚至專利許可。用戶可以自行判斷軟件包,是否具有滿足自己需求的許可證。

分布式和模塊化

ROS的設(shè)計,盡可能體現(xiàn)分布式和模塊化。

用戶可根據(jù)自己的需求,或多或少地定制使用ROS。ROS的模塊化特點,可以讓你自行選擇哪些部分需要ROS,哪些部分可以自己實現(xiàn)。

ROS,也具有分布式的特性,從而也培養(yǎng)了用戶共享軟件包的大型社區(qū)。它使得開發(fā)者在ROS核心系統(tǒng)基礎(chǔ)上,增添許多新功能。

社區(qū)

過去幾年以來,ROS已經(jīng)成為全世界范圍內(nèi),具有大量用戶的大型社區(qū)。以前,很多用戶來自于實驗室,但現(xiàn)在,越來越多的商業(yè)用戶也加入進(jìn)來,特別是在工業(yè)和服務(wù)機器人領(lǐng)域。

ROS 社區(qū)十分活躍,根據(jù)統(tǒng)計,ROS 社區(qū)具有超過1500個電子郵件列表的參與者,3300個用戶合作化開發(fā)維基文檔,5700用戶在社區(qū)進(jìn)行ROS相關(guān)的提問和回答,一共有超過22000條的維基包,每天超過30條。問答網(wǎng)站有超過13000個問題,70%的回答率。

合作化

ROS則致力于在不同的機器人平臺之間,簡化創(chuàng)建機器人軟件任務(wù)的復(fù)雜性。

其實,創(chuàng)建一個健壯、通用的機器人軟件,并不是那么簡單。從機器人的角度講,即使對于人類來講微不足道的問題,也會由于任務(wù)或者環(huán)境的不同,而變得很復(fù)雜。所以,靠單獨的個體、實驗室、機構(gòu)可以自己獨立處理這些任務(wù),是無法勝任的。

所以,ROS就是為了鼓勵協(xié)作化的機器人軟件開發(fā)。ROS,就是為了讓擅長不同技術(shù)領(lǐng)域的開發(fā)小組合作起來,彼此借鑒各自的專長,共同應(yīng)對機器人所需要面對的復(fù)雜任務(wù)。

ROS,為大多數(shù)的機器人項目提供了很多價值,也代表了世界***機器人的合作化的開發(fā)趨勢。ROS其中一個核心價值,就是分享通用的組件。如果你覺得ROS有用,你也可以加入ROS社區(qū)。

核心組件

ROS的核心組件主要分為三部分:通信基礎(chǔ)結(jié)構(gòu)、機器人特定功能庫 、工具。

***,通信基礎(chǔ)結(jié)構(gòu)

ROS,在底層提供消息傳送接口以及進(jìn)程之間的通信,起到了一種中間件的作用。ROS的中間件提供這些功能:

  • 發(fā)布和訂閱匿名消息傳遞
  • 消息記錄和回放
  • 遠(yuǎn)程過程調(diào)用的請求和響應(yīng)
  • 分布式參數(shù)系統(tǒng)

消息傳輸

通信系統(tǒng),一般來說,是實現(xiàn)一個全新機器人系統(tǒng)的首要需求。ROS內(nèi)置了經(jīng)過完善測試的消息系統(tǒng),通過匿名發(fā)布和訂閱機制,管理分布式節(jié)點之間的通信,從而節(jié)省開發(fā)者的開發(fā)時間。

另外,使用消息傳輸系統(tǒng)的還有一個重要優(yōu)勢,就是讓開發(fā)者能夠清楚地實現(xiàn)系統(tǒng)結(jié)點之間的接口,有利于提高封裝性和代碼復(fù)用程度。這些消息接口結(jié)構(gòu),會在消息接口描述語言中定義。

消息記錄和回放

因為發(fā)布/訂閱系統(tǒng)是匿名和異步的,所以數(shù)據(jù)可以被很容易地獲取和回放,并不需要改動任何代碼。

例如,你有一個任務(wù)A,從傳感器中讀取數(shù)據(jù)。你正在開發(fā)任務(wù)B,處理任務(wù)A產(chǎn)生的數(shù)據(jù)。ROS,讓由任務(wù)A發(fā)布的數(shù)據(jù)很容易地記錄到一個文件中,然后過一段時間,從文件中重新發(fā)布這些數(shù)據(jù)。這種消息傳輸抽象機制,讓任務(wù)B無法得知數(shù)據(jù)的來源(來自任務(wù)A還是日志文件)。

這是一個十分強大的設(shè)計模式,可以顯著降低開發(fā)成本、提高系統(tǒng)的靈活性和模塊化程度。

遠(yuǎn)程過程調(diào)用

異步發(fā)布/訂閱消息機制,可以滿足機器大部分的通信需求。但是,某些特殊情況下,你會需要進(jìn)程之間的同步請求/響應(yīng)。ROS 使用“服務(wù)”,提供這種功能。和另外一個功能“主題”類似,數(shù)據(jù)在進(jìn)程之間通過服務(wù)調(diào)用傳輸。服務(wù)調(diào)用在同樣簡單的消息接口描述語言中定義。

分布式參數(shù)系統(tǒng)

ROS中間件,通過參數(shù)服務(wù)器(一種多元、共享的字典,通過網(wǎng)絡(luò)API訪問)為任務(wù)提供分享配置信息的方法。系統(tǒng)讓你可以輕易地改變?nèi)蝿?wù)配置,甚至讓任務(wù)可以改變其他任務(wù)的配置。

第二,機器人庫

除了核心的中間件,ROS還提供通用的機器人庫,功能如下:

  • 機器人標(biāo)準(zhǔn)消息定義
  • 機器人幾何庫
  • 機器人描述語言
  • 可搶占遠(yuǎn)程過程調(diào)用
  • 診斷
  • 姿態(tài)評估
  • 定位
  • 繪圖
  • 導(dǎo)航

標(biāo)準(zhǔn)機器人消息

經(jīng)過社區(qū)多年的討論和開發(fā),最終實現(xiàn)了標(biāo)準(zhǔn)的消息格式,覆蓋了絕大部分的機器人案例。

這些消息定義,有的針對于幾何概念例如:姿勢、變換、向量;有的針對于傳感器例如:攝像頭、慣性測量單元和激光器;有的針對導(dǎo)航數(shù)據(jù)例如:量距、路徑和地圖,以及許多其他概念。

在應(yīng)用中,使用這些標(biāo)準(zhǔn)消息,開發(fā)者可以讓代碼,無縫地和ROS生態(tài)系統(tǒng)的其他部分對接,例如開發(fā)工具或者功能庫。

機器人幾何庫

干貨:機器人開源操作系統(tǒng)ROS

許多機器人項目中的一個通用挑戰(zhàn),就是讓機器人的不同部分相互協(xié)調(diào)。例如,你想聯(lián)合攝像頭的數(shù)據(jù)和雷達(dá)的數(shù)據(jù),你必須知道傳感器位于什么地方,具有共同的參考系,特別是針對那些具有很多活動部件的類人機器人。

在ROS中,我們通過 tf (變換)庫來解決這個問題,它可以持續(xù)追蹤機器人系統(tǒng)每個部件的位置。

tf 庫,首先考慮到了效率,用于管理協(xié)調(diào)機器人的變換數(shù)據(jù),超過100度的自由,并且更新率達(dá)到數(shù)百赫茲。tf 庫可以定義靜態(tài)變換,例如固定于移動基座的攝像頭;還有動態(tài)變換,例如機器人手臂的聯(lián)合。

你可以變換系統(tǒng)中任何兩個坐標(biāo)系的傳感器數(shù)據(jù)。tf 庫可以處理以下的情況例如:信息的生產(chǎn)者和消費者分布于網(wǎng)絡(luò)中不同位置,或者信息更新的速率不同。

機器人描述語言

ROS,還可以解決另外一個通用機器人問題,就是如何以一種機器可以讀懂的方式描述機器人。

ROS提供了一些列工具,進(jìn)行機器人描述和建模,使得它可以被ROS系統(tǒng)其余部分讀懂,這些部分包括:tf、robot_state_publisher、rviz。

ROS中描述機器人的格式是URDF(統(tǒng)一機器人描述格式),你可以使用XML文檔描述機器人的物理屬性,例如肢體長度、輪子大小、傳感器位置和機器人每個部分的視覺外觀。

一旦以這種方式定義,你可以很容易通過使用tf庫,以及模擬器和運動規(guī)劃器,讓機器人***地呈現(xiàn)在三維空間中。

可搶占的遠(yuǎn)程過程調(diào)用

主題(匿名發(fā)布/訂閱)以及服務(wù)(遠(yuǎn)程過程調(diào)用),可以覆蓋機器人中大多數(shù)的通信案例。但是,有時你需要發(fā)起一個全局尋找行為,并且檢測它的進(jìn)展,并且能夠?qū)崿F(xiàn)搶占,完成后還要接到通知。

ROS為這個使用案例,設(shè)計了動作(action)庫。動作庫,和服務(wù)一樣,只是它們還可以報告進(jìn)展,得到最終反饋。它們可以被調(diào)用者搶占。

你可以讓機器人根據(jù)導(dǎo)航到達(dá)指定位置,監(jiān)測它在到達(dá)過程中的進(jìn)展,在途中讓它停止或者重新規(guī)劃路徑,成功或者失敗后得到通知。

動作庫是一個十分強大的概念,它貫穿整個ROS生態(tài)系統(tǒng)。

診斷

干貨:機器人開源操作系統(tǒng)ROS

ROS提供了一種標(biāo)準(zhǔn)的方法,產(chǎn)生、搜集和統(tǒng)計機器人的診斷信息。讓開發(fā)者可以很容易了解機器人的狀態(tài),并且可以決定如何處理出現(xiàn)的問題。

姿態(tài)評估、本地化和導(dǎo)航

干貨:機器人開源操作系統(tǒng)ROS

另外,ROS也提供了一些更加強大功能,可以幫助你啟動你的機器人項目。這些ROS軟件包,可以解決一些基礎(chǔ)問題例如姿勢評估、地圖中定位,構(gòu)建地圖和移動導(dǎo)航。

第三,工具

ROS 其中一個***大的功能就是工具,這些工具支持內(nèi)省、調(diào)試、繪圖,以及系統(tǒng)狀態(tài)可視化。

發(fā)布/訂閱機制,讓你可以自發(fā)地內(nèi)省通過系統(tǒng)的數(shù)據(jù)流,更容易地理解和調(diào)試系統(tǒng)發(fā)生的問題。ROS工具利用這種內(nèi)省功能,以及一些列的圖形化和命令行工具,簡化開發(fā)和調(diào)試。

命令行工具

ROS 可以無圖形化界面的條件下使用。所有的核心功能和內(nèi)省工具,都可以通過超過45種的命令行工具訪問。這些命令可以啟動小組結(jié)點,內(nèi)省主題、服務(wù)和行動,記錄和回放數(shù)據(jù),以及其他許多情況。如果你愿意使用圖形化工具,rviz 和 rqt 則提供了相似的功能。

rviz

干貨:機器人開源操作系統(tǒng)ROS

rivz 可能是***的ROS工具,它提供了通用功能,對于許多傳感器數(shù)據(jù)類型和URDF描述的機器人,進(jìn)行三維視覺化。

rviz 可以可視化處理許多消息類型,例如雷達(dá)掃描、三維點云、攝像頭圖像。它也可以使用tf 庫,按照你選擇的坐標(biāo)系,顯示所有的傳感器數(shù)據(jù),同樣也可以將機器人呈現(xiàn)出來。在同一個應(yīng)用中,視覺化所有的數(shù)據(jù)可以讓開發(fā)者很快看到機器人所看到的東西,從而可以區(qū)分傳感器失調(diào)或者機器人模型失準(zhǔn)引發(fā)的問題。

rqt

rqt,是一個基于QT框架的工具,用于開發(fā)機器人圖形化接口。你可以創(chuàng)建定制接口,組成和配置內(nèi)置rqt插件的擴展庫,用于標(biāo)簽、多畫面和其他布局。你也可以通過編寫自己的rqt插件,你引入新的接口。

干貨:機器人開源操作系統(tǒng)ROS

rqt_graph 插件,提供了ROS系統(tǒng)的內(nèi)省和可視化,展示他們之間的結(jié)點和連接,讓你可以便于調(diào)試和理解運行系統(tǒng)及其組成。

干貨:機器人開源操作系統(tǒng)ROS

rqt_plot 插件,讓你可以監(jiān)測編碼器、電壓或者隨著時間而變化的數(shù)字。rqt_plot插件讓你可以選擇繪圖后端(例如matplotlib、Qwt、 pyqtgraph),以***地滿足需求。

干貨:機器人開源操作系統(tǒng)ROS

rqt_topic 和 rqt_publisher 插件,可用于主題和監(jiān)測。前者,允許你監(jiān)測和內(nèi)省系統(tǒng)內(nèi)發(fā)布的任何主題。后者,讓你可以發(fā)布自己的消息到任何主題,促進(jìn)系統(tǒng)的專門實驗。

干貨:機器人開源操作系統(tǒng)ROS

對于數(shù)據(jù)的記錄和回放,ROS使用“包”格式 。包文件可以通過rqt_bag 插件創(chuàng)建和圖形化訪問。插件可以將數(shù)據(jù)記錄到包,從包中選擇特定的主題回放,可視化包內(nèi)容,包括顯示圖片和繪制隨著時間推移的數(shù)值。

干貨:機器人開源操作系統(tǒng)ROS

結(jié)語

ROS,剛剛度過9歲生日。這款機器人開源操作系統(tǒng)在機器人的感知、物體識別、臉部識別、姿勢識別、運動、運動理解、結(jié)構(gòu)與運動、立體視覺、控制、規(guī)劃等多個領(lǐng)域都有相關(guān)應(yīng)用。

John 衷心地希望這款機器人的介紹對大家有幫助,同時希望聽到來自大家的寶貴意見,一起探討。

責(zé)任編輯:未麗燕 來源: 搜狐科技
相關(guān)推薦

2022-01-16 20:26:50

機器人操作系統(tǒng)ROS

2022-01-20 14:10:07

ROS機器人人工智能

2018-09-29 16:16:43

微軟機器人Windows

2009-03-23 09:35:57

Linux機器人實時操作系統(tǒng)

2021-08-05 10:58:58

Facebook開源Droidlet

2021-07-02 11:59:59

Linux ROSLinux 系統(tǒng)

2020-10-15 15:42:00

人工智能

2018-03-28 09:28:16

CITE機器人智能系統(tǒng)館

2019-09-11 10:23:24

操作系統(tǒng)人工智能機器人

2024-09-02 10:00:00

機器人開源

2013-11-12 10:37:20

開源自動導(dǎo)航藍(lán)牙機器人

2016-02-17 10:13:10

Linux開源機器人

2021-07-22 10:17:55

加密機器人加密貨幣機器人

2022-08-03 08:00:00

機器人硬件開發(fā)

2021-08-19 15:44:20

機器人人工智能機器學(xué)習(xí)

2015-07-28 09:36:11

機器人

2009-06-18 08:00:50

機器人PR2馬拉松長跑

2023-06-03 20:41:26

Discord機器人開源

2023-12-18 19:05:34

2012-03-08 09:42:16

開源軟件Linux
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美日韩亚 | 成人av一区二区三区 | 欧美xxxx日本| 亚洲视频在线免费观看 | 网站黄色在线 | 久草热线| 特a毛片| 国产一区二区观看 | 免费视频一区二区三区在线观看 | 欧洲精品久久久久毛片完整版 | 羞羞视频免费观看入口 | 色视频网站免费 | 国产成人精品一区二区三区四区 | 国产欧美一区二区精品久导航 | 91在线看片 | 欧美成人一区二免费视频软件 | 蜜臀av日日欢夜夜爽一区 | 大学生a级毛片免费视频 | 精品一二三 | 日韩电影免费在线观看中文字幕 | 日本精品一区二区三区视频 | 国产精品日日摸夜夜添夜夜av | 日本精品一区二区三区在线观看视频 | 羞羞视频在线观看 | 丝袜美腿一区二区三区动态图 | 蜜桃一区 | 伊人免费观看视频 | 国产精品久久久久久久7电影 | 欧美影院| 在线视频99 | 免费在线观看av网址 | 日韩午夜| 亚洲成人一区二区 | 久久久一区二区三区四区 | 老外几下就让我高潮了 | 粉嫩国产精品一区二区在线观看 | 精品一区二区久久久久久久网站 | 国产欧美日韩一区二区三区在线 | 精品国产乱码久久久久久牛牛 | 日韩精品在线观看免费 | 欧美一级二级三级 |