5. the user-space application obtains the encoders val-
ues.
This simple piece of reusable code can be executed
in different context without any change to the code.
4 IMPLEMENTATION
The platform selected for the first implementation of
the concepts presented above is the tour-guiding robot
RoboX (Siegwart et al., 2003).
RoboX includes a PowerPC 750 clocked at
400MHz that was used for safety-critical tasks like
navigation and obstacle avoidance, and a Pentium III
dedicated for interaction. As a first step, we have
replaced the current real-time operating system run-
ning on the PowerPC with RTAI Linux and developed
the necessary device drivers. Then, we have defined
and developed a HAL providing interfaces to the two
laser range sensors (SICK LMS-200), to the eight sur-
rounding bumpers, and to the two wheels motors and
encoders.
The first reusable piece of code that was developed
is a simplistic navigation algorithm that uses the in-
terfaces provided by HAL to the laser range sensors
and motors to move and avoid obstacles.
The reusable piece of code was successfully exe-
cuted in the context of a non real-time periodic task
in user space (using uHAL) and in the context of a
real-time periodic task in kernel space (using kHAL).
Note that the algorithm reused in this first imple-
mentation is not interesting by itself, but its reusabil-
ity in both real-time and non real-time context while
accessing RoboX hardware is a confirmation that
robotic software reusability with hardware abstraction
and real-time capabilities is possible.
5 CONCLUSION
In this paper, we have presented how a robotic hard-
ware abstraction layer (HAL) with real-time capa-
bilities can be defined on top of real-time Linux for
providing reusability of pieces of software accessing
robot sensors and actuators. We have also described
our preliminary implementation using RTAI Linux on
the tour-guiding robot RoboX.
Future challenges include the definition of the ab-
straction interfaces provided by HAL and the ex-
tension of the concept for communication between
reusable pieces of software. We will also investigate
further the impact of robot configuration on HAL, as
well as HAL integration into a higher level software
architecture.
We hope that the concepts we have proposed in
this paper will help robotic specialists focusing on
their specific fields of interest by providing means for
reusing existing quality software.
REFERENCES
Bovet, D. P. and Cesati, M. (2003). Understanding the
Linux Kernel, Second Edition. O’Reilly and Asso-
ciates, Inc.
Brooks, R. A. (1986). A robust layered control system for a
mobile robot. IEEE Journal of Robotics and Automa-
tion, 2(1):14– 23.
Dankwardt, K. (2002a). Real-time and Linux. Embedded
Linux Journal, 7:6–10.
Dankwardt, K. (2002b). Real-time and Linux, part 2: The
preemptible kernel. Embedded Linux Journal, 8:14–
17.
Fleury, S., Herrb, M., and Chatila, R. (1997). GenoM: a tool
for the specification and the implementation of oper-
ating modules in a distributed robot architecture. In
Proceedings of the International Conference on Intel-
ligent Robots and Systems, pages 842–848, Genoble,
France.
Gat, E. (1997). On three-layer architectures. Artificial In-
telligence and Mobile Robots. MIT/AAAI Press.
Gerkey, B., Vaughan, R., Sty, K., Howard, A., Sukhatme,
G., and Mataric, M. (2001). Most valuable player: A
robot device server for distributed control. In Pro-
ceedings of the International Conference on Intelli-
gent Robots and Systems, pages 1226–1231, Wailea,
Hawaii.
Hilton, E. F. and Yodaiken, V. (2001). Real-time applica-
tions with RTLinux. Embedded Linux Journal, 1:18–
20, 22–25.
Mantegazza, P., Dozio, E. L., and Papacharalambous, S.
(2000). RTAI: Real time application interface. Linux
Journal, 72.
Norris, J. S. (2004). Mission-critical development with
open source software: Lessons learned. IEEE Soft-
ware, 21:42–49.
Rubini, A. and Corbet, J. (2001). Linux Device Drivers:
Second Edition. O’Reilly and Associates, Inc.
Siegwart, R., Arras, K. O., Jensen, B., Philippsen, R., and
Tomatis, N. (2003). Design, implementation and ex-
ploitation of a new fully autonomous tour guide robot.
In Proceedings of the 1st International Workshop on
Advances in Service Robotics, Bardolino, Italy.
Vaughan, R. T., Gerkey, B. P., and Howard, A. (2003). On
device abstractions for portable, reusable robot code.
In Proceedings of the International Conference on In-
telligent Robots and Systems, pages 2121–2427, Las
Vegs, Nevada.
Volpe, R., Nesnas, I., Estlin, T., Mutz, D., Petras, R.,
and Das, H. (2001). The CLARAty architecture for
robotic autonomy. In IEEE Aerospace Conference
Proceedings, pages 121–132, Big Sky, Montana.
ICINCO 2004 - ROBOTICS AND AUTOMATION
294