Skip to content

Handrolled CPG Neural Net for Virtual Caterpillar-like Robot that Achieves Locomotion Automatically through Evolutionary Computation

Notifications You must be signed in to change notification settings

robmurrer/Creepture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Creepture

Virtual Caterpillar-like Robot that Achieves Locomotion Automatically through Evolutionary Computation

animation

A conference style paper describing this system can be found in PDF format.

Excerpts from Paper

Abstract

This paper presents an Evolutionary Computation approach to automatically realize locomotion with a modular virtual caterpillar-like robot called Creepture. Without any prior intelligence besides the number of modules available, a Genetic Algorithm (GA) optimizes a network of Central Pattern Generators that are connected to each joint in the Creepture. This was accomplished through a simulation layer in the fitness function of the GA. Successful locomotion in a desired direction was realized for Creeptures with up to 4 modules.

Introduction

Locomotion is an essential behavior of most organisms. How the locomotive patterns are acquired for efficient movement can be thought of intuitively as a trial-and-error feedback loop. A child learning to crawl will attempt many times and fail before they are able to move in a desired manner. Because this process can be thought of as an optimization, Evolutionary Computation (EC) and specifically Genetic Algorithms (GAs) have been used to create automatic locomotion [1] [2].

Through a network of Central Pattern Generators (CPGs), a locomotive pattern is created. These CPGs create non-linear oscillations that excite or inhibit muscle movement. The network of CPGs work in concert to create complex movement such as locomotion. The parameters of a CPG network increase exponentially as the network increases. Because the number of parameters can be so large, creating desired movements is increasing difficult as the number of modules increase.

The EC approach using a GA to optimize the CPG network was used to achieve semi-realistic caterpillar-like movement. A simulation layer was created using the Box2D physics engine and was used in the fitness function within the GA. The segments of the Creepture are similar to the M-TRAN modules created by Kimura et al [1]. These segments are fused together and locomotion was realized on Creeptures up to 4 segments.

Installing and Running

This is very rough and I am sure there are some dependencies and steps I have missed. If you do try and fail, feel free to message me on twitter @robmurrer or raise an issue here and I will do my best to step you through the process.

Requirements

Steps

  1. Download and unpack sources
  2. From a terminal program cd into the project directoy.
  3. If desired, edit src/main.cpp to modify the parameters of the system.
  4. Run the make box2d command.
  5. If the previous step was successful run the make command.
  6. The GA will then run. With default settings it will take about 30 minutes.
  7. When GA is complete a graph and testbed will be launched (on OS X)

note: For Linux users you must change the open command with xdg-open in order for the graph to display

About

Handrolled CPG Neural Net for Virtual Caterpillar-like Robot that Achieves Locomotion Automatically through Evolutionary Computation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages