Evolving Dexterous Robots from Scratch
Organizations: Northwestern University
Abstract
Little is known about how to manually design agents capable of dexterous manipulation. Some design principles have been inferred from close examination of how animals manipulate objects, but these structures and behaviors have so far resisted biomimicry and may not be optimal for artificial machines. Here we evolve freeform robots to pick up, hold, rotate, and use diverse objects. Unlike other approaches to optimizing robot hands, we do not presuppose the presence, articulation, or geometry of any part of the body. Although familiar prehensile forms such as tails, beaks, paws and claws may emerge spontaneously under certain conditions--and while such conditions could be of interest to evolutionary biologists--de novo manipulator design can also reveal whole new solutions, overlooked or unknown structures which may be better suited for the task at hand. We use contrastive learning to create a highly searchable genetic embedding of design space, an autoregressive developmental model to decode designs, evolutionary strategies to find good designs, and reinforcement learning to train each evolved design. Winning designs were automatically converted into a manufacturable blueprint, printed, assembled and tested in the real world in a zero-shot manner. The results represent the state-of-the-art in evolutionary robotics in terms of performance, diversity and complexity.
Figures & tables
Appendix figures & tables32 assets
Supplementary material from the paper’s appendix.
Appendix
| Parameter | Range | Bins | Parameter | Range | Bins |
| Root hub | Appendage joint | ||||
| root hub aspect | 0.8 to 3.0 | 12 | appendage joint yaw bend | to rad | 32 |
| root hub ring fraction | 0.5 to 1.0 | 12 | appendage joint hinge axis | lateral or normal | 2 |
| root hub radius | 0.02 to 0.05 m | 12 | appendage joint pitch bend | to rad | 32 |
| root hub infill | 1.0 to 4.0 | 8 | appendage joint length | 0.03 to 0.06 m | 32 |
| Root spoke and web | Appendage segment | ||||
| Symbol | Meaning |
| , | position of the object, and its start position |
| point under the root at which the object is held | |
| distance of the object from its start position along the table, | |
| height of the object above its start position | |
| angle between the orientation of the object and the goal orientation | |
| rotation rate of the object about the task axis |
| Wooden Cube (134.5 g) | Rubber Cube (26.8 g) | Rubik’s Cube 3x (92.9 g) | Rubik’s Cube 4x (132.3 g) | Fabric Cube (16.1 g) | ||||||
| Design | ||||||||||
| LEAP (Multi-obj) | — | — | — | — | — | |||||
| LEAP (Cube-only) | — | |||||||||
| Ours (Tetradactyl) | ||||||||||
| Ours (Didactyl) | ||||||||||
| Tomato Soup Can (353.2 g) | Moon Ball (30.9 g) | Apple (364.6 g) | Orange (212.6 g) | Avocado (223.8 g) | ||||||
| Term | Equation | Weight |
| rotation toward goal | ||
| goal reached | ||
| steady rotation | ||
| object displacement | ||
| object drift | ||
| action magnitude |
| Term | Equation | Weight |
| approach | , before first contact | |
| contact | ||
| multiple contacts | at least two appendages touch the object | |
| lift | ||
| near the root | ||
| stable grasp | held, at least two contacts, and nearly at rest |
| Wooden Cube | Rubber Cube | Rubik’s Cube 3x | Rubik’s Cube 4x | Fabric Cube | Cube Toy | Lemonade Mix Box | Tennis Ball | Moon Ball | Orange | Avocado | Donut Toy |
| 10/10 | 10/10 | 8/10 | 8/10 | 10/10 | 7/10 | 10/10 | 6/10 | 5/10 | 9/10 | 5/10 | 4/10 |
| Water Can | Candle Jar | Pudding | Polygon Toy | Jam Jar | Energy Stick | Meat Can | Toy Bear | Disney Toy | Baby Bottle | Motor | Salt Container |
| 10/10 | 6/10 | 10/10 | 8/10 | 6/10 | 10/10 | 10/10 | 10/10 | 10/10 | 10/10 | 10/10 | 0/10 |
| Term | Equation | Weight |
| approach | , before first contact | |
| contact | ||
| multiple contacts | at least two appendages touch the bar | |
| stability † | , if at least two contacts | |
| stable grasp † | at least two contacts and | |
| joint torques |
| Term | Equation | Weight |
| new progress | ||
| new progress in contact | ||
| new progress, unclipped | ||
| new progress, squared | ||
| net progress | ||
| proximity |
| Term | Equation | Weight |
| Flip stage | ||
| progress toward goal | ||
| goal reached | ||
| steady rolling | ||
| rolling backward | ||
| Return stage | ||
| Term | Equation | Weight |
| grasp progress | , before release | |
| contact † | ||
| multiple contacts † | at least two appendages touch the handle | |
| hold ‡ | ||
| no slip ‡ | ||
| action smoothing |
| Model | Validity | Smoothness | ||||||
| App. acc. | Joint acc. | Valid | Recall@1 | Edit | Topology 10-NN acc. | Length 10-NN | Volume 10-NN | |
| Ours (2M) | 1.00 | 0.96 | 0.82 | 1.00 | 0.92 | 0.97 | 0.91 | |
| Ours (200k) | 1.00 | 0.84 | 0.65 | 1.00 | 0.76 | 0.96 | 0.90 | |
| w/o | 1.00 | 0.80 | 0.64 | 1.00 | 0.71 | 0.95 | 0.88 | |
| w/o | 1.00 | 0.95 | 0.67 | 0.03 | 0.59 | 0.82 | 0.73 | |
| VAE | 0.44 | 0.06 | 0.33 | 0.01 | 0.02 | 0.79 | 0.79 | |
| Layer | Description |
| Voxel input | |
| Stem | Conv, kernel size , stride 2, to , 32 channels, batch normalization, ReLU |
| Stage 1 | 2 ResBlock, downsample to , 64 channels |
| Stage 2 | 2 ResBlock, downsample to , 128 channels |
| Stage 3 | 2 ResBlock, downsample to , 256 channels |
| Stage 4 | 2 ResBlock, downsample to , 512 channels |
| Layer | Description |
| Input | , and the tokens predicted so far |
| Memory | Linear in: 32, out: (eight vectors) |
| Embedding | token embedding (137) + learned position embedding (368), 384 channels |
| Layers 1–4 | Transformer decoder layer: causal self-attention, attention to the eight vectors, feed-forward (1536, GELU); 8 heads, layer normalization before each part |
| Head | Linear in: 384, out: 137 |
| Output | logits of the next token: 137 |
| Parameter | Value |
| CMA-ES | |
| Population size | 32 |
| Initial step size ( ) | 0.25 |
| Fitness of Rejected Designs | |
| Failed to compile | |
| Motors do not fit | |
| Parameter | Range |
| Observation | |
| Joint position noise (per step) | 0 to 0.02 rad |
| Joint position offset (per episode) | 0.005 rad |
| Action | |
| Action noise (per step) | 0.05 to 0.1 |
| Action delay | 0 to 2 control steps |
| Parameter | Value |
| Parallel environments | 4096 |
| PPO iterations | 500 for rotate and flip, 200 otherwise |
| Steps per iteration | 32 |
| Policy and value network | GRU (256) + MLP (512, 256, 128), ELU |
| Learning rate | ( ), adaptive |
| Target KL divergence | 0.02 |
| Item | Cost (US) | Rotate | Rotate-4 | Pick | Hang | Retrieve |
| XL330-M288-T Actuator | $27.49 | 15 | 15 | 10 | 10 | 9 |
| FPX330-H101 Hinge Frame with Idler a | $2.82 | 15 | 15 | 10 | 10 | 9 |
| FPX330-S102 Base Frame (Radial) a | $2.50 | 7 | 7 | 10 | 5 | 1 |
| FPX330-S101 Side Frame (Lateral) a | $2.50 | 8 | 8 | 0 | 5 | 8 |
| Robot Cable-X3P 180 mm b | incl. | 15 | 15 | 10 | 10 | 9 |
| U2D2 USB Converter | $36.92 | 1 | 1 | 1 | 1 | 1 |
Robotic Manipulation
Robotic manipulation studies how robots perceive, plan, and control physical interactions to grasp, move, assemble, and use objects.
See all 1,685 papers