The Fireseeker software architecture will combine technologies developed at iRobot, SRI, and the Idaho National Laboratory (INL). The iRobot Aware software architecture is a lightweight, high-performance architecture that allows many processes to share information for real-time robot control. Aware supports both publish/subscribe and message queue communications abstractions that are implemented via shared memory and UDP message passing. This allows the seamless integration of capabilities running on multiple processors. The PackBot’s low-level motion control and sensor driver software is implemented via Aware.
Figure 3: Fireseeker Software Architecture
Player is an open-source software architecture developed by SRI and used by many university research laboratories. SRI has developed state-of-the-art planning algorithms that allow multiple robots to cover a search area in the presence of dynamic obstacles. The Intelligence Kernel is an open-source software architecture developed by INL, which is used by many government research laboratories and some universities.
We will implement two translator modules so that we can take advantage of all three architectures. The Aware/Player translator module will enable communication between Aware and Player. This module will subscribe to Aware publications and periodically send the corresponding messages to Player. Player can get updated information from the translator and can send commands to the translator.
For example, consider a coverage behavior running in Player. This behavior will be able to send desired positions and velocities to Player. The translator will read these commands and publish them via Aware. The Aware reactive control behaviors will then attempt to navigate to the specified location.
Conversely, consider a localization system running on Player that requires LIDAR and odometry data. Aware’s sensor drivers will read the updates from the LIDAR and odometry and frequently update these values in an Aware publication. The translator will read all publications and transmit the corresponding data to Player, where it can be used by the localization system. The localization system will then publish a corrected position estimate via Player and the translator will publish the position to Aware, allowing all Aware processes to make use of this information.
A similar approach will be used with the Aware/Intelligence Kernel translator module
Share with your friends: |