Automated testing, verification & design optimization

To design complex systems, engineers in many fields use computer-aided tools to boost their productivity. Mechanical engineers can use a suite of 3D CAD (computer-aided design) and FEA (finite-element analysis) tools to design structures and understand their performance. Likewise, electrical engineers use electronic design automation tools, including hardware description languages like Verilog, to design and analyze large-scale, reliable, and yet highly complex integrated circuits.

Even though autonomous systems are growing ever more complex, we have yet to see the emergence of similar tools for automatic design, testing, and verification for robotics. As autonomous systems becomes more complex, they can start to fail in unexpected ways, e.g. an interaction between two subsystems can cause an unsafe emergent behavior. In order to design safer autonomous systems, our lab develops tools that help engineers discover these failure modes and find optimized designs that prevent those failures.