Evaluation of communication middleware in a distributed humanoid robot architecture
First Claim
1. A distributed system based on a publish-subscribe architecture for controlling a robot, comprising:
- a plurality of publishing modules configured to generate information for sharing with other modules;
a first subscribing module configured to generate a first output for performing a first task in the robot including control of effectors of the robot based on the information generated by the plurality of the publishing modules;
a second subscribing module configured to generate a second output for performing a second task in the robot based on the information generated by the plurality of the publishing modules; and
a message hub separate from the plurality of publishing modules and configured to receive and store the information generated by the plurality of publishing modules, the message hub comprising a plurality of shared memory parts for storing different types of information, the message hub installed with a plurality of filters comprising at least a first filter and a second filter described in a procedural language to implement branching, loop and recursion operations in the first filter and the second filter, the first filter configured to select a first subset of the information matching a first condition for sending to the first subscribing module in one or more first messages identifying the plurality of shared memory parts which store the first subset of the information, the second filter configured to select a second subset of the information matching a second condition for sending to the second subscribing module in one or more second messages identifying the plurality of shared memory parts which store the second subset of the information.
2 Assignments
0 Petitions
Accused Products
Abstract
A publish-subscribe architecture based blackboard system for selecting and exchanging selected information among a plurality of processing modules using filters for implementing conditions described in a procedural language to reduce the amount of information transmitted between the processing modules. More than one filter may be dynamically installed in a message hub to select and collect the published information to be sent to a certain subscribing module. By using the procedural language to describe the filters, the message hub can more intelligently select the information to be sent to the subscribing module. This reduces the amount of information transmitted via communication channels. Further, the subscribing module may be relieved from the task of filtering the information received from the message hub, allowing the subscribing module to devote more resources to other operations.
-
Citations
20 Claims
-
1. A distributed system based on a publish-subscribe architecture for controlling a robot, comprising:
-
a plurality of publishing modules configured to generate information for sharing with other modules; a first subscribing module configured to generate a first output for performing a first task in the robot including control of effectors of the robot based on the information generated by the plurality of the publishing modules; a second subscribing module configured to generate a second output for performing a second task in the robot based on the information generated by the plurality of the publishing modules; and a message hub separate from the plurality of publishing modules and configured to receive and store the information generated by the plurality of publishing modules, the message hub comprising a plurality of shared memory parts for storing different types of information, the message hub installed with a plurality of filters comprising at least a first filter and a second filter described in a procedural language to implement branching, loop and recursion operations in the first filter and the second filter, the first filter configured to select a first subset of the information matching a first condition for sending to the first subscribing module in one or more first messages identifying the plurality of shared memory parts which store the first subset of the information, the second filter configured to select a second subset of the information matching a second condition for sending to the second subscribing module in one or more second messages identifying the plurality of shared memory parts which store the second subset of the information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for controlling a robot using a message hub in a distributed system, the distributed system based on a publish-subscribe architecture, comprising:
-
installing a plurality of filters including a first filter and a second filter in the message hub; receiving information for sharing from a plurality of publishing modules to a message hub separate from the plurality of publishing modules; storing the received information in different ones of a plurality shared memory parts based on the type of information; selecting a first subset of the information matching a first condition by the first filter described in a procedural language to implement branching, looping operations in the first filter; selecting a second subset of the information matching a second condition by the second filter described in the procedural language; sending the first subset of the information to a first subscribing module for generating a first output associated with performing a first task in one or more first messages identifying the plurality of shared memory parts storing the first subset of the information, the first task including control of effectors of the robot; and sending the second subset of the information to a second subscribing module for generating a second output associated with performing a second task in one or more second messages identifying the plurality of shared memory parts storing the second subset of the information. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A non-transitory computer readable storage medium structured to store instructions executable by a processor in a message hub to control a robot using a distributed system based on a publish-subscribe architecture, the instructions, when executed cause the processor to:
-
install a plurality of filters including a first filter and a second filter in the message hub; receive information for sharing from a plurality of publishing modules separate from the messaging hub; store the received information in different ones of a plurality shared memory parts based on the type of information; select a first subset of the information matching a first condition by the first filter described in a procedural language to implement branching, looping operations in the first filter; select a second subset of the information matching a second condition by the second filter described in the procedural language; send the first subset of the information to a first subscribing module for generating a first output associated with performing a first task in one or more first messages identifying the plurality of shared memory parts storing the first subset of the information, the first task including control of effectors of the robot; and send the second subset of the information to a second subscribing module for generating a second output associated with performing a second task in one or more second messages identifying the plurality of shared memory parts storing the second subset of the information. - View Dependent Claims (17, 18, 19, 20)
-
Specification