  There is a growing need for computational tools to automatically design and
verify autonomous systems, especially complex robotic systems involving
perception, planning, control, and hardware in the autonomy stack.
Differentiable programming has recently emerged as powerful tool for modeling
and optimization. However, very few studies have been done to understand how
differentiable programming can be used for robust, certifiable end-to-end
design optimization. In this paper, we fill this gap by combining
differentiable programming for robot design optimization with a novel
statistical framework for certifying the robustness of optimized designs. Our
framework can conduct end-to-end optimization and robustness certification for
robotics systems, enabling simultaneous optimization of navigation, perception,
planning, control, and hardware subsystems.
  Using simulation and hardware experiments, we show how our tool can be used
to solve practical problems in robotics. First, we optimize sensor placements
for robot navigation (a design with 5 subsystems and 6 tunable parameters) in
under 5 minutes to achieve an 8.4x performance improvement compared to the
initial design. Second, we solve a multi-agent collaborative manipulation task
(3 subsystems and 454 parameters) in under an hour to achieve a 44% performance
improvement over the initial design. We find that differentiable programming
enables much faster (32% and 20x, respectively for each example) optimization
than approximate gradient methods. We certify the robustness of each design and
successfully deploy the optimized designs in hardware. An open-source
implementation is available at https://github.com/MIT-REALM/architect
