Machine learning and testing for ROS softwareRobotics 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:
To apply
|