Biorobotics Laboratory BioRob
Using Bluetooth to Control a YaMoR Modular Robot
Semester Project
|
The Biologically Inspired Robotics Group (BIRG) of the Swiss Federal Institute of Technology in Lausanne (EPFL) is working on modular robotics. Computer simulations are mainly used but prototypes also exist. Most of them are controlled by a wired connection. This project aimed at finding how the wires could be replaced by a Bluetooth connection on the YaMoR robot units. Wireless communication allows better freedom of movements and ease of use. Although complete autonomous unit is the final aim, a centralised Java application is used to control every module.
Hardware
The
YaMoR units were designed by Elmar Dittrich who was in charge of the
mechanical aspects (motor, case, materials). Rico Moeckel then worked on the electronic parts (power supply, Xilinx FPGA and
Bluetooth boards), the control software in VHDL for pulse wide
modulation and the Bluetooth protocol. Despite the fact that a
Bluetooth support was available on each module, a real interface
between a computer and the modules was still missing. It was obviously
necessary to provide a direct wireless communication between the PC and
the robot. With low budget in mind, the solution based on Bluetooth had to be simple and easy to install. We were also in charge of ordering and assembling the rest of the modules. The goal was to mount seven units to form a robot in a piconet network before the end of the semester. We directly ordered additional components to reach a total of 20 units. |
Software
Another
point which had to be reevaluated was the software used to communicate
with the modules. Jean-Philippe Egger had written a Java application
called Java-Motion where the user could draw trajectories. Elmar
Dittrich slighty modified this application to fit with the modules. We
decided to write a new application from scratch using concepts already
present in Java-Motion but without its limitations. Our
application called Bluemove allows the control of an unlimited amount of units.
Trajectories can be linear or smooth and composed of an infinite set of
keys. Although it is used to control YaMoR units with Bluetooth,
Bluemove can easily be adapted to use other communication types and
modules. Basic features such as project saving and opening or console
messages are present. This application is written in Java and
currently works with Linux. However, it should run under other operating
systems. | |
Download
- Project report: report-final.pdf (2.5 MB)
- Project presentation: slides-final.pdf (0.5 MB)
- Bluemove: bluemove-1.0.tar.bz2 (1.1 MB)
- Bluemove Short Manual: manual.pdf (0.6 MB)
- Bluemove sources: bluemove-src-1.0.tar.bz2 (0.1 MB)
- A Bluemove video example: serpent-bluemove.avi
Modular robots examples
Here are some modular robots we created. Most of them were inspired from Elmar Dittrich work. At the time of the making of the videos, we only had two working modules at disposal. However we added two passive units to some modular robots and thus got interesting configurations.
2-standup
This modular robot starts on the side, stands up and then starts moving. |
2-pusher
This basic robot moves its tail upside down, this is somehow an inverted and simplified version of 2-standup |
-
2-pusher-1.avi
2-pusher-1.mpg
2-pusher-2.avi
2-pusher-2.mpg
2-pusher-3.avi
2-pusher-3.mpg
2-pusher-4.avi
2-pusher-4.mpg
2-pusher-5.avi
2-pusher-5.mpg
3-ben
The "Ben" is a kind of moving arch with two legs and a sliding motion. |
3-horse
This robot heavily uses a pendulum effect to move forward. A small modification of the frequency may increase the "horse" gait |
3-stickworm
A nice configuration with an aligned row of modules which can either move forward and backward in a lateral motion |
-
3-stickworm-1.avi
3-stickworm-1.mpg
3-stickworm-2.avi
3-stickworm-2.mpg
3-stickworm-3.avi
3-stickworm-3.mpg
3-stickworm-4.avi
3-stickworm-4.mpg
3-stickworm-5.avi
3-stickworm-5.mpg
4-trebuchet
The "Trebuchet" has an oscillating head. The name comes from the siege weapon used against castle and powered by gravity. |
- Archived student projects
- Alain Dysli
- Alexandre Tuleu
- Anurag Tripathi
- Ariane Pasquier
- Aïsha Hitz
- Barthélémy von Haller
- Benjamin Fankhauser
- Benoit Rat
- Bertrand Mesot
- Biljana Petreska
- Brian Jimenez
- Christian Lathion
- Christophe Richon
- Cédric Favre
- Daisy Lachat
- Daniel Marbach
- Daniel Marbach
- Elia Palme
- Elmar Dittrich
- Etienne Dysli
- Fabrizio Patuzzo
- Fritz Menzer
- Giorgio Brambilla
- Ivan Kviatkevitch
- Jean-Christophe Fillion-Robin
- Jean-Philippe Egger
- Jennifer Meinen
- Jesse van den Kieboom
- Jocelyne Lotfi
- Julia Jesse
- Julien Gagnet
- Julien Nicolas
- Julien Ruffin
- Jérôme Braure
- Jérôme Guerra
- Jérôme Maye
- Jérôme Maye
- Kevin Drapel & Cyril Jaquier
- Kevin Drapel & Cyril Jaquier
- Loïc Matthey
- Ludovic Righetti
- Lukas Benda
- Lukas Hohl
- Lukas Hohl
- Marc-Antoine Nüssli
- Martin Biehl
- Martin Riess
- Martin Rumo
- Mathieu Salzmann
- Matteo Thomas de Giacomi
- Matteo Thomas de Giacomi
- Michael Gerber
- Michel Ganguin
- Michel Yerly
- Mikaël Mayer
- Muhamed Mehmedinovic
- Neha Priyadarshini Garg
- Nicolas Delieutraz
- Panteleimon Zotos
- Pascal Cominoli
- Pascal Cominoli
- Patrick Amstutz
- Pedro Lopez Estepa
- Pierre-Arnaud Guyot
- Rafael Arco Arredondo
- Raphaël Haberer-Proust
- Rico Möckel
- Sacha Contantinescu
- Sandra Wieser
- Sarah Marthe
- Simon Blanchoud
- Simon Capern
- Simon Lépine
- Simon Ruffieux
- Simon Rutishauser
- Stephan Singh
- Stéphane Mojon
- Stéphane Mojon
- Sébastian Gay
- Vlad Trifa
- Yvan Bourquin