Skip to content

Technical description

Milan Jelisavcic edited this page Nov 8, 2018 · 5 revisions

Revolve contains:

  • classes for creating specifications of body parts
  • classes to build robot bodies and neural networks
  • world manager class that interacts with gazebo simulator (revolve.gazebo.manage.WorldManager class)
  • classes for crossover and mutator operations
  • utility functions (converter, logger)

The related library sdfbuilder.

Gazebo plugins

Revolve also comes with a number of Gazebo plugins to power the defined components in simulation. The RobotController C++ class is a solid basis for controlling a robot in a simple manner, providing default implementations of motor controllers and sensor readers with an interface over the body parts' inputs and outputs.

Robot Controlles

World Controlles


WorldManager communicates with gazebo using protobuf messages.

example (pausing the world):

manager = pygazebo.connect(address)
publisher = manager.advertise('/gazebo/default/world_control', 'gazebo.msgs.WorldControl')
publisher.wait_for_listener()

msg = pygazebo.msg.world_control_pb2.WorldControl()
msg.pause = True
publisher.publish(msg)

Tol-Revolve extends revolve for triangle-of-life experiments.

Tol-revolve contains:

  • World class extending revolve.gazebo.manage.WorldManager
  • Builder functions that use revolve.build.sdf.RobotBuilder to create an sdf object representing a robot.
  • logging functions
  • specifications of body parts

Robot brains

Of course you would like your robot to also have a brain. Revolve also ships with a specification for a simple neural network, with its interface based on a robot body if desired.

Revolve.Angle

The most complete, but opinionated part of Revolve is Angle, which is a framework that allows specification, generation and evolution of robots that fit within the defined body space and have a neural network as a brain. See the information in the revolve.angle folder for details.

TODO

Given a working Gazebo installation, Revolve can be compiled using cmake followed by make also. The easiest way to use the Python libraries right now is by using pip install -e /path/to/revolve. I'll update these instructions with more details as soon as I find the time.

_________________
/ Premature      \
| optimization   |
| is the root of |
| all evil.      |
|                |
\ -- D.E. Knuth  /
-----------------
    \   ^__^
     \  (oo)\_______
        (__)\       )\/\
            ||----w |
            ||     ||
Clone this wiki locally