A software engineering approach for the development of heterogeneous robotic applications ?
One of the most evident characteristics of robotic applications is heterogeneity: large robotic projects involve many different researchers with very different programming needs and areas of research, using a variety of hardware and software that must be integrated efficiently (i.e.: with a low development cost) to construct applications that satisfy not only classic robotic requirements (fault-tolerance, real-time specifications, intensive access to hardware, etc.) but also software engineering aspects (reusability, maintainability, etc.). Most existing solutions to this problem either do not deal with such heterogeneity or do not cover specific robotic needs. In this paper we propose a framework for the integration of heterogeneous robotic software through a software engineering approach: the BABEL development system, which is aimed to cover the main phases of the application lifecycle (design, implementation, testing, and maintainance) when unavoidable heterogeneity conditions are present. The capabilities of our system are shown by its support for designing and implementing diverse real robotic applications that use several programming languages (C, C++, JAVA), execution platforms (RT-operating systems, MS-Windows, no operating system at all), communication middleware (CORBA, TCP/IP, USB), and also a variety of hardware components (Personal Computers, microcontrollers, and a wide diversity of sensor and actuator devices in mobile robots and manipulator arms).
software engineering robotic software distributed programming