PDF (5.8 MB)
The need for software concurrency and the availability of hardware parallelism exist in symbiosis; the ability to exploit parallelism via concurrency is an increasingly important part of software design and development. Process-oriented design provides a model, of systems composed from networks of concurrently executing communicating processes, which eases the creation of concurrent programs that behave correctly. Robots are agents in the world and typically have many tasks to achieve simultaneously; writing robot control software requires coordination of these tasks. Given their interaction with the world, the need to complete concurrent tasks and the availability of parallel hardware, it is natural to consider designing and implementing robot control systems using a programming model specialised for concurrent systems.
This thesis presents the application of process-oriented design and programming to robotic control through the re-design and re-implementation of existing software architectures and hardware interfaces. The contributions made in this thesis demonstrate properties consistent with a closeness of mapping between the domain and programming model. Evidence is presented that application of a concurrent process-oriented programming model does not negatively effect the responsiveness of systems and facilitates more direct representation of the concurrency inherent to the task.
This thesis presents a visual program design tool, POPed, which is able to produce executable programs using process-oriented design techniques involving the structured composition of processes. Work reported on POPed demonstrates that process-oriented programs may be created via pure composition using high-level design techniques. This thesis also presents a methodology and tool for visualising the runtime state of process- oriented programs, further extending the applicability of the design visualisations from program creation to debugging. Evidence is presented of this tool allowing exposition of program properties which lead to common concurrency errors (livelock and deadlock) in process-oriented programs.
@phdthesis{Simpson:2012,
Address = {University of Kent, Canterbury, England, CT2 7NF},
Author = {Jonathan Simpson},
Month = {March},
School = {School of Computing},
Title = {High Level Paradigms for the Structuring of Concurrent Systems},
Year = {2012}
}