CoolBOT: An Open Source Distributed Component Based Programming Framework for Robotics

Programming robotic systems is not an easy task, even developing software for simple systems may be difficult, or at least cumbersome and error prone. In this document it is presented a C++ distributed component based programming framework for robotics socalled CoolBOT, around which we have started an open source initiative which is freely available via www.coolbotproject.org termed The CoolBOT Project. This framework, started initally as a framework for easy software integration in robotics, has been improved in order to allow, not only easy integration using the CBSE paradigm, but also transparent distributed system computation.

[1]  Patrizia Scandurra,et al.  Component-based robotic engineering (Part I) [Tutorial] , 2009, IEEE Robotics & Automation Magazine.

[2]  Daniel Hernández-Sosa,et al.  CoolBOT: A Component Model and Software Infrastructure for Robotics , 2005, PPSDR@ICRA.

[3]  Luis Montesano,et al.  Lessons Learned in Integration for Sensor-Based Robot Navigation Systems , 2006 .

[4]  George T. Heineman,et al.  Component-Based Software Engineering: Putting the Pieces Together , 2001 .

[5]  Javier Minguez,et al.  A "divide and conquer" strategy based on situations to achieve reactive collision avoidance in troublesome scenarios , 2004, IEEE International Conference on Robotics and Automation, 2004. Proceedings. ICRA '04. 2004.

[6]  Takashi Suehiro,et al.  A Software Platform for Component Based RT-System Development: OpenRTM-Aist , 2008, SIMPAR.

[7]  Richard T. Vaughan,et al.  On device abstractions for portable, reusable robot code , 2003, Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003) (Cat. No.03CH37453).

[8]  Sebastian Thrun,et al.  Perspectives on standardization in mobile robot programming: the Carnegie Mellon Navigation (CARMEN) Toolkit , 2003, Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003) (Cat. No.03CH37453).

[9]  Alexei Makarenko,et al.  Towards component-based robotics , 2005, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[10]  慧 岡田,et al.  ROS(ロボット・オペレーティング・システム) , 2012 .

[11]  Simon J. Gibbs,et al.  Active Objects: Ealities and Possibilities , 1989, Object-Oriented Concepts, Databases, and Applications.

[12]  Christian Schlegel,et al.  Robotic software systems: From code-driven to model-driven designs , 2009, 2009 International Conference on Advanced Robotics.

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

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

[15]  Azamat Shakhimardanov,et al.  Component-Based Robotic Engineering (Part II) , 2010, IEEE Robotics & Automation Magazine.

[16]  Davide Brugali,et al.  Software Engineering for Experimental Robotics , 2007 .

[17]  Thanh-Hung Nguyen,et al.  Designing autonomous robots , 2009, IEEE Robotics & Automation Magazine.

[18]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[19]  Matthieu Herrb,et al.  GenoM3: Building middleware-independent robotic components , 2010, 2010 IEEE International Conference on Robotics and Automation.

[20]  Deitel Operating System , 2008 .

[21]  J. Paul Morrison,et al.  Flow-Based Programming, 2nd Edition: A New Approach to Application Development , 2010 .