Skip to content

Triangle of Life experiments using the Revolve framework

Notifications You must be signed in to change notification settings

ci-group/tol-revolve

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Triangle of Life - Revolve (work in progress)

An implementation of the triangle of life using the Revolve robot evolution framework. It uses mostly the default components delivered by Revolve, and implements with it the body space of Robogen. Robots are generated in the Simulation Description Format to be simulated with Gazebo.

As with Revolve, the philosophy is to write only the parts that require high performance in C++, leaving the ability to write other pieces in a language of choice (because "if you don't require performance, why would you write C++?" - proper attribution for this quote will follow once I find out who said it). Gazebo provides a convenient plugin architecture and (publish / subscribe) communication framework with Protobuf messages that allows us to achieve just that.

Practically this means that this package provides the following:

  • An implementation of Revolve's default robot architecture using Robogen's body space
  • A genotype for these robots, along with a genotype => phenotype converter (relying heavily on Revolve)
  • A Gazebo world and world plugin, written in C++, that gathers relevant information and publishes it using Gazebo's communication channels. The idea here is to have the C++ plugin do some filtering to keep communication and analysis in Python to a minimum.
  • A Python server that basically manages the world - it keeps track of all the robots in it and communicates through Gazebo's channels to create new ones / destroy old ones. To do this might use the information provided by the world plugin and that published on other channels.

About

Triangle of Life experiments using the Revolve framework

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 85.0%
  • R 7.0%
  • C++ 4.0%
  • CMake 3.8%
  • Shell 0.2%