Machine learning and testing for ROS software

Robotics is a very exciting area of application; not only is it fun, but it also has potential for huge economic and social impact. A lot has been achieved, and a lot is expected to happen in the next decade or so. Software engineering techniques that provide appropriate and specific support for robot engineers, however, are few and far between.

Perhaps the most popular middleware for robotics is ROS (https://www.ros.org/), which has a very active community of programmers in industry and academia.  ROS-based projects, however, normally focus on writing code, and have a completely ad hoc and expensive approach to testing.  This project will identify how we can learn models written in diagrammatic notations appealing to roboticists.  With such models, roboticists can use modern design and verification techniques (testing, simulation, and even proof) to develop control software.  In this project, we will focus specifically on automatic generation of tests, but there is scope for work with other techniques to derive value from the models.

The project will capitalise on existing learning approaches for ROS. For modelling, we will adopt and extend domain-specific notations and techniques for mobile and autonomous robots provided by the RoboStar framework. Using RoboStar notations, we can define design models for general robotic control software, and automatically generate simulation code, tests, and even models for proof.

Applications and examples are available from RoboStar , the YorRobots network, and York’s Institute on Safe Autonomy. RoboStar development and verification is supported by RoboTool.

Prerequisites: This project is ideal for a student interested in machine learning, modelling, and specification.  Programming experience is essential, and a good mathematical background is important.

Resources:

  1. ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems Chris Timperley, Tobias Dürschmid, Bradley Schmerl, David Garlan, and Claire Le Goues ICSA '22: 19th IEEE International Conference on Software Architecture 2022
  2. A. L. C. Cavalcanti, W. Barnett, J. Baxter, G. Carvalho, M. C. Filho, A. Miyazawa, P. Ribeiro, and
    A. C. A. Sampaio. RoboStar Technology: A Roboticist's Toolbox for Combined Proof, Simulation, and
    Testing, pages 249--293. Springer International Publishing, 2021. [ bib | DOI | .pdf ]
  3. A. L. C. Cavalcanti. RoboStar Modelling Stack: Tackling the Reality Gap. In 1st International
    Workshop on Verification of Autonomous & Robotic Systems, VARS 2021. Association for
    Computing Machinery, 2021. [ bib | DOI ]
  4. A comprehensive list of publications is provided in the RoboStar site.

To apply

  • You must apply online for a full-time PhD in Computer Science.
  • You must quote the project title ‘Machine learning and testing for ROS software’ in your application.
  •  There is no need to write a full formal research proposal (2,000-3,000 words) in your application to
    study, as this studentship is for a specific project.