CSP2Turtle: Verified Turtle Robot Plans

Dara MacConville, Marie Farrell, Matt Luckcuck, Rosemary Monahan

Research output: Contribution to journalArticlepeer-review


Software verification is an important approach to establishing the reliability of critical systems. One important area of application is in the field of robotics, as robots take on more tasks in both day-to-day areas and highly specialised domains. Our particular interest is in checking the plans that robots are expected to follow to detect errors that would lead to unreliable behaviour. Python is a popular programming language in the robotics domain through the use of the Robot Operating System (ROS) and various other libraries. Python’s Turtle package provides a mobile agent, which we formally model here using Communicating Sequential Processes (CSP). Our interactive toolchain CSP2Turtle with CSP models and Python components enables plans for the turtle agent to be verified using the FDR model-checker before being executed in Python. This means that certain classes of errors can be avoided, providing a starting point for more detailed verification of Turtle programs and more complex robotic systems. We illustrate our approach with examples of robot navigation and obstacle avoidance in a 2D grid-world. We evaluate our approach and discuss future work, including how our approach could be scaled to larger systems.

Original languageEnglish
Article number62
Issue number2
Publication statusPublished - 21 Apr 2023


  • CSP
  • Python
  • robotics
  • software verification


Dive into the research topics of 'CSP2Turtle: Verified Turtle Robot Plans'. Together they form a unique fingerprint.

Cite this