Developing applications for robots currently requires advanced knowledge and skills in both robotics and software engineering. As a result, development of robot applications is currently only accessible to a very small segment of the population, excluding those who might have the deepest insight about potential application domains for robots (e.g., experts in logistics, manufacturing, marketing), those who might be better suited to design robot behaviors for human interaction (e.g., designers, artists, psychologists), and those who might be using and repurposing robots day-to-day (e.g., end-users, supervisors, maintenance personnel). This project aims to design and implement a suite of tools and methods, powered by developments in the field of programming languages, to enable the programming of interactive robots with minimal prior experience. These tools and methods will assist all stages of the programming process, including ideation of what the robot behavior should be, coding of the program, its testing on the robot to guarantee certain properties, and adapting the program for deployments in different contexts. The research will make robot programming accessible to the broader public and "democratize" it by substantially lowering barriers to engagement in technology development. Through collaborations with domain experts, the principles, methods, and tools created by the project will be applied to real-world robotics applications, transferring the scientific contributions of the project to robotics organizations. Through an integrated education program, computer science training and curriculum will be enhanced across three institutions by introducing new courses and course modules on robotics software development. To facilitate public understanding of and engagement with science and technology, a robot programming environment for elementary- and middle-school-aged children will be developed along with a structured curriculum for its use in an outreach summer program, and these will be widely disseminated as open-source materials.
The key innovation of the project is the development of novel paradigms for programming that use state-of-the-art program analysis and synthesis methods to support a wide range of programming tasks across the development cycle for robotics applications. Specifically, the project will support each stage of the cycle in three research thrusts with the following objectives: (1) facilitating the capture of user intent by translating designer and end-user intent captured through acting and dialogue into robot programs; (2) supporting iterative development and testing by facilitating the development, refinement, analysis, and synthesis of robust, reliable, and effective robot programs; (3) optimizing deployment by enabling the adaptation of existing robot programs into new environments, scenarios of use, and social contexts. The outcomes of these research thrusts will be integrated into a suite of robot programming tools within the ROS framework and deployed in real-world robot programming tasks in collaboration with industrial partners.
This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.