MODELING AUTONOMOUS MOBILE ROBOT SYSTEM WITH AN OBJECT ORIENTED APPROACH Jun Okamoto Junior Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos Escola Politécnica da Universidade de São Paulo Av. Prof. Mello Moraes, 2231 05508-900 São Paulo, SP, Brazil jokamoto@usp.br Valdir Grassi Junior Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos Escola Politécnica da Universidade de São Paulo Av. Prof. Mello Moraes, 2231 05508-900 São Paulo, SP, Brazil vgrassi@usp.br Fabiano Rogério Correa Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos Escola Politécnica da Universidade de São Paulo Av. Prof. Mello Moraes, 2231 05508-900 São Paulo, SP, Brazil fabiano.correa@poli.usp.br Abstract. Object oriented approach has proved its benefits in software development and systems organization. Researchers are envisioning new areas that can benefit also from the application of this approach. In the robot control field there are some projects around the world that are bringing together robot control structures modeled by object oriented approach. This paper will present the modeling process of an autonomous mobile robot with an object oriented approach. The robot task is modeled by a Business Process Modeler that links to the robot control structure modeled by UML. The realization of the control algorithms is extracted directly form the object oriented model. The implementation of this model can be achieved by distributed objects implemented using CORBA or other equivalent mechanism. This approach will take the development of mobile robot control systems to benefit from a general distributed control system. Keywords: Object-Oriented Programming, UML, Mobile Robot Navigation. 1. Introduction Object oriented approach has proved its benefits in software development and systems organization. Researchers are envisioning new areas that can benefit also from the application of this approach. In the robot control field there are some projects around the world that are bringing together robot control structures modeled by object oriented approach. The aim of these projects is mainly build a modular control structure composed of specialized components for each different function in the robot system. Each component has a well-defined role and interface. One software component is not coupled with another one. For this reason, as independent part of the system, each software component act as a building block to construct the robot control structure to solve the task of interest. This modularity approach makes a software component reusable and it lets that one component be replaced with a different one with the same interface and function in the system. For example, consider two different robots. Despite each robot may have physical differences that reflect in a particular way to control its movement, both could receive commands to move to a particular direction with a heading velocity. For this reason they could be represented as software components with the same interface, and one robot could be easily replaced by another one without deeper changes in the control software. The different ways each robot control its movements are encapsulated inside the component. The Open Robot Control Software (OROCOS) project described by Bruyninckx (2001) aims to develop a general- purpose and open robot control software package based on components. This project benefits from two of the major evolutions in software engineering: object-orientation and software patterns. The modularity and flexibility in the software package being developed in OROCOS project would allow building complex robot systems integrating components for kinematics, dynamics, planning, control, hardware interface, etc. Each of these components would be a software object that would be added or removed from a network and would offer its services through a neutral, programming language interface such as CORBA’s Interface Description Language IDL. This would allow interoperability between components even if the components were written using different programming language or were run on machines with different operational systems. The package resulting of the OROCOS project will help to meet a need in robotic research for reusable functional components to build and test robot control systems. Other researchers also made use of object-oriented concepts applied to robotics. Hori et al (1999) proposed an approach to networked robot system. They consider networked robots as distributed objects and introduce a distributed object computing approach to them. The authors use CORBA as middleware to allow communication and interoperability between the different robots. Murphy (2000) also mentions examples in her book of how a reactive ABCM Symposium Series in Mechatronics - Vol. 1 - pp.25-32 Copyright © 2004 by ABCM