Programming Languages in Robotics
- PDF / 369,422 Bytes
- 9 Pages / 504.467 x 719.855 pts Page_size
- 21 Downloads / 233 Views
Programming Languages in Robotics Ulrik Pagh Schultz Maersk Institute, University of Southern Denmark, Odense, Denmark
Synonyms General-purpose languages; Robot programming; Scripting; Software development
Definitions Robots are in general controlled using a computer, and the actions of the computer – and thus the robot – are expressed using a programming language. A programming language is a formal notation for writing programs that can be interpreted or compiled to an executable representation. Programming languages are commonly classified according to their paradigm, such as procedural, object-oriented, functional, or logical.
Overview Robotic systems blend hardware and software in a holistic way that intrinsically raises many crosscutting concerns such as concurrency, uncertainty, and time constraints (Schlegel et al.
2015). These concerns make programming robotic systems challenging as expertise from multiple domains needs to be integrated conceptually and technically. Programming languages play a central role in providing a higher level of abstraction. This chapter reviews the state of the art in the use of programming languages to program robotic systems. Following Biggs and MacDonald (2003), we divide programming of robotic systems into manual programming, automatic programming, and software architectures. This chapter focuses on manual programming. Although in principle programming language independent, automatic programming bears a strong relation to logical programming languages, which will be discussed later. Software architecture is a key concern in robotics but is in this chapter only discussed in the context of programming languages; for a more general point of view, we refer to the “Distributed Robotic Computing” chapter. Most mainstream programming languages are general-purpose by virtue of being designed to solve any kind of programming problem. In contrast, a domain-specific (modeling) language (DSL/DSML) is a programming/modeling language dedicated to a particular problem domain, offering numerous benefits by decreasing program complexity and increasing programmer productivity within that domain (van Deursen et al. 2000; Mernik et al. 2005), but at the cost of increased development time for the language infrastructure itself and the risk of limiting
© Springer-Verlag GmbH Germany, part of Springer Nature 2021 M. H. Ang et al. (eds.), Encyclopedia of Robotics, https://doi.org/10.1007/978-3-642-41610-1_6-2
2
programmer expressivity (Fowler 2010). In the last years, this approach has been adopted by the robotics domain to handle the complexity of robotics systems development (Nordmann et al. 2016). This chapter however focuses on general-purpose languages, but does include languages with robotics-specific extensions that can be considered domain-specific languages; for DSLs we refer to the recently published survey by Nordmann et al. (2016). Programming languages can be considered either textual or visual (graphical). The majority of robot programming systems are textual (as is also the c
Data Loading...