Biorobotics Laboratory BioRob

Towards an improved framework for YaMoR

Semester Project
Summer 2005
Cyril Jaquier - Kévin Drapel
Supervisors: Professor Auke Ijspeert, Alessandro Crespi, Andres Upegui

The Biologically Inspired Robotics Group (BIRG) of the Swiss Federal Institute of Technology in Lausanne (EPFL) is working on modular robotics. We developed a Java application called Bluemove to remotely control the first version of the YaMoR modules using Bluetooth. The user can directly describe the position sent to the servos in a graphical manner. However, despite the fact that the user can drag the control points in a trajectory, he can only do that with a single curve at once. We tried to find new ways to improve the control via a scripting and plugins system with a graph interface. The user can then explore complex behaviors which were not possible with the first version of the application. Moreover, the commands can be mapped to the keyboard. As testing new robots can be a tedious job, we also worked on a 3D simulator that receives information from our Bluemove application and allows the user to quickly try various configurations in a virtual world.

Eve - The YaMoR simulator

Professor Ijspeert suggested that it would be convenient to have a simulator where one could test the trajectories drawn in Bluemove.

Previous works on YaMoR simulation were done by Yvan Bourquin and Daniel Marbach but they focused on evolution and exploration of new configurations. Interaction with the user was mainly restricted to setting initial parameters for the evolutionary algorithms.

Our simulator aims at filling the gap between the user and the virtual robot while it is moving. The current version of our simulator works with the same configuration during runtime (ie. no morphological evolution) but the way the modules are connected can be quickly changed to conduct a new simulation.

We used Irrlicht as the 3D engine for the simulator and ODE for the physics. Communication is done using XML-RPC.

Further improvements of Bluemove

Bluemove allows to draw trajectories for each unit. The user can change the keys positions while playing allowing a kind of real-time control of the modular robot. We are able to reproduce basic gaits or speed control as demonstrated on the serpent video. However, these manipulations are quite limited as it is only possible to move one trajectory key at a time.

The idea of plugins and real-time control is to have higher level functions which act on the whole curve or a set of curves. For example, the user could set an amplitude filter on a given trajectory. We can go a step further and change the amplitude parameter while playing the timelines. This parameter could be obtained from another curve output (coupled oscillators) or from an user input such as keyboard or mouse events.

With the combination of multiple filters, inputs, generators and outputs, it is now possible to control the movements of a modular robot in a very flexible way.