Engineers created a recipe for optimizing any autonomous robotic system. Their optimization code can automatically determine how and where to make changes to a system in order to improve a robot’s performance. Since the insufferable Roomba, autonomous robots have come a long way. Self-driving cars, last-mile food delivery, restaurant service, patient screening, hospital cleaning, meal prep, building security, and warehouse packing have all used artificial intelligence systems in recent years.
Each of these robotic systems is the result of an ad hoc design process tailored to that system. Engineers must run countless trial-and-error simulations, often guided by intuition, when developing an autonomous robot. These simulations are tailored to the components and tasks of a specific robot in order to tune and optimize its performance. In some ways, designing an autonomous robot today is analogous to baking a cake from scratch, with no recipe or prepared mix to ensure success.
Now, MIT engineers have developed a general design tool for roboticists to use as a sort of automated recipe for success. The team has devised an optimization code that can be applied to simulations of virtually any autonomous robotic system and can be used to automatically identify how and where to tweak a system to improve a robot’s performance.
The researchers demonstrated that the tool could quickly improve the performance of two very different autonomous systems: one in which a robot navigated a path between two obstacles and another in which a pair of robots collaborated to move a heavy box.
The researchers hope that the new general-purpose optimizer will aid in the development of a wide range of autonomous systems, such as walking robots and self-driving vehicles, as well as soft and dexterous robots and collaborative robot teams.
The team, composed of Charles Dawson, an MIT graduate student, and ChuChu Fan, assistant professor in MIT’s Department of Aeronautics and Astronautics, will present its findings later this month at the annual Robotics: Science and Systems conference in New York.
Our goal is to empower people to build better robots. We’re giving them a new building block for optimizing their system so they don’t have to start from scratch.
Charles Dawson
Inverted design
Dawson and Fan saw a plethora of automated design tools available for other engineering disciplines and realized the need for a general optimization tool. “If a mechanical engineer wanted to design a wind turbine, they could use a 3D CAD tool to design the structure, then a finite-element analysis tool to see if it will withstand certain loads,” Dawson explains. “However, these computer-aided design tools for autonomous systems are scarce.”
Typically, a roboticist optimizes an autonomous system by first creating a simulation of the system and its many interacting subsystems, such as its planning, control, perception, and hardware components. She must then tune specific parameters of each component and run the simulation to see how the system would perform in that scenario.
Only after running many scenarios through trial and error can a roboticist identify the optimal combination of ingredients to yield the desired performance. Dawson and Fan set out to turn the tedious, overly tailored, and time-consuming process on its head.
“Instead of saying, ‘Given a design, what’s the performance?’ we wanted to invert this to say, ‘Given the performance we want to see, what is the design that gets us there?'” Dawson explains.
The researchers developed an optimization framework, or a computer code, that can automatically find tweaks that can be made to an existing autonomous system to achieve a desired outcome.
The code’s heart is based on automatic differentiation, or “autodiff,” a programming tool developed within the machine learning community and initially used to train neural networks. Autodiff is a technique that can quickly and efficiently “evaluate the derivative,” or the sensitivity to change, of any parameter in a computer program. Dawson and Fan built on recent advances in autodiff programming to create a general-purpose optimization tool for autonomous robotic systems.
“Our method automatically tells us how to take small steps from an initial design toward a design that achieves our goals,” Dawson says. “We use autodiff to essentially dig into the code that defines a simulator and figure out how to do this inversion automatically.”
Building better robots
The team tested their new tool on two separate autonomous robotic systems and demonstrated that, when compared to conventional optimization methods, the tool quickly improved each system’s performance in laboratory experiments.
The first system consisted of a wheeled robot tasked with planning a path between two obstacles using signals from two beacons placed at different locations. The team attempted to determine the best location for the beacons in order to create a clear path between the obstacles. They discovered that the new optimizer quickly worked back through the robot’s simulation and identified the best beacon placement in five minutes, compared to 15 minutes for traditional methods.
The second system was more complicated, with two-wheeled robots collaborating to push a box toward a target position. This system’s simulation included many more subsystems and parameters. Despite this, the team’s tool efficiently identified the steps required for the robots to achieve their goal, in an optimization process that was 20 times faster than traditional approaches.
“If you have more parameters to optimize in your system, our tool can do even better and save exponentially more time,” Fan says. “It’s essentially a combinatorial choice: as the number of parameters increases, so do the options, and our approach can reduce that in a single shot.”
The general optimizer is now available for download, and the team intends to further refine the code to apply to more complex systems, such as robots designed to interact with and work alongside humans.
Dawson explains, “Our goal is to empower people to build better robots. We’re giving them a new building block for optimizing their system so they don’t have to start from scratch.”