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

  • A. C. Domínguez-Brito
  • F. J. Santana-Jorge
  • S. Santana-de-la-Fe
  • J. M. Martínez-García
  • J. Cabrera-Gámez
  • J. D. Hernández-Sosa
  • J. Isern-González
  • E. Fernández-Perdomo
Part of the Advances in Intelligent and Soft Computing book series (AINSC, volume 91)


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 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.


Output Port Software Component Input Port Object Management Group Component Instance 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Heineman, G.T., Councill, W.T.: Component-Based Software Engineering. Addison-Wesley, Reading (2001)Google Scholar
  2. 2.
    Mallet, A., Pasteur, C., Herrb, M., Lemaignan, S., Ingrand, F.: GenoM3: Building middleware-independent robotic components. In: IEEE International Conference on Robotics and Automation (2010)Google Scholar
  3. 3.
    Bensalem, S., Gallien, M., Ingrand, F., Kahloul, I., Thanh-Hung, N.: Designing autonomous robots. IEEE Robotics and Automation Magazine 16(1), 67–77 (2009)CrossRefGoogle Scholar
  4. 4.
    Schlegel, C., Haßler, T., Lotz, A., Steck, A.: Robotic Software Systems: From Code-Driven to Model-Driven Designs. In: Proc. 14th Int. Conf. on Advanced Robotics (ICAR), Munich (2009)Google Scholar
  5. 5.
    The Orocos Project (2010),
  6. 6.
    Brooks, A., Kaupp, T., Makarenko, A., Williams, S., Oreback, A.: Towards component-based robotics. In: IEEE International Conference on Intelligent Robots and Systems, Tsukuba, Japan, pp. 163–168 (2005)Google Scholar
  7. 7.
    Ando, N., Suehiro, T., Kotoku, T.: A Software Platform for Component Based RT-System Development: OpenRTM-Aist. In: Carpin, S., Noda, I., Pagello, E., Reggiani, M., von Stryk, O. (eds.) SIMPAR 2008. LNCS (LNAI), vol. 5325, pp. 87–98. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  8. 8.
    ROS: Robot Operating System (2010),
  9. 9.
    Domínguez-Brito, A.C., Hernández-Sosa, D., Isern-González, J., Cabrera-Gámez, J.: CoolBOT: a Component Model and Software Infrastructure for Robotics. In: Software Engineering for Experimental Robotics, April 2007. Springer Tracts in Advanced Robotics Series, vol. 30, pp. 143–168. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  10. 10.
    Brugali, D., Scandurra, P.: Component-based robotic engineering (part i) [tutorial]. IEEE Robotics Automation Magazine 16(4), 84–96 (2009)CrossRefGoogle Scholar
  11. 11.
    Brugali, D., Shakhimardanov, A.: Component-based robotic engineering (part ii). IEEE Robotics Automation Magazine 17(1), 100–112 (2010)CrossRefGoogle Scholar
  12. 12.
    Minguez, J., Osuna, J., Montano, L.: A “Divide and Conquer” Strategy based on Situations to achieve Reactive Collision Avoidance in Troublesome Scenarios. In: IEEE International Conference on Robotics and Automation, New Orleans, USA (2004)Google Scholar
  13. 13.
    Montesano, L., Minguez, J., Montano, L.: Lessons Learned in Integration for Sensor-Based Robot Navigation Systems. International Journal of Advanced Robotic Systems 3(1), 85–91 (2006)Google Scholar
  14. 14.
    Vaughan, R.T., Gerkey, B., Howard, A.: On Device Abstractions For Portable, Reusable Robot Code. In: IEEE/RSJ International Conference on Intelligent Robot Systems (IROS 2003), Las Vegas, USA, October 2003, pp. 2121–2427 (2003)Google Scholar
  15. 15.
    Ellis, C., Gibbs, S.: Active Objects: Realities and Possibilities. In: Object-Oriented Concepts, Databases, and Applications. ACM Press, Addison-Wesley (1989)Google Scholar
  16. 16.
    Stewart, D.B., Volpe, R.A., Khosla, P.: Design of Dynamically Reconfigurable Real-Time Software Using Port-Based Objects. IEEE Transactions on Software Engineering 23(12), 759–776 (1997)CrossRefGoogle Scholar
  17. 17.
    Paul Morrison, J.: Flow-Based Programming, 2nd Edition: A New Approach to Application Development. CreateSpace (2010)Google Scholar
  18. 18.
    Montemerlo, M., Roy, N., Thrun, S.: Perspectives on standardization in mobile robot programming: the carnegie mellon navigation (carmen) toolkit. In: Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003), October 2003, vol. 3, pp. 2436–2441 (2003)Google Scholar
  19. 19.
    The GTK+ Project (2010),
  20. 20.
    Schmidt, D.C.: The Adaptive Communication Environment, ACE (2010),
  21. 21.
    Object Management Group, The Common Object Request Broker: Architecture and Specification, ch. 15, Sec. 1-3 (2002),
  22. 22.
    Object Management Group, OMG IDL: Details,
  23. 23.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley, Reading (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • A. C. Domínguez-Brito
    • 1
  • F. J. Santana-Jorge
    • 1
  • S. Santana-de-la-Fe
    • 1
  • J. M. Martínez-García
    • 1
  • J. Cabrera-Gámez
    • 1
  • J. D. Hernández-Sosa
    • 1
  • J. Isern-González
    • 1
  • E. Fernández-Perdomo
    • 1
  1. 1.Instituto Universitario SIANI and the Departamento de Informática y SistemasUniversidad de Las Palmas de GranCanariaSpain

Personalised recommendations