top of page

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

GitHub-Mark-64px.png

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:

soft robot genome.PNG

Genome of a Soft Robot Individual

System Design

soft robot system.png

System Diagram of the Project

Evolution Process

Initial population:

  • Randomly generate 50 individual.

  • Evaluate their velocity.

  • Sort them by velocity.

2.PNG

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.

Result

dot 50-1000.png
diversity 50-1000.png

Contact information

(347) 825-6066

  • LinkedIn

Thanks for submitting!

bottom of page