Method and device for managing shared memory in robot operating system
US-2017353418-A1 · Dec 7, 2017 · US
US9965344B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9965344-B2 |
| Application number | US-201715409946-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 19, 2017 |
| Priority date | Sep 6, 2016 |
| Publication date | May 8, 2018 |
| Grant date | May 8, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
This disclosure discloses a method and apparatus for transmitting data in a robot operating system. The robot operating system includes a transmitting node, a receiving node, and a shared memory as a transmission medium between the transmitting and receiving nodes. The method in a particular embodiment includes: traversing, by the transmitting node, a sequence of data templates stored in advance in the shared memory, and determining whether the respective data templates in the sequence of data templates are currently being written into or read from; identifying a data template in the sequence of data templates currently being neither written into nor read from as a target data template, and obtaining information of the target data template; and writing data into the target data template according to the information of the target data template. This embodiment can improve the performance of transmitting the data while occupying less memory resources.
Opening claim text (preview).
What is claimed is: 1. A method for transmitting data in a robot operating system to improve data transmission performance or reduce required memory resources, the robot operating system comprising a transmitting node, a receiving node, and a shared memory as a transmission medium between the transmitting node and the receiving node, the method comprising: traversing, by the transmitting node, a sequence of data templates stored in advance in the shared memory, and determining whether respective data templates in the sequence of data templates are currently being written into or read from; identifying one of the data templates in the sequence of data templates currently being neither written into nor read from as a target data template, and obtaining information of the target data template; and writing data into the target data template according to the information of the target data template. 2. The method according to claim 1 , wherein the traversing the sequence of data templates stored in advance in the shared memory, and determining whether the respective data templates in the sequence of data templates are currently being written into or read from comprises: obtaining sequence numbers of the data templates in the sequence of data templates currently being written into, wherein the respective sequence numbers of the data templates in the sequence of data templates are preset by the robot operating system; and monitoring sequentially, by starting from a sequence number greater than values of the obtained sequence numbers, and in an ascending order of the respective sequence numbers of the data templates in the sequence of data templates, whether the data templates currently not being written into in the sequence of data templates are currently being read from. 3. The method according to claim 2 , wherein the identifying one of the data templates in the sequence of data templates currently being neither written into nor read from as a target data template, and obtaining information of the target data template comprises: in response to determining that one of the data templates among the data templates currently not being written into in the sequence of data templates is not currently being read from, identifying the data template currently being neither written into nor read from as the target data template; in response to determining that each of the data templates currently not being written into in the sequence of data templates is currently being read from, monitoring in a cyclic order of the sequence numbers of the respective data templates in the sequence of data templates until one of the data templates currently not being read is detected, and identifying the data template currently being neither written into nor read from as the target data template; and obtaining the information of the target data template. 4. The method according to claim 1 , wherein the data templates comprise data tables. 5. The method according to claim 1 , wherein the data comprise structured data and semi-structured data, the structured data and the semi-structured data are data logically represented in a two-dimensional table structure. 6. A method for transmitting data in a robot operating system to improve data transmission performance or reduce required memory resources, the robot operating system comprising a transmitting node, a receiving node, and a shared memory as a transmission medium between the transmitting node and the receiving node, the method comprising: traversing, by the receiving node, a sequence of data templates stored in advance in the shared memory, and determining whether respective data templates in the sequence of data templates are currently being written into; identifying one of the data templates in the sequence of data templates currently not being written into as a target data template, and obtaining information of the target data template; and reading data in the target data template according to the information of the target data template. 7. The method according to claim 6 , wherein the traversing a sequence of data templates stored in advance in the shared memory, and determining whether the respective data templates in the sequence of data templates are currently being written into comprises: monitoring sequentially, in an ascending order of the respective sequence numbers of the data templates in the sequence of data templates, whether the respective data templates in the sequence of data templates are currently being written into, wherein the respective sequence numbers of the data templates in the sequence of data templates are preset by the robot operating system. 8. The method according to claim 7 , wherein the identifying one of the data templates in the sequence of data templates currently not being written into as a target data template, and obtaining information of the target data template comprises: in response to determining that a data template one of the data templates in the sequence of data templates is not currently being written into, identifying the data template currently not being written into as the target data template; in response to determining that each of the data templates in the sequence of data templates is currently being written into, entering into a waiting status until completion of writing into one of the data templates is detected, and identifying the data template which has been completed to be written into as the target data template; and obtaining the information of the target data template. 9. The method according to claim 6 , wherein the data templates comprise data tables. 10. The method according to claim 6 , wherein the data comprise structured data and semi-structured data, the structured data and the semi-structured data are data logically represented in a two-dimensional table structure. 11. An apparatus for transmitting data in a robot operating system to improve data transmission performance or reduce required memory resources, the robot operating system comprising a transmitting node, a receiving node, and a shared memory as a transmission medium between the transmitting node and the receiving node, the apparatus comprising: a determining unit configured to traverse a sequence of data templates stored in advance in the shared memory, and determine whether respective data templates in the sequence of data templates are currently being written into or read from; an obtaining unit configured to identify one of the data templates in the sequence of data templates currently being neither written into nor read from as a target data template, and obtain information of the target data template; and a writing unit configured to write data into the target data template according to the information of the target data template. 12. The apparatus according to claim 11 , wherein the determining unit comprises: a sequence number obtaining module configured to obtain sequence numbers of the data templates in the sequence of data templates currently being written into, wherein the respective sequence numbers of the data templates in the sequence of data templates are preset by the robot operating system; and a monitoring module configured to monitor sequentially, by starting from a sequence number greater than values of the obtained sequence numbers, and in an ascending order of the respective sequence numbers of the data templates in the sequence of data templates, whether the data templates currently not being written into in the sequence of data templates are currently being read from. 13. The apparatus according to claim 12 , wherein the obtaining unit comprises: a first template deter
Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title
Miscellaneous · CPC title
where the computing system component is a central processing unit [CPU] · CPC title
Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16) · CPC title
Message passing systems or structures, e.g. queues · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.