Abstract

Designing a robot controller that can optimally manage limited resources in a deterministic, real-time manner can be challenging. Behavior-based architectures, which split autonomy into levels, are very popular but neither have real-time features that enforce timing constraints nor support determinism. Even though real-time features are not included, it seems like a natural fit to make each level in the behavior-based architecture its own task or process. The only that thing that it lacks are the timing features. This has already been implemented using Suns Java Real-Time System. It has also been shown that timing constraints effect performance. This brings us to the question; why not use the more traditional language of C or C++ to implement this behavior-based real-time architecture? Are we not taught that Java is useful but slow compared to C and C++? If so why not use C++ and the features of Open Robot Control Software (OROCOS) to implement the architecture. This paper answers the question of does it really matter what language is used in a behavior-based real-time architecture. We implemented the architecture using OROCOS/C++ running on UBUNTU. Then compared our implementation to two other implementations of the architecture: Java/Player on Fedora; and Suns Java Real-Time System (RTS) on Solaris. Results, from experiments on a robot, show that our OROCOS/C++ implementation performed similarly to the Java RTS implementation. Both the OROCOS and Java RTS implementations performed better than the Player/Java implementation. This suggests that Java is in fact feasible for a behavior-based real-time robot architecture but it needs to be run using Java RTS not the regular version.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.