Location of Repository

Visual Process-oriented Programming for Robotics

By Jonathan Simpson and Christian L. Jacobsen

Abstract

When teaching concurrency, using a process-oriented language, it is often introduced through a visual representation of programs in the form of process network diagrams. These diagrams allow the design of and abstract reasoning about programs, consisting of concurrently executing communicating processes, without needing any syntactic knowledge of the eventual implementation language. Process network diagrams are usually drawn on paper or with general-purpose diagramming software, meaning the program must be implemented as syntactically correct program code before it can be run. This paper presents POPed, an introductory parallel programming tool leveraging process network diagrams as a visual language for the creation of process-oriented programs. Using only visual layout and connection of pre-created components, the user can explore process orientation without knowledge of the underlying programming language, enabling a ''processes first'' approach to parallel programming. POPed has been targeted specifically at basic robotic control, to provide a context in which introductory parallel programming can be naturally motivated

Topics: QA76
Publisher: IOS Press
Year: 2008
OAI identifier: oai:kar.kent.ac.uk:24105

Suggested articles

Preview

Citations

  1. (2002). A Graphical Modeling Language for Specifying Concurrency based on CSP. doi
  2. (2007). A Native Transterpreter for the LEGO Mindstorms RCX.
  3. (2006). A Portable Runtime for Concurrency Research and Application.
  4. (1985). A robust layered control system for a mobile robot. doi
  5. (1996). A Strict occam Design Tool. doi
  6. (1991). Combining Event and Signal Processing in the MAX Graphical Programming Environment. doi
  7. (1999). Communicating and mobile systems: the pi-calculus. doi
  8. (1999). Communicating and mobile systems: the π-calculus. doi
  9. (2005). Communicating Mobile Processes: Introducing occam-pi.
  10. (2005). Communicating Mobile Processes: Introducing occam-π. doi
  11. (1985). Communicating sequential processes. doi
  12. (2000). CSP Design Model and Tool Support.
  13. (2007). DARPA Urban Challenge. doi
  14. (2005). gCSP occam Code Generation for RMoX.
  15. (1987). GRAIL: Graphical representation of activity, interconnection and loading.
  16. (2004). Graphical Analysis Tool for Occam Resources. Final year B.Sc project report,
  17. (2004). Graphical Tool for Designing CSP Systems.
  18. (1993). Higher-Level Paradigms for Deadlock-Free HighPerformance Systems. In
  19. (2000). LEGO engineer and ROBOLAB: Teaching engineering with LabVIEW from kindergarten to graduate school.
  20. (1995). Legosheets: a rule-based programming, simulation and manipulation environment for the lego programmable brick. doi
  21. (1996). LogoBlocks: A Graphical Programming Language for Interacting with the World.
  22. (2006). Methods and tools for exploring novice compilation behaviour. doi
  23. (2008). Microsoft Robotics Studio: VPL Introduction. doi
  24. (1992). Millipede: A programming environment providing visual support for parallel programming,
  25. (2006). Mobile Robot Control: The Subsumption Architecture and occam-pi.
  26. (2006). Mobile Robot Control: The Subsumption Architecture and occam-π. doi
  27. (2000). Objects first with Java and BlueJ (seminar session). doi
  28. (2008). Patterns for programming in parallel, pedagogically. doi
  29. (1989). Pictorial representation of parallel programs.
  30. (1996). Pure Data: another integrated computer music environment.
  31. (2007). PyCSP - Communicating Sequential Processes for Python.
  32. (2003). RMoX: a Raw Metal occam Experiment.
  33. (2004). Scratch: A sneak preview. doi
  34. (1995). Software engineering for parallel systems: the TRAPPER approach. doi
  35. (2008). Surveyor SRV-1 Blackfin Robot. http://www.surveyor.com/,
  36. (2008). The JCSP Home Page: Communicating Sequential Processes for Java. http://www.cs.kent.ac.uk/projects/ofa/jcsp/,
  37. (2004). The Transterpreter: A Transputer Interpreter.
  38. (1999). Tools and techniques for teaching objects first in a Java course. doi
  39. (1998). Toward concrete representation in visual languages for robot control. doi
  40. (2005). Towards concrete concurrency: occam-pi on the LEGO Mindstorms. In doi
  41. (2005). Towards concrete concurrency: occam-π on the LEGO Mindstorms. In doi
  42. (1986). Vehicles: Experiments in Synthetic Psychology. doi
  43. (1995). Visputer–A Graphical Visualization Tool for Parallel Programming. doi
  44. (1998). Visual programming for robot control. doi
  45. (2006). What is LOVE? Available at: https://www.cs.kent.ac.uk/research/groups/sys/wiki/LOVE,

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.