Abstract
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.
This work has been supported by research projects PI2003/160 and PI2003/165 funded by the Autonomous Government of Canary Islands (Gobierno de Canarias - Consejera de Educacin, Cultura y Deportes, Spain), by the MEC (Ministerio de Educacin y Ciencia, Spain) and FEDER research project TIN2004-07087, and by the ULPGC research projects UNI2004/11, UNI2004/25 and UNI2005/18.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
J. Cabrera-Gámez, A. C. Domínguez-Brito, and D. Hernández-Sosa, Coolbot: A component-oriented programming framework for robotics, Lecture Notes in Computer Science, Sensor Based Intelligent Robots: International-Workshop Dagstuhl Castle, Germany, October 15–20, 2000 Selected Revised Papers, vol. 2238, pp. 282–304, Springer Berlin / Heidelberg, January 2002.
A. C. Domínguez-Brito, F. M. Hernández-Tejera, and J. Cabrera-Gámez, A Control Architecture for Active Vision Systems, Frontiers in Artificial Intelligence and Applications: Pattern Recognition and Applications, M.I. Torres and A. Sanfeliu (eds.), pp. 144–153, IOS Press, Amsterdam., 2000.
A. C. Domínguez-Brito, M. Andersson, and H. I. Christensen, A Software Architecture for Programming Robotic Systems based on the Discrete Event System Paradigm, Technical Report CVAP 244, Centre for Autonomous Systems, KTH-Royal Institute of Technology), S-100 44 Stockholm, Sweden, September 2000.
[DBCGHS+01]_A. C. Domínguez-Brito, J. Cabrera-Gámez, D. Hernández-Sosa, M. Castrillón-Santana, J. Lorenzo-Navarro, J. Isern-González, C. Guerra-Artal, I. Pérez-Pérez, A. Falcón-Martel, M. Hernández-Tejera, and J. Méndez-Rodríguez, Eldi: An Agent Based Museum Robot, Systems Science, ISSN 0137-1223 27 (2001), no. 4, 119–128.
A. C. Domínguez-Brito, CoolBOT: a Component-Oriented Programming Framework for Robotics, Ph.D. thesis, Dpto. Informática y Sistemas, Universidad de Las Palmas de Gran Canaria (mozart.dis.ulpgc.es/Publications/publications.html), September 2003.
A. C. Domínguez-Brito, D. Hernández-Sosa, J. Isern-González, and J. Cabrera-Gámez, Integrating Robotics Software, IEEE International Conference on Robotics and Automation, New Orleans, USA, April 2004.
S. Fleury, M. Herrb, and R. Chatila, G en oM: A Tool for the Specification and the Implementation of Operating Modules in a Distributed Robot Architecture, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (Grenoble, Francia), September 1997, pp. 842–848.
S. Fleury, M. Herrb, and A. Mallet, G en oM: User’s Guide, softs.laas.fr/openrobots/distfiles/genom-manual.pdf,-.
E. Gat, Integrating Planning and Reacting in a Heterogeneous Asynchronous Architecture for Controlling Real-World Mobile Robots, Proceedings of the Tenth National Conference on Artificial Intelligence (San Jose, CA, USA), July 1992, pp. 809–815.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design patterns: Elements of reusable object-oriented software, Addison-Wesley Professional Computing Series, Addison-Wesley, 1995.
K. Gopalan, Real-Time Support in General Purpose Operating Systems, ECSL Technical Report TR92, Experimental Computer Systems Labs, Computer Science Department. State University of New York at Stony Brook, 2001.
[HTCGCS+ 99]_M. Hernández-Tejera, J. Cabrera-Gámez, M. Castrillón-Santana, A. C. Domínguez-Brito, C. Guerra-Artal, D. Hernández-Sosa, and J. Isern-González, DESEO: an Active Vision System for Detection, Tracking and Recognition, vol. 1542, pp. 376–391, International Conference on Vision Systems, Las Palmas de Gran Canaria, Spain. Springer-Verlag Lecture Notes on Computer Science, January 1999, ISBN 3-540-65459-3.
D. Hernández-Sosa, A. C. Domínguez-Brito, C. Guerra-Artal, and J. Cabrera-Gámez, Runtime self-adaptation in a component-based robotic framework, IEEE/RSJ International Conference on Inteligent Robots and Systems (IROS 2005), August 2–6, Edmonton, Alberta, Canada, 2005.
F. Lu and E. Milios, Robot pose estimation in unknown environments by matching 2d range scans, Proc. IEEE Comp. Soc. Conf. on Computer Vision and Pattern Recognition, Seattle, USA, 1994.
F. Lu and E. Milios, Globally consistent range scan alignment for environment mapping, Autonomous Robots 4 (1997), no. 4, 333–349.
A. Mallet, S. Fleury, and H. Bruyninckx, A specification of generic robotics software components: future evolutions of G en oM in the orocos context, IROS 2002 Conference, 2002.
R. Monson-Haefal, Enterprise JavaBeans, O’Reilly, September 2001.
Jason T. Roff, Ado: Activex data objects, O’Reilly, 2001.
K. Ramamritham and C. Shen, Using Windows NT for Real-Time Applications: Experimental Observations and Recommendations, IEEE Real-Time Technology and Applications Symposium (merl.com/people/shen/pubs/rtas98.pdf), 1998.
M. Steenstrup, M. A. Arbib, and E. G. Manes, Port automata and the algebra of concurrent processes, Journal of Computer and System Sciences 27 (1983), 29–50.
C. Schlegel, Communication Patterns as Key Towards Component Interoperability, In D. Brugali (Ed.) Software Engineering for Experimental Robotics, Spinger STAR series, 2006
C. Schlegel, Overview of the OROCOS::SmartSoft Approach, http://www1.faw.uni-ulm.de/orocos/, 2003.
C. Schlegel, Navigation and execution for mobile robots in dynamic environments: An integrated approach, Ph.D. thesis, University of Ulm, 2004.
D. B. Stewart, Real-Time Software Design and Analysis of Reconfigurable Multi-Sensor Based Systems, Ph.D. thesis, Carnegie Mellon University, Dept. Electrical and Computing Engineering, Pittsburgh, 1994.
D. B. Stewart, R. A. Volpe, and P. Khosla, Design of Dynamically Reconfigurable Real-Time Software Using Port-Based Objects, IEEE Transactions on Software Engineering 23 (1997), no. 12, 759–776.
C. Schlegel and R. Wörz, Interfacing Different Layers of a Multilayer Architecture for Sensorimotor Systems using the Object Oriented Framework Smart-Soft, Third European Workshop on Advanced Mobile Robots-Eurobot99. Zürich, Switzerland, September 1999.
C. Szyperski, Component software: Beyond object-oriented programming, Addison-Wesley, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Domínguez-Brito, A.C., Hernández-Sosa, D., Isern-González, J., Cabrera-Gámez, J. (2007). CoolBOT: A Component Model and Software Infrastructure for Robotics. In: Brugali, D. (eds) Software Engineering for Experimental Robotics. Springer Tracts in Advanced Robotics, vol 30. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68951-5_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-68951-5_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-68949-2
Online ISBN: 978-3-540-68951-5
eBook Packages: EngineeringEngineering (R0)