  Recent advances in 3D printing and manufacturing of miniaturized robotic
hardware and computing are paving the way to build inexpensive and disposable
robots. This will have a large impact on several applications including
scientific discovery (e.g., hurricane monitoring), search-and-rescue (e.g.,
operation in confined spaces), and entertainment (e.g., nano drones). The need
for inexpensive and task-specific robots clashes with the current practice,
where human experts are in charge of designing hardware and software aspects of
the robotic platform. This makes the robot design process expensive and
time-consuming, and ultimately unsuitable for small-volumes low-cost
applications. This paper considers the computational robot co-design problem,
which aims to create an automatic algorithm that selects the best robotic
modules (sensing, actuation, computing) in order to maximize the performance on
a task, while satisfying given specifications (e.g., maximum cost of the
resulting design). We propose a binary optimization formulation of the
co-design problem and show that such formulation generalizes previous work
based on strong modeling assumptions. We show that the proposed formulation can
solve relatively large co-design problems in seconds and with minimal human
intervention. We demonstrate the proposed approach in two applications: the
co-design of an autonomous drone racing platform and the co-design of a
multi-robot system.
