[發明專利]一種機器人操作系統中的節點通信方法和裝置在審
| 申請號: | 201811639083.3 | 申請日: | 2018-12-29 |
| 公開(公告)號: | CN109766199A | 公開(公告)日: | 2019-05-17 |
| 發明(設計)人: | 張富強 | 申請(專利權)人: | 歌爾股份有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/50 |
| 代理公司: | 北京市隆安律師事務所 11323 | 代理人: | 權鮮枝 |
| 地址: | 261031 山東省濰*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 共享內存 標識符 機器人操作系統 內存 方法和裝置 節點通信 控制通信 通信 讀取 內存共享機制 數據傳輸效率 計算機資源 創建請求 節點創建 節點設置 數據通信 寫入數據 綁定 主機 消耗 | ||
本發明公開了一種機器人操作系統中的節點通信方法和裝置。該方法包括:選取需要進行通信的至少一對機器人操作系統ROS節點,并為每對ROS節點設置至少一個內存標識符;根據作為設立端的ROS節點的創建請求,在相應主機上為一對ROS節點創建一個共享內存,將一個共享內存與一個內存標識符進行綁定;當發起數據通信時,控制通信一方的ROS節點,通過內存標識符查找到共享內存,并寫入數據;以及,控制通信另一方的ROS節點,通過內存標識符查找到共享內存,并讀取共享內存中的數據。可見,本技術方案中用內存共享機制實現ROS的節點之間的通信,提高基于ROS通信的數據傳輸效率和穩定性,并減少計算機資源的消耗。
技術領域
本發明涉及機器人技術領域,特別涉及一種機器人操作系統中的節點通信方法和裝置。
背景技術
現有技術中,機器人操作系統(Robot Operation System,ROS)的通信機制基于TCP/UDP通信協議,在ROS中,每個節點(Node)都是一個進程,節點之間的通信是通過話題注冊和訂閱的方式實現。Talker節點在ROS Master注冊話題并向該話題發送一個消息,Listener節點只要訂閱這個話題就能接收到Talker節點發來的消息。
但是ROS這種通信機制的實時性不穩定,進程與進程之間的通信效率受網絡影響很大,無法滿足對數據傳輸實時性要求比較高的場景(如無人車),而且對內存的頻繁拷貝會消耗太多計算機資源。
發明內容
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的機器人操作系統中的節點通信方法和裝置。
根據本發明的一個方面,提供了一種機器人操作系統中的節點通信方法,包括:
選取需要進行通信的至少一對機器人操作系統ROS節點,并為每對ROS節點設置至少一個內存標識符;
根據作為設立端的ROS節點的創建請求,在相應主機上為一對ROS節點創建一個共享內存,將一個共享內存與一個內存標識符進行綁定;
當發起數據通信時,控制通信一方的ROS節點,通過內存標識符查找到共享內存,并寫入數據;以及,控制通信另一方的ROS節點,通過內存標識符查找到共享內存,并讀取共享內存中的數據。
可選地,
為每對ROS節點設置多個不相同的內存標識符;
并為一對ROS節點創建多個共享內存,分別將一個共享內存與一個內存標識符進行綁定。
可選地,
若設立端所在的主機為第一主機,當創建請求指示待創建的共享內存位于與第一主機不同的第二主機時,先控制設立端ROS節點與第二主機建立連接,通過該連接將創建請求發送至第二主機;
利用第二主機中的ROS主控接收并處理創建請求,在第二主機上創建共享內存。
可選地,
當發起數據通信時,控制位于第一主機的通信一方的ROS節點,與第二主機建立連接,通過該連接將數據通信請求發送至第二主機;
利用第二主機中的ROS主控接收并處理數據通信請求,在第二主機上查找到共享內存,實現數據寫入或讀取。
可選地,
控制位于第一主機的通信一方的ROS節點通過publish函數發布數據,與第二主機建立連接;以及,
控制所述第二主機中的ROS主控通過調用xmlrpc函數,接收位于第一主機的通信一方的ROS節點發布的數據。
可選地,還包括:
為每對ROS節點設置指示通信狀態的互斥量;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于歌爾股份有限公司,未經歌爾股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811639083.3/2.html,轉載請聲明來源鉆瓜專利網。





