Evolve Soft Robot
Columbia University, NY November 2021 - December 2021
Description:
-
Built a physics simulator from scratch in MATLAB by creating mass and spring elements, damping, and friction law.
-
Defined a walking cubic soft robot that consists of multiple element cubes, with different properties and actuation patterns.
-
Defined a method to represent the arrangement of the element cubes as a genome for evolutionary algorithms.
-
Used an evolutionary algorithm to evolve the genome by running simulations, to maximize the velocity of the soft robot.
Skill Used:
-
MATLAB
-
Physics Simulation
-
Parallel Computing
-
Evolutionary Algorithm
Soft Robot after Evolution
Genome Representation and Element Cube
The soft robot is made with 4x4x4 element cubes. Each element cube is made by:
-
8 Masses on vertex
-
18 Springs on edges and diagonals.
-
Adjacent element cubes can share masses and springs.
The element cube has 3 types, represented by 0, 1, and 2:
-
0: Void (Invisible): No mass and spring.
-
1: Static (Green): Static Size, move passively.
-
2: Breathing (Yellow): Periodically expand and contract.
Static Cube
Breathing Cube
Genome representation: 3D array of integer 0, 1 and 2, where n is the side length:
Genome of a Soft Robot Individual
System Design
System Diagram of the Project
Evolution Process
Initial population:
-
Randomly generate 50 individual.
-
Evaluate their velocity.
-
Sort them by velocity.
Evolution Process of Each Iteration
Iterate to evolve:
-
Inherit and variate:
-
Randomly select 8 individual from the population.
-
Each 2 as parents to produce 1 child by crossover (4 children total).
-
Crossover: cut parents' genome into 3 pieces and interchange their second piece.
-
-
Mutate each child by randomly change a random digit of its genome.
-
-
Selection:
-
Evaluate 4 children's velocity at the same time using Parallel Computing Toolbox of MATLAB (since the computer we use has 4 cores).
-
Sort the children into the population by velocity.
-
Delete the worst 4 individual.
-