Abstract
Robot software systems tend to be complex. This complexity is due, in large part, to the need to control diverse sensors and actuators in real time, in the face of significant uncertainty and noise. Robot systems must work to achieve tasks while monitoring for, and reacting to, unexpected situations. Doing all this concurrently and asynchronously adds immensely to system complexity.
The use of a well-conceived architecture, together with programming tools that support the architecture, can often help to manage that complexity. Currently, there is no single architecture that is best for all applications – different architectures have different advantages and disadvantages. It is important to understand those strengths and weaknesses when choosing an architectural approach for a given application.
This chapter presents various approaches to architecting robotic systems. It starts by defining terms and setting the context, including a recounting of the historical developments in the area of robot architectures. The chapter then discusses in more depth the major types of architectural components in use today – behavioral control (Chap. 13), executives, and task planners (Chap. 14) – along with commonly used techniques for interconnecting connecting those components. Throughout, emphasis will be placed on programming tools and environments that support these architectures. A case study is then presented, followed by a brief discussion of further reading.
Keywords
- Unify Modeling Language
- Robot System
- Architectural Style
- Common Object Request Broker Architecture
- Interprocess Communication
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsAbbreviations
- AAAI:
-
American Association for Artificial Intelligence
- AI:
-
artificial intelligence
- AIS:
-
artificial intelligence system
- API:
-
application programming interface
- aRDnet:
-
agile robot development network
- ATLANTIS:
-
a three layer architecture for navigating through intricate situations
- AuRA:
-
autonomous robot architecture
- BIP:
-
behavior-interaction-priority
- BRICS:
-
best practice in robotics
- CASPER:
-
continuous activity scheduling, planning, execution and replanning
- CIRCA:
-
cooperative intelligent real-time control architecture
- CLARAty:
-
coupled layered architecture for robot autonomy
- CLEaR:
-
closed-loop execution and recovery
- CNRS:
-
Centre National de la Recherche Scientifique
- CORBA:
-
common object request broker architecture
common object request broker architecture
- CSAIL:
-
Computer Science and Artificial Intelligence Laboratory
- DDS:
-
data distribution service
- DLR:
-
German Aerospace Center
- DOF:
-
degree of freedom
- ESL:
-
execution support language
- FSA:
-
finite-state acceptor
- GAPP:
-
goal as parallel programs
- GenoM:
-
generator of modules
- GRACE:
-
graduate robot attending conference
- HTN:
-
hierarchical task network
- ICE:
-
internet communications engine
- IC:
-
integrated chip
- IDL:
-
interface definition language
- IPC:
-
interprocess communication
- IxTeT:
-
indexed time table
- JAUS:
-
joint architecture for unmanned systems
- LCD:
-
liquid-crystal display
- MIR:
-
mode identification and recovery
- MIT:
-
Massachusetts Institute of Technology
- NASA:
-
National Aeronautics and Space Agency
- NASREM:
-
NASA/NBS standard reference model
- NBS:
-
National Bureau of Standards
- NDDS:
-
network data distribution service
- OASIS:
-
onboard autonomous science investigation system
- OCU:
-
operator control unit
- ORCCAD:
-
open robot controller computer aided design
- OROCOS:
-
open robot control software
- PID:
-
proportional–integral–derivative
- PLEXIL:
-
plan execution interchange language
- PNT:
-
Petri net transducer
- PRS:
-
procedural reasoning system
- PTU:
-
pan–tilt unit
- QOS:
-
quality of service
- RAP:
-
reactive action package
- RCS:
-
real-time control system
- ROS:
-
robot operating system
- RPC:
-
remote procedure call
- RTI:
-
real-time innovation
- RTS:
-
real-time system
- RTT:
-
real-time toolkit
- RWI:
-
real-world interface
- SLICE:
-
specification language for ICE
- SPA:
-
sense-plan-act
- TAP:
-
test action pair
- TCP:
-
transfer control protocol
- TC:
-
technical committee
- TDL:
-
task description language
- UDP:
-
user datagram protocol
- UML:
-
unified modeling language
- VME:
-
Versa Module Europa
- XML:
-
extensible markup language
- YARP:
-
yet another robot platform
References
I. Jacobson, G. Booch, J. Rumbaugh: The Unified Software Development Process (Addison-Wesley, Reading 1998)
J.S. Albus: RCS: A reference model architecture for intelligent systems, Working Notes: AAAI 1995 Spring Symp. Lessons Learn. Implement. Software Archit. Phys. Agents (1995)
R.A. Brooks: A robust layered control system for a mobile robot, IEEE J. Robot. Autom. 2(1), 14–23 (1986)
R.J. Firby: An investigation into reactive planning in complex domains, Proc. 5th Natl. Conf. Artif. Intel. (1987)
R. Simmons: Structured control for autonomous robots, IEEE Trans. Robot. Autom. 10(1), 34–43 (1994)
J.J. Borrelly, E. Coste-Maniere, B. Espiau, K. Kapelos, R. Pissard-Gibollet, D. Simon, N. Turro: The ORCCAD architecture, Int. J. Robot. Res. 17(4), 338–359 (1998)
B. Kuipers: The spatial semantic hierarchy, Artif. Intell. 119, 191–233 (2000)
R. Orfali, D. Harkey: Client/Server Programming with JAVA and CORBA (Wiley, New York 1997)
R. Simmons, G. Whelan: Visualization tools for validating software of autonomous spacecraft, Proc. Int. Symp. Artif. Intel., Robot. Autom. in Space, Tokyo (1997)
R. A. Brooks: The Behavior Language: User's Guide, Tech. Rep. AIM-1227 (MIT, Artif. Intel. Lab, Cambridge 1990)
R.J. Firby, M.G. Slack: Task execution: Interfacing to reactive skill networks, Working Notes: AAAI Spring Symp. Lessons Learn. Implement. Archit. Phys. Agents, Stanford (1995)
E. Gat: ESL: A language for supporting robust plan execution in embedded autonomous agents, Proc. IEEE Aerosp. Conf. (1997)
V. Verma, T. Estlin, A. Jónsson, C. Pasareanu, R. Simmons, K. Tso: Plan execution interchange language (PLEXIL) for executable plans and command sequences, Proc. 8th Int. Symp. Artif. Intel. Robot. Autom. Space, Munich (2005)
S.A. Schneider, V.W. Chen, G. Pardo-Castellote, H.H. Wang: ControlShell: A software architecture for complex electromechanical systems, Int. J. Robot. Res. 17(4), 360–380 (1998)
National Instruments: LabVIEW (National Instruments, Austin 2007) http://www.ni.com/labview/
N.J. Nilsson: A mobile automaton: an application of AI techniques, Proc. 1st Int. Joint Conf. Artif. Intel. (Morgan Kaufmann, San Francisco 1969) pp. 509–520
N.J. Nilsson: Principles of Artificial Intelligence (Tioga, Palo Alto 1980)
SRI International: Shakey the Robot, http://www.sri.com
P.E. Agre, D. Chapman: Pengi: An implementation of a theory of activity, Proc. 5th Natl. Conf. Artif. Intel. (1987)
R.C. Arkin: Behavior-Based Robotics (MIT Press, Cambridge 1998)
J.H. Connell: SSS: A hybrid architecture applied to robot navigation, Proc. IEEE Int. Conf. Robot. Autom. (1992) pp. 2719–2724
M. Mataric: Integration of representation into goal-driven behavior-based robots, Proc. IEEE Int. Conf. Robot. Autom. (1992)
I. Horswill: Polly: A vision-based artificial agent, Proc. Natl. Conf. Artif. Intel. (AAAI) (1993)
D.W. Payton: An architecture for reflexive autonomous vehicle control, Proc. IEEE Int. Conf. Robot. Autom. (1986)
J.K. Rosenblatt: DAMN: A Distributed Architecture for Mobile Robot Navigation, Ph.D. Thesis (Carnegie Mellon Univ., Pittsburgh 1997)
R.C. Arkin: Motor schema-based mobile robot navigation, Int. J. Robot. Res. 8(4), 92–112 (1989)
M. Arbib: Schema Theory. In: Encyclopedia of Artificial Intelligence, ed. by S. Shapiro (Wiley, New York 1992) pp. 1427–1443
O. Khatib: Real-time obstacle avoidance for manipulators and mobile robots, Proc. IEEE Int. Conf. Robot. Autom. (1985) pp. 500–505
R.C. Arkin: Integrating behavioral, perceptual, and world knowledge in reactive navigation, Robot. Autonom. Syst. 6, 105–122 (1990)
R.C. Arkin, T. Balch: AuRA: Principles and practice in review, J. Exp. Theor. Artif. Intell. 9(2/3), 175–188 (1997)
R.J. Firby: Adaptive Execution in Complex Dynamic Worlds, Ph.D. Thesis (Yale Univ., New Haven 1989)
R.J. Firby: Task networks for controlling continuous processes, Proc. 2nd Int. Conf. AI Plan. Syst. (1994)
R.P. Bonasso: Integrating reaction plans and layered competences through synchronous control, Proc. Int. Joint Conf. Artif. Intel. (1991)
S.J. Rosenschein, L.P. Kaelbling: The synthesis of digital machines with provable epistemic properties, Proc. Conf. Theor. Asp. Reas. Knowl. (1998)
L.P. Kaelbling: Goals as parallel program specifications, Proc. 6th Natl. Conf. Artif. Intel. (1988)
L. P. Kaelbling: Compiling operator descriptions into reactive strategies using goal regression, Tech. Rep., TR90-10, (Teleos Res., Palo Alto 1990)
R.P. Bonasso, R.J. Firby, E. Gat, D. Kortenkamp, D.P. Miller, M.G. Slack: Experiences with an architecture for intelligent, reactive agents, J. Exp. Theor. Artif. Intell. 9(2/3), 237–256 (1997)
E. Gat: Integrating Planning and reacting in a heterogeneous asynchronous architecture for controlling real-world mobile robots, Proc. Natl. Conf. Artif. Intel. (AAAI) (1992)
G.N. Saridis: Architectures for intelligent controls. In: Intelligent Control Systems: Theory and Applications, ed. by S. Gupta (IEEE Press, Piscataway 1995)
R. Alami, R. Chatila, S. Fleury, M. Ghallab, F. Ingrand: An architecture for autonomy, Int. J. Robot. Res. 17(4), 315–337 (1998)
M. Ghallab, H. Laruelle: Representation and control in IxTeT, a temporal planner, Proc. AIPS-94 (1994)
P. Laborie, M. Ghallab: Planning with sharable resource constraints, Proc. Int. Joint Conf. Artif. Intel. (1995)
M.P. Georgeff, F.F. Ingrand: Decision-making in an embedded reasoning system, Proc. Int. Joint Conf. Artif. Intel. (1989) pp. 972–978
F. Ingrand, R. Chatila, R. Alami, F. Robert: PRS: A high level supervision and control language for autonomous mobile robots, Proc. IEEE Int. Conf. Robot. Autom. (1996)
N.P. Muscettola, P. Nayak, B. Pell, B.C. Williams: Remote agent: To boldly go where no AI system has gone before, Artif. Intell. 103(1), 5–47 (1998)
B.C. Williams, P.P. Nayak: A model-based approach to reactive self-configuring systems, Proc. AAAI (1996)
B. Sellner, F.W. Heger, L.M. Hiatt, R. Simmons, S. Singh: Coordinated multi-agent teams and sliding autonomy for large-scale assembly, Proc. IEEE 94(7), 1425–1444 (2006), special issue on multi-agent systems
D. Goldberg, V. Cicirello, M.B. Dias, R. Simmons, S. Smith, A. Stentz: Market-based multi-robot planning in a distributed layered architecture, Proc. Int. Workshop Multi-Robot Syst (2003) pp. 27–38
J.S. Albus, R. Lumia, H.G. McCain: NASA/NBS Standard Reference model for Telerobot Control System Architecture (NASREM), Technol. #1235, (Nat. Inst. Stand, Gaithersburg 1986)
D.R. Blidberg, S.G. Chappell: Guidance and control architecture for the EAVE vehicle, IEEE J. Ocean Eng. 11(4), 449–461 (1986)
J.S. Albus: Outline for a theory of intelligence, IEEE Trans. Syst. Man Cybern. 21(3), 473–509 (1991)
R. Volpe, I. Nesnas, T. Estlin, D. Mutz, R. Petras, H. Das: The CLARAty architecture for robotic autonomy, Proc. IEEE Aerosp. Conf., Big Sky (2001)
I.A. Nesnas, R. Simmons, D. Gaines, C. Kunz, A. Diaz-Calderon, T. Estlin, R. Madison, J. Guineau, M. McHenry, I. Shu, D. Apfelbaum: CLARAty: Challenges and steps toward reusable robotic software, Int. J. Adv. Robot. Syst. 3(1), 023–030 (2006)
T. Estlin, D. Gaines, C. Chouinard, F. Fisher, R. Castaño, M. Judd, R. Anderson, I. Nesnas: Enabling autonomous rover science through dynamic planning and scheduling, Proc. IEEE Aerosp. Conf., Big Sky (2005)
R. Knight, G. Rabideau, S. Chien, B. Engelhardt, R. Sherwood: CASPER: Space exploration through continuous planning, IEEE Intell. Syst. 16(5), 70–75 (2001)
R. Simmons, D. Apfelbaum: A task description language for robot control, Proc. Conf. Intel. Robot Syst., Vancouver (1998)
T.A. Estlin, D. Gaines, C. Chouinard, R. Castaño, B. Bornstein, M. Judd, I.A.D. Nesnas, R. Anderson: Increased mars rover autonomy using AI planning, scheduling and execution, Proc. Int. Conf. Robot. Autom. (2007) pp. 4911–4918
D. Musliner, E. Durfee, K. Shin: World modeling for dynamic construction of real-time control plans, Artif. Intell. 74(1), 83–127 (1995)
D.J. Musliner, R.P. Goldman, M.J. Pelican: Using model checking to guarantee safety in automatically-synthesized real-time controllers, Proc. Int. Conf. Robot. Autom. (2000)
B. Espiau, K. Kapellos, M. Jourdan: Formal verification in robotics: Why and how?, Proc. Int. Symp. Robot. Res., Herrsching (1995)
G. Berry, G. Gonthier: The Esterel synchronous programming language: Design, semantics, implementation, Sci. Comput. Progr. 19(2), 87–152 (1992)
M. Jourdan, F. Maraninchi, A. Olivero: Verifying quantitative real-time properties of synchronous programs, Lect. Notes Comput. Sci. 697, 347–358 (1993)
G. Pardo-Castellote, S.A. Schneider: The network data delivery service: Real-time data connectivity for distributed control applications, Proc. Int. Conf. Robot. Autom. (1994) pp. 2870–2876
JAUS Reference Architecture Specification, Volume II, Part 1 Version 3.2: http://www.jauswg.org/baseline/refarch.html
JAUS Tutorial Powerpoint slides: http://www.jauswg.org/
JAUS Domain Model Volume I, Version 3.2: http://www.jauswg.org/baseline/current_baseline.shtml
E. Gat: ALFA: A language for programming reactive robotic control systems, Proc. IEEE Int. Conf. Robot. Autom. (1991) pp. 116–1121
R.A. Brooks: Elephants don't play chess, J. Robot. Autonom. Syst. 6, 3–15 (1990)
L.P. Kaelbling: Rex -- A symbolic language for the design and parallel implementation of embedded systems, Proc. 6th AIAA Comput. Aerosp. Conf., Wakefield (1987)
E. Gat: Non-linear sequencing and cognizant failure, Proc. AIP Conf. (1999)
E. Gat: On the role of stored internal state in the control of autonomous mobile robots, AI Mag. 14(1), 64–73 (1993)
J.L. Peterson: Petri Net Theory and the Modeling of Systems (Prentice Hall, Upper Saddle River 1981)
K. Currie, A. Tate: O-Plan: The open planning architecture, Artif. Intell. 52(1), 49–86 (1991)
D.S. Nau, Y. Cao, A. Lotem, H. Muñoz-Avila: SHOP: Simple hierarchical ordered planner, Proc. Int. Joint Conf. Artif. Intel. (1999) pp. 968–973
S. Chien, R. Knight, A. Stechert, R. Sherwood, G. Rabideau: Using iterative repair to improve the responsiveness of planning and scheduling, Proc. Int. Conf. AI Plan. Sched. (2000) pp. 300–307
N. Muscettola: HSTS: Integrating planning and scheduling. In: Intelligent Scheduling, ed. by M. Fox, M. Zweben (Morgan Kaufmann, San Francisco 1994)
R. Simmons, J. Fernandez, R. Goodwin, S. Koenig, J. O'Sullivan: Lessons learned from Xavier, IEEE Robot. Autom. Mag. 7(2), 33–39 (2000)
R. Simmons: Inter Process Communication (Carnegie Mellon Univ., Pittsburgh 2007), http://www.cs.cmu.edu/IPC
S.W. Ambler: UML 2 Sequence Diagramms (Ambisoft, Toronto 2007) http://www.agilemodeling.com/artifacts/sequenceDiagram.htm
W.D. Smart: Writing code in the field: Implications for robot software development, Springer Tract. Adv. Robot. 30, 93–105 (2007)
I.A.D. Nesnas: The CLARAty Project: Coping with hardware and software heterogeneity, Springer Tract. Adv. Robot. 30, 31–70 (2007)
D. Brugali, E. Prassler: Software engineering for robotics, IEEE Robot. Autom. Mag. 16(1), 9–15 (2009)
D. Brugali, P. Scandurra: Component-based robotic engineering (Part I), IEEE Robot. Autom. Mag. 16(4), 84–96 (2009)
D. Brugali, A. Shakhimardanov: Component-based robotic engineering (Part II), IEEE Robot. Autom. Mag. 17(1), 100–112 (2010)
D. Calisi, A. Censi, L. Iocchi, D. Nardi: Design choices for modular and flexible robotic software development: The OpenRDK viewpoint, J. Software Eng. Robot. 3(1), 13–27 (2012)
B. Baeuml, G. Hirzinger: When hard realtime matters: Software for complex mechatronic systems, Robot. Auton. Syst. 56, 5–13 (2008)
G. Metta, P. Fitzpatrick, L. Natale: YARP: Yet another robot platform, Int. J. Adv. Robot. Syst 3(1), 43–48 (2006)
H. Bruyninckx: Open robot control software: the OROCOS project, Proc. IEEE Int. Conf. Robot. Autom. (2001) pp. 2523–2528
C. Schlegel, A. Steck, D. Brugali, A. Knoll: Design abstraction and processes in robotics: From code-driven to model-driven engineering, Lect. Notes Comput. Sci. 6472, 324–335 (2010)
S. Cousins: Welcome to ROS Topics, IEEE Robot. Autom. Mag. 17(1), 13–14 (2010)
S. Bensalem, L. de Silva, F. Ingrand, R. Yan: A verifiable and correct-by-construction controller for robot functional levels, J. Software Eng. Robot. 2(1), 1–19 (2011)
R. Bischoff, T. Guhl, E. Prassler, W. Nowak, G. Kraetzschmar, H. Bruyninckx, P. Soetens, M. Haegele, A. Pott, P. Breedveld, J. Broenink, D. Brugali, N. Tomatis: BRICS: Best practice in robotics, Proc. 41st Int. Symp. Robot., Munich (2010) pp. 7–9
M. Klotzbuecher, N. Hochgeschwender, L. Gherardi, H. Bruyninckx, G. Kraetzschmar, D. Brugali: The BRICS component model: A model-based development paradigm for complex robotics software systems, 28th ACM Symp. Appl. Comput., Coimbra (2013) pp. 18–22
D. Brugali, L. Gherardi, A. Luzzana, A. Zakharov: A reuse-oriented development process for component-based robotic systems, Lect. Notes Comput. Sci. 7628, 361–374 (2012)
L. Gherardi, D. Brugali: Modeling and reusing robotic software architectures: The hyperflex toolchain, Proc. IEEE Robot. Autom. Conf. ICRA '14, Hong Kong (2014)
D. Kortenkamp, R.P. Bonasso, R. Murphy: Artificial Intelligence and Mobile Robots (MIT Press, Cambridge 1998)
R. Murphy: Introduction to AI Robotics (MIT Press, Cambridge 2000)
R. Siegwart, I.R. Nourbakhsh: Introduction to Autonomous Mobile Robots (MIT Press, Cambridge 2004)
R. Simmons, D. Goldberg, A. Goode, M. Montemerlo, N. Roy, B. Sellner, C. Urmson, A. Schultz, M. Abramson, W. Adams, A. Atrash, M. Bugajska, M. Coblenz, M. MacMahon, D. Perzanowski, I. Horswill, R. Zubek, D. Kortenkamp, B. Wolfe, T. Milam, B. Maxwell: GRACE: An autonomous robot for the AAAI Robot Challenge, AAAI Mag. 24(2), 51–72 (2003)
R. Gockley, R. Simmons, J. Wang, D. Busquets, C. DiSalvo, K. Caffrey, S. Rosenthal, J. Mink, S. Thomas, W. Adams, T. Lauducci, M. Bugajska, D. Perzanowski, A. Schultz: Grace and George: Social Robots at AAAI, Proc. AAAI Mob. Robot Comp. Workshop (2004), pp. 15–20
M.P. Michalowski, S. Sabanovic, C. DiSalvo, D. Busquets, L.M. Hiatt, N.A. Melchior, R. Simmons: Socially Distributed Perception: GRACE plays social tag at AAAI 2005, Auton. Robot. 22(4), 385–397 (2007)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Video-References
Video-References
- :
-
Software product line engineering for robotics available from http://handbookofrobotics.org/view-chapter/12/videodetails/273
Rights and permissions
Copyright information
© 2016 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Kortenkamp, D., Simmons, R., Brugali, D. (2016). Robotic Systems Architectures and Programming. In: Siciliano, B., Khatib, O. (eds) Springer Handbook of Robotics. Springer Handbooks. Springer, Cham. https://doi.org/10.1007/978-3-319-32552-1_12
Download citation
DOI: https://doi.org/10.1007/978-3-319-32552-1_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-32550-7
Online ISBN: 978-3-319-32552-1
eBook Packages: EngineeringEngineering (R0)