[發明專利]一種機器人操作系統中的節點通信方法和裝置在審
| 申請號: | 201811639083.3 | 申請日: | 2018-12-29 |
| 公開(公告)號: | CN109766199A | 公開(公告)日: | 2019-05-17 |
| 發明(設計)人: | 張富強 | 申請(專利權)人: | 歌爾股份有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/50 |
| 代理公司: | 北京市隆安律師事務所 11323 | 代理人: | 權鮮枝 |
| 地址: | 261031 山東省濰*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 共享內存 標識符 機器人操作系統 內存 方法和裝置 節點通信 控制通信 通信 讀取 內存共享機制 數據傳輸效率 計算機資源 創建請求 節點創建 節點設置 數據通信 寫入數據 綁定 主機 消耗 | ||
1.一種機器人操作系統中的節點通信方法,其特征在于,包括:
選取需要進行通信的至少一對機器人操作系統ROS節點,并為每對ROS節點設置至少一個內存標識符;
根據作為設立端的ROS節點的創建請求,在相應主機上為一對ROS節點創建一個共享內存,將一個共享內存與一個內存標識符進行綁定;
當發起數據通信時,控制通信一方的ROS節點,通過內存標識符查找到共享內存,并寫入數據;以及,控制通信另一方的ROS節點,通過內存標識符查找到共享內存,并讀取共享內存中的數據。
2.如權利要求1所述的方法,其特征在于,
為每對ROS節點設置多個不相同的內存標識符;
并為一對ROS節點創建多個共享內存,分別將一個共享內存與一個內存標識符進行綁定。
3.如權利要求1所述的方法,其特征在于,
若設立端所在的主機為第一主機,當創建請求指示待創建的共享內存位于與第一主機不同的第二主機時,先控制設立端ROS節點與第二主機建立連接,通過該連接將創建請求發送至第二主機;
利用第二主機中的ROS主控接收并處理創建請求,在第二主機上創建共享內存。
4.如權利要求3所述的方法,其特征在于,
當發起數據通信時,控制位于第一主機的通信一方的ROS節點,與第二主機建立連接,通過該連接將數據通信請求發送至第二主機;
利用第二主機中的ROS主控接收并處理數據通信請求,在第二主機上查找到共享內存,實現數據寫入或讀取。
5.如權利要求4所述的方法,其特征在于,
控制位于第一主機的通信一方的ROS節點通過publish函數發布數據,與第二主機建立連接;以及,
控制所述第二主機中的ROS主控通過調用xmlrpc函數,接收位于第一主機的通信一方的ROS節點發布的數據。
6.如權利要求1所述的方法,其特征在于,還包括:
為每對ROS節點設置指示通信狀態的互斥量;
在創建共享內存時,利用相應互斥量為每一個共享內存設置互斥鎖;
在進行數據通信時,當一個ROS節點向共享內存中寫入/讀取數據時,控制互斥鎖指示處于通信狀態,直至寫入/讀取操作完畢;以及,
當互斥鎖指示處于通信狀態時,拒絕另一ROS節點對該互斥鎖對應的共享內存進行寫入/讀取操作。
7.如權利要求1所述的方法,其特征在于,還包括利用下述方式生成創建請求:
利用內存標識符、待創建內存的容量大小,調用ROS系統中的shmget函數,生成所述創建請求;以及
當發起數據通信時,控制通信一方的ROS節點,通過內存標識符調用具有相同內存標識符的shmget函數,實現向共享內存中寫入數據;以及,控制通信另一方的ROS節點,通過內存標識符調用具有相同內存標識符的shmget函數,實現讀取共享內存中的數據。
8.如權利要求1所述的方法,其特征在于,所述在相應主機上為一對ROS節點創建一個共享內存包括:
采用shimd_kernel數據結構在ROS系統中描述所述共享內存,通過該數據結構中的相應屬性,記錄進程對內存的使用狀況并將創建的內存與相應進程進行關聯。
9.一種機器人操作系統中的節點通信裝置,其特征在于,包括:
設置單元,適于選取需要進行通信的至少一對機器人操作系統ROS節點,并為每對ROS節點設置至少一個內存標識符;
創建單元,適于根據作為設立端的ROS節點的創建請求,在相應主機上為一對ROS節點創建一個共享內存,將一個共享內存與一個內存標識符進行綁定;
控制單元,適于當發起數據通信時,控制通信一方的ROS節點,通過內存標識符查找到共享內存,并寫入數據;以及,控制通信另一方的ROS節點,通過內存標識符查找到共享內存,并讀取共享內存中的數據。
10.如權利要求9所述的裝置,其特征在于,
所述創建單元,適于若設立端所在的主機為第一主機,當創建請求指示待創建的共享內存位于與第一主機不同的第二主機時,先控制設立端ROS節點與第二主機建立連接,通過該連接將創建請求發送至第二主機;利用第二主機中的ROS主控接收并處理創建請求,在第二主機上創建共享內存。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于歌爾股份有限公司,未經歌爾股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811639083.3/1.html,轉載請聲明來源鉆瓜專利網。





