A great challenge with today’s robots is that it takes a long time to design and fabricate new robots. We need to speed up the creation of robots.
Many different types of robots are available today, but each of these robots took many years to produce. The computation, mobility, and manipulation capabilities of robots are tightly coupled to the body of the robot—its hardware system. Since today’s robot bodies are fixed and difficult to extend, the capabilities of each robot are limited by its body. Fabricating new robots, add-on robotic modules, fixtures, or specialized tools to extend capabilities is not a real option, as the process of design, fabrication, assembly, and programming is long and cumbersome. We need the design and fabrication tools that will speed up the fabrication of robots. Imagine creating a robot compiler that takes as input the functional specification of the robot (for example “I want a robot to play chess with me”) and computes a design that meets the specification, a fabrication plan, and a custom programming environment for using the robot. Many tasks big and small could be automated by rapid design and fabrication of many different types of robots using such a robot compiler.
$ emacs myrobot.rbt
“I want a robot to play chess with me”
$ make myrobot
Parsing specification …done
Determining behaviors …done.
Generating mechanisms …done.
Assembling components …done.
Printing …done.
Success!
Our current solution to the robot compiler is a data-driven approach to design. Existing robot designs and supporting control algorithms that sit in a database are segmented and composed to create new robots. The user imagines a machine, say a duck robot or an ant robot and defines its behaviors (say a robot should pick up a piece and move it), 2) assemble mechanisms into an integrated design and 3) rapidly fabricates the device and its programming and control substrate.