機器人操作系統ROS淺析

      網友投稿 978 2022-05-30

      文章目錄

      一、ROS簡介

      二、學習路徑

      三、ROS的核心概念

      3.1 ROS是一種跨平臺模塊化軟件通訊機制

      (1)節點Node——執行單元

      (2)節點管理器 (ROS Master)—— 控制中心

      3.2 話題通信

      3.2 服務通信

      3.3 文件系統

      Reference

      一、ROS簡介

      ROS是Robot Operating System的縮寫,原本是斯坦福大學的一個機器人項目,后來由Willow Garage公司發展,目前由OSRF(Open Source Robotics Foundation, Inc)公司維護的開源項目。ROS就像手機界的安卓,電腦中的微軟;ROS雖然叫操作系統,但是真正底層的任務調度、編譯、尋址等任務還是由Linux操作系統完成,也就是ROS充其量是一個運行在Linux上的次級操作系統。

      可以看某公司對ROS機器人算法工程師的要求:

      (1)有機器人導航算法工作經驗

      (2)熟練掌握Slam機器人導航,實現建圖、定位等功能;

      (3)熟練使用ROS框架操控;

      (4)熟練Linux系統、python和C++;

      (5)扎實的數學功底。

      ROS是一個操作系統

      根據wikipedia定義,OS is system software that manages computer hardware and software resources and provides common services for computer programs。

      計算機的操作系統將計算機硬件封裝起來,而應用軟件運行在操作系統之上,不用管計算機具體應用的是什么類型的硬件產品。這能大大提高軟件開發效率(否則大家只能都寫匯編了)。

      同理,ROS則是對機器人的硬件進行了封裝,不同的機器人、不同的傳感器,在ROS里可以用相同的方式表示(topic等),供上層應用程序(運動規劃等)調用。

      二、學習路徑

      ROS主要編程語言是C++和python。

      (1)ROS官方文檔:http://wiki.ros.org/ROS/Tutorials

      (2)中文版ROS教程:http://wiki.ros.org/cn/ROS/Tutorials(初級學前20講)

      (3)大佬的ROS學習筆記

      (4)中科院ROS入門課程

      (5)補充中。

      三、ROS的核心概念

      3.1 ROS是一種跨平臺模塊化軟件通訊機制

      ROS用節點(Node)的概念表示一個應用程序,不同node之間通過事先定義好格式的消息(Topic),服務(Service),動作(Action)來實現連接。

      (1)節點Node——執行單元

      執行具體任務的進程、獨立運行的可執行文件;

      不同節點可使用不同的編程語言,可分布式運行在不同的主機;

      節點在系統中的名稱必須是唯一的

      (2)節點管理器 (ROS Master)—— 控制中心

      機器人操作系統ROS淺析

      為節點提供命名和注冊服務;

      跟蹤和記錄話題/服務通信,輔助節點相互查找、建立連接;

      提供參數服務器,節點使用此服務器存儲和檢索運行時的參數。

      3.2 話題通信

      話題(Topic)—— 異步通信機制

      節點間用來傳輸數據的重要總線;

      使用發布/訂閱模型,數據由發布者傳輸到訂閱者,同一個話題的訂閱者或發布者可以不唯一。

      消息(Message)—— 話題數據

      具有一定的類型和數據結構,包括ROS提供的標準類型和用戶自定義類型;

      使用編程語言無關的.msg文件定義,編譯過程中生成對應的代碼文件。

      3.2 服務通信

      服務(Service)—— 同步通信機制

      使用客戶端/服務器(C/S)模型,客戶端發送請求數據,服務器完成處理后返回應答數據;

      使用編程語言無關的.srv文件定義請求和應答數據結構,編譯過程中生成對應的代碼文件。

      3.3 文件系統

      功能包(Package) :ROS軟件中的基本單元,包含節點源碼、配置文件、數據定義等

      元功能包(Meta Packages):組織多個用于同一目的功能包

      Reference

      [1] https://www.cnblogs.com/qqfly/p/5851382.html

      [2] ROS入門:https://zhuanlan.zhihu.com/p/26007106

      機器人

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Flutter關于性能數據的幾個知識點
      下一篇:解密:如何高效簡單,提升數據分析效能與價值?
      相關文章
      亚洲色精品aⅴ一区区三区| 国产aⅴ无码专区亚洲av麻豆 | 精品亚洲麻豆1区2区3区| 国产成人无码综合亚洲日韩| 亚洲综合精品网站在线观看| 亚洲精品国产精品乱码不卞| 亚洲А∨精品天堂在线| 老司机亚洲精品影院在线观看| 亚洲AV成人一区二区三区在线看| 亚洲自国产拍揄拍| 亚洲成A人片在线播放器| wwwxxx亚洲| 亚洲成年网站在线观看| 中文字幕无码亚洲欧洲日韩| 亚洲精品免费网站| 亚洲永久网址在线观看| 国产亚洲中文日本不卡二区| 亚洲永久在线观看| 亚洲日韩国产AV无码无码精品| 国产亚洲精品成人AA片| 午夜亚洲WWW湿好爽| 亚洲AV无码一区二区三区在线观看| 国产精品亚洲一区二区三区| mm1313亚洲国产精品美女| 亚洲人成国产精品无码| 国产成人麻豆亚洲综合无码精品| 亚洲精品无码久久千人斩| 亚洲av最新在线网址| 久久亚洲精品中文字幕| 亚洲国产精品久久久久秋霞影院| 亚洲Av高清一区二区三区| 亚洲欧美日韩久久精品| 国产亚洲精品美女| 在线观看国产区亚洲一区成人 | 亚洲综合综合在线| 亚洲午夜一区二区三区| 亚洲成a人无码亚洲成www牛牛 | 亚洲乱亚洲乱淫久久| 久久久久亚洲av无码专区| 亚洲国产av一区二区三区丶| 亚洲中文字幕无码爆乳app|