Proceedings Volume Mobile Robots XV and Telemanipulator and Telepresence Technologies VII, (2001) https://doi.org/10.1117/12.417327
Designing mobile robots means more precisely, designing reactive autonomous systems. We de ne a reactive system as a system able to respond to a huge pannel of situations of which it does not have the schedule. In other words, for instance, the robot does not know when a particular situation may occur, and overall, what it would be doing at this time, and what would be its internal state. This kind of robot must be able to make a decision and to act even if it does not have all the contextual information. We do think that the prototyping phase is critical. Good and clever choices have to be made. Indeed, we may not easily upgrade such robots, and most of all, when the robot is autonomous, any change in both the software and the physical "body" is going to be very difficult, if not impossible. Thus, a great e ort has to be made when prototyping the robot. Furthermore, if your programming model is not expressive enough, you may experience a great deal of difficulty adding all the features you want, in order to give your robot reactiveness and decision making autonomy. For the last two years we have been experimenting, and teaching to our students, the Active Object Oriented Programming for such a purpose. To do so, we use a computer language named oRis featuring object and active object oriented programming, but also parallel and dynamic code, (the code can be changed during its own execution). This last point has been made possible because oRis is fully interpreted. However oRis may call fully compiled code, but also Prolog and Java code. An oRis program may be distributed on several computers using TCP/IP network connections. The main issue in this paper is to show how active objet oriented programming, as a modern extension of object oriented programming, may help us in designing autonomous mobile robots. Based on a fully parallel software programming, an active object code allows us to give many features to a robot, and to easily solve task con icts. This kind of programming is being studied by the French Army, and is taught in the French Army officers Academy. Active object oriented programming is also very useful in matters of software engineering. Indeed, inside the code, the separation between the logical parts is explicit and plain. This allows the designer to take only the robot's logical software part, regardless of the software testing environment, and to put it on the physical robot. And even among the logical parts of the robot software, the separation is quite huge, which is a good thing in terms of code engineering, upgrading and reusing.