日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ROS2学习(四).ROS 2 核心概念

發(fā)布時間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS2学习(四).ROS 2 核心概念 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ROS 2 概念速覽

  • 官方文檔
  • 圖(Graph)的概念
  • 節(jié)點(Node)
  • 客戶端庫(Client Libraries)
  • 發(fā)現(xiàn)機制(Discovery)
  • 參考

ROS2的核心概念主要有:

  • 節(jié)點
  • 客戶端庫
  • 發(fā)現(xiàn)機制

官方文檔

Quick overview of ROS 2 Concepts1

圖(Graph)的概念

ROS 2是一個基于匿名的發(fā)布訂閱機制的中間件,允許不同的ROS進程間進行消息傳遞。
任何ROS 2系統(tǒng)的核心都是ROS圖(Graph),它包含:

  • 節(jié)點Nodes:
    • 一個使用ROS與其他節(jié)點進行通信的實體
    • 節(jié)點間通過topic, service,action或parameter進行數(shù)據(jù)傳輸
    • 一個可執(zhí)行程序可以包括一個或多個節(jié)點
  • 消息Message:
    • 當發(fā)布或訂閱一個主題topic時使用到的ROS數(shù)據(jù)類型
  • 主題Topic:
    • 節(jié)點可以向主題發(fā)布消息
    • 節(jié)點可以訂閱主題接收消息
  • 發(fā)現(xiàn)Discovery:
    • 節(jié)點之間決定如何相互通信的過程

節(jié)點(Node)

  • 節(jié)點是ROS圖的參與者
  • 使用ROS客戶端庫與其他節(jié)點通信
  • 發(fā)布主題
  • 訂閱主題
  • 使用服務(Service)
  • 使用操作(Action)
  • 節(jié)點獨立的可配置參數(shù)
  • 節(jié)點間的連接通過分布式發(fā)現(xiàn)過程加以建立
  • 節(jié)點部署
    • 同進程
    • 不同進程
    • 不同主機

客戶端庫(Client Libraries)

ROS客戶端庫允許用不同編程語言編寫的節(jié)點進行通信。
有一個核心ROS客戶端庫,實現(xiàn)了不同語言的ROS API所需的通用功能。
這使得面向不同語言的庫可以更易于編寫,并保持一致性。

ROS2官方團隊維護了C++和Python兩種語言的客戶端庫(rclcpp/rclpy)。
此外,ROS社區(qū)開發(fā)了其他客戶端庫包括:2

  • JVM and Android
  • Objective C and iOS
  • C#
  • Swift
  • Node.js
  • Ada
  • _.NET Core, UWP and C#
  • Rust

發(fā)現(xiàn)機制(Discovery)

節(jié)點發(fā)現(xiàn)通過ROS2的底層中間件自動進行,按照下述流程進行:

Created with Rapha?l 2.3.0節(jié)點啟動向相同ROS domain的節(jié)點告知自己的存在(擁有相同的ROS_DOMAIN_ID)收到通告的節(jié)點回復自己的信息建立連接節(jié)點間得以通信廣播周期到?yes

在該流程中,節(jié)點會定期發(fā)布自身的存在,這樣就可以與新發(fā)現(xiàn)的實體建立連接
節(jié)點離線時,也會向其他節(jié)點進行通知。
節(jié)點只會同具有兼容的QoS3策略的節(jié)點建立連接。

以之前提到過的的talker-listener Demo4為例: 在一個終端中運行c++ talker節(jié)點將發(fā)布關于一個主題的消息,而在另一個終端中運行的Python listener節(jié)點將訂閱關于同一主題的消息。
可以看到,這些節(jié)點自動發(fā)現(xiàn)彼此,并開始交換消息。

參考


  • Quick overview of ROS 2 Concepts ??

  • About ROS 2 client libraries ??

  • Quality of Service ??

  • talker-listener Demo ??

  • 總結(jié)

    以上是生活随笔為你收集整理的ROS2学习(四).ROS 2 核心概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。