Component-Level Robot Design Automation

Andrew Wilhelm

Effective design automation for building robots would make development faster and easier while also less prone to design errors. However, complex multi-domain constraints make creating such tools difficult. One persistent challenge in achieving this goal of design automation is the fundamental problem of component selection, a combinatorial optimization problem where, given a general robot model, components must be selected from a possibly large set of catalogs to minimize design objectives while meeting target specifications. In this talk we will present an approach that uses constraint programming (CP) and a depth-first branch-and-bound algorithm to solve this optimization problem without requiring any system approximations. As the efficacy of CP critically depends upon the orderings of variables and their domain values, we will propose two heuristics specific to the problem of component selection that significantly improve solve time compared to traditional constraint satisfaction programming heuristics. We will also present a general method to further improve run time by evaluating certain global constraints before all relevant variables are assigned. Finally, we will conclude the talk with a discussion of future research directions to address current open problems in component-level and general robot design automation.

Bio: Andrew Wilhelm is a 3rd year PhD student at Cornell University conducting research within the Napp Lab in the Computer Systems Laboratory. He earned his Bachelor's in Electrical Engineering from the University of California, Los Angeles in 2020 during which he received the John J. and Clara C. Boelter Engineering Fellowship (2020) and the Electrical and Computer Engineering Outstanding Bachelor of Science (Class of 2020) award. At Cornell, he has been named a Cornell University fellow (Fall 2020) and a NSF GRFP fellow (2022). His research interests focus on automating robot design to facilitate faster, cheaper, and less error-prone robot development. Outside of research, Andrew enjoys running and is involved in his local community as a volunteer firefighter/EMT.