Interactive Synthesis and Repair For Robot Programs

Lead PI

Abstract

Over the past few years, robots have started to be deployed in unstructured human environments. There are hundreds of robots deployed in hospitals, hotels, and supermarkets. Unfortunately, the software that runs on robots is programmed using low-level abstractions and languages, and is hard to transfer across robots and environments. In addition robotic software requires complex control logic to ensure that robots are safe and well-behaved in all situations. Thus, robot software is extraordinarily hard to write and maintain. This research project develops tools and techniques to make robot software safer, easier to write, and easier to maintain.

The intellectual merits of the project are the development of (1) techniques for fixing bugs in robot software, based on advances to automatic program repair and program synthesis; (2) abstractions for writing robot software that can automatically handle certain kinds of failures, based on new programming-language design; (3) methods for checking the correctness of robot software, based on new program-verification techniques. The project’s broader significance and importance are that it helps make robot software easier to write and maintain, and cheaper, safer, and more reliable. The project encourages further research at the intersection of programming languages and robotics by publishing research results and releasing open-source software. The project also involves high-school outreach workshops to broaden participation in computing.

Funding

NSF

Related Publications