Concurrent Programming and Robotics

Abstract
Many current robot systems exhibit a significant degree of concurrency, doing many activities in parallel. Future sensor- based robots are expected to exhibit even more concurrency. Programs to control such robots are characterized by the need to wait for external events and/or handle interrupts, deal with concurrent activities, synchronize actions with external events, and communicate with other robots and processes. In this paper, we focus on the advantages of concurrent pro gramming for robotics and suggest that a general-purpose language with the right facilities is a good vehicle for robot programming. In this context we will discuss Concurrent C, an upward-compatible extension of the C language that provides high-level concurrent programming facilities. We give an historical perspective of concurrent programming followed by a brief description of Concurrent C and how Concurrent C programs communicate with robots and de vices. We show by examples how Concurrent C simplifies writing robot programs. Of specific interest are the process interaction and related interrupt handling facilities. We conclude that high-level concurrent programming facilities provide significant advantages for robot programming. In particular, transaction facilities provide an elegant means by which to synchronize with external events and communicate with interacting robots and manufacturing processes. Inter rupts may also be mapped to high-level transaction calls within the language. A concurrent programming language provides a framework in which to describe and develop con current solutions and can hide many details associated with distributed processing from the user. Finally, we believe that a high-level concurrent programming language such as Con current C is not only useful for robotics but also for manufac turing processes in general.

This publication has 10 references indexed in Scilit: