2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2010
Designing a robot controller that can optimally manage limited resources in a deterministic, real... more 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 realtime 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 behaviorbased 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 realtime 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 realtime robot architecture but it needs to be run using Java RTS not the regular version.
Uploads
Papers by James Davis