CoolBOT: A Component Model and Software Infrastructure for Robotics

In general, we face recurrently some common problems when programming robotic systems: multithreading and multiprocessing, distributed computing, hardware abstraction, hardware and software integration, multiple levels of abstraction and control, the development of a programming tool for a group of users which may become wide and diverse, etc. In this document we will introduce CoolBOT, a component oriented programming framework implementing primitives and mechanisms aimed to support the resolution of some of these common problems. This framework allows building systems by integrating “off-the-shelf” software components following a port automata model [SVK97] that fosters controllability and observability. Next section, Section 2, will introduce some of the recurrent problems we can find when developing the software infrastructure aimed to control a robotic system. In Section 3 we introduce a component oriented programming framework for programming robotic systems called CoolBOT which is the main subject of this chapter. In Section 4 we will outline the use of CoolBOT for building a real example. Finally in Section 5 we outline some of the conclusions we have drawn along the way of building and using CoolBOT.

[1]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[2]  Krithi Ramamritham,et al.  Using Windows NT for Real-Time Applications: Experimental Observations and Recommendations , 1998, IEEE Real Time Technology and Applications Symposium.

[3]  Modesto Castrillón Santana,et al.  DESEO: An Active Vision System for Detection, Tracking and Recognition , 1999, ICVS.

[4]  Evangelos E. Milios,et al.  Robot Pose Estimation in Unknown Environments by Matching 2D Range Scans , 1994, 1994 Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.

[5]  Matthieu Herrb,et al.  G/sup en/oM: a tool for the specification and the implementation of operating modules in a distributed robot architecture , 1997, Proceedings of the 1997 IEEE/RSJ International Conference on Intelligent Robot and Systems. Innovative Robotics for Real-World Applications. IROS '97.

[6]  D. B. Stewart,et al.  Real-time software design and analysis of reconfigurable multi-sensor based systems , 1994 .

[7]  Michael A. Arbib,et al.  Port Automata and the Algebra of Concurrent Processes , 1983, J. Comput. Syst. Sci..

[8]  Herman Bruyninckx,et al.  A specification of generic robotics software components: future evolutions of G/sup en//sub o/M in the Orocos context , 2002, IEEE/RSJ International Conference on Intelligent Robots and Systems.

[9]  Pradeep K. Khosla,et al.  Design of Dynamically Reconfigurable Real-Time Software Using Port-Based Objects , 1997, IEEE Trans. Software Eng..

[10]  Evangelos E. Milios,et al.  Globally Consistent Range Scan Alignment for Environment Mapping , 1997, Auton. Robots.

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  Daniel Hernández-Sosa,et al.  CoolBOT: A Component-Oriented Programming Framework for Robotics , 2000, Sensor Based Intelligent Robots.

[13]  Cayetano Guerra,et al.  Runtime self-adaptation in a component-based robotic framework , 2005, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[14]  Erann Gat,et al.  Integrating Planning and Reacting in a Heterogeneous Asynchronous Architecture for Controlling Real-World Mobile Robots , 1992, AAAI.

[15]  Daniel Hernández-Sosa,et al.  Integrating robotics software , 2004, IEEE International Conference on Robotics and Automation, 2004. Proceedings. ICRA '04. 2004.