Engineers design a recipe to improve any autonomous robotic system

Autonomous robots have come a long way since the tedious Roomba. In recent years, artificially intelligent systems have been deployed in self-driving cars, last-mile food delivery, catering services, patient screening, hospital cleaning, meal preparation, building security and warehouse packaging.

Each of these robotic systems is the product of an ad hoc design process specific to that particular system. When designing an autonomous robot, engineers must run countless trial-and-error simulations, often informed by intuition. These simulations are tailored to the components and tasks of a particular robot, in order to tune and optimize its performance. In some ways, designing an autonomous robot today is like baking a cake from scratch, with no recipe or prepared mix to ensure a successful outcome.

Now engineers at MIT have developed a general design tool that roboticists can use as a sort of automated recipe for success. The team designed 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 modify a system to improve a robot’s performance.

The team showed that the tool was able to 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 worked together to move a heavy box.

The researchers hope that the new general-purpose optimizer can help accelerate the development of a wide range of autonomous systems, from walking robots and autonomous vehicles to flexible and agile robots, and collaborative robot teams.

The team, consisting of Charles Dawson, an MIT graduate student, and ChuChu Fan, an assistant professor in MIT’s Department of Aeronautics and Astronautics, will present their findings later this month at the annual Robotics conference: Science and Systems in New York.

Reverse design

Dawson and Fan realized the need for a general optimization tool after observing a multitude of automated design tools available for other engineering disciplines.

“If a mechanical engineer wanted to design a wind turbine, they could use a 3D CAD tool to design the structure and then use a finite element analysis tool to check if it will withstand certain loads,” Dawson explains. “However, there is a lack of these computer-aided design tools for stand-alone systems. »

Normally, a roboticist optimizes an autonomous system by first developing a simulation of the system and its many interacting subsystems, such as its planning, control, perception, and hardware components. She then needs to adjust some parameters of each component and run the simulation forward to see how the system would perform in this scenario.

Only after running numerous scenarios through trial and error can a roboticist identify the optimal combination of ingredients to achieve the desired performance. It’s a tedious, overly tailored and time-consuming process that Dawson and Fan have sought to reverse.

“Instead of saying, ‘Given a design, what’s the performance?’ we wanted to reverse that to say, “Given the performance we want to see, what is the design that gets us there? says Dawson.

The researchers developed an optimization framework, or computer code, that could automatically find changes that could be made to an existing autonomous system to achieve the desired result.

The core of the code is based on automatic differentiation, or “autodiff,” a programming tool that was developed within the machine learning community and was initially used to train neural networks. Autodiff is a technique that can quickly and efficiently “evaluate the derivative,” or sensitivity to change, of any parameter in a computer program. Dawson and Fan built on recent advances in autodiff programming to develop a general-purpose optimization tool for autonomous robotic systems.

“Our method automatically tells us how to take small steps from an initial design to a design that achieves our goals,” says Dawson. “We use autodiff to basically dig into the code that defines a simulator and figure out how to do this inversion automatically. »

Build better robots

The team tested their new tool on two separate autonomous robotic systems and showed that the tool rapidly improved the performance of each system in lab experiments, compared to conventional optimization methods.

The first system included a wheeled robot responsible for planning a path between two obstacles, based on the signals it received from two beacons placed at different locations. The team sought to find the optimal placement of beacons that would provide a clear path between obstacles.

They found that the new optimizer quickly reworked the robot simulation and identified the best beacon placement in five minutes, compared to 15 minutes for conventional methods.

The second system was more complex, comprising two wheeled robots working together to push a box to a target position. A simulation of this system included many more subsystems and parameters. Nevertheless, the team’s tool effectively identified the steps needed for the robots to achieve their goal, in an optimization process 20 times faster than conventional approaches.

“If your system has more parameters to optimize, our tool can do even better and can save a lot more time,” says Fan. “It’s essentially a combinatorial choice: as the number of parameters increases, the choices also increase, and our approach can reduce that in one fell swoop. »

The team has made the general optimizer available for download and plans to further refine the code to apply it to more complex systems, such as robots designed to interact and work alongside humans.

“Our goal is to empower people to build better robots,” says Dawson. “We’re providing a new building block to optimize their system, so they don’t have to start from scratch. »

This research was funded, in part, by the Defense Science and Technology Agency of Singapore and by IBM.

Summary of the paper: