Technical Overview

This page gives an overview of technical points you may find interesting on our site.

You will find more detailed information in the developers section.

Mechanical design

Drive base

Status: new base used successfully for Eurobot 2011.

All our robots are built around a drive base. This base can be reused every years and is composed of:

  • a pair of motors with their large wheels to make the robot move,
  • smaller wheels mounted on optical coders to sense the robot movement.

The robot uses a differential drive. This means that there is right and left motors and both must be running at the same speed to follow a straight line.

The coder wheel are independents of the driving wheel. This enables the robot to detect loss of adherence of the driving wheels.

More details.


Digital boards

Motor control (asserv)

Status: Fully functional.

This board is able to control up to four motors. Two motors are aligned on the same axis to move the robot and this board will compute the current position (x, y, angle). We customise its code every year to match the robot needs, but we try to keep it as generic as possible.

Its main features are:

  • control up to 4 motors,
  • works with differential drive robot (compute position, angle/distance consign, go to position consign...),
  • position PID control,
  • acceleration limited speed,
  • blocking detection,
  • consign change at any time,
  • serial and i2c interface,
  • decode incremental encoder signals,
  • interface to power board: PWM/direction or SPI,
  • simulated motor models,
  • plenty room left for specific needs,
  • there is some room left in the CPLD with unused pins.

It is based on a AVR ATmega128 microcontroller, together with a XC9572 CPLD used to decode encoder signals.

asserv picture

More details.

IO (input-output)

IO board is based on an AVR (ATmega128) and mainly aims at providing an interface bridge to a lot of different sensors and actuators.

io picture

It is featured with :

  • SPI bus
  • I2C bus
  • GPIOs on HE10 connector (in bulk of 8)
  • GPIO on 3 point connectors (with VCC and GND on the connector)
  • 8 servomotor outputs
  • analog inputs
  • embedded flash to store trace of what happened during the match

The doc, the PCB, the sources : digital/io

Development board

Status: USB is working fine, need to clean XSVF, ethernet will not be implemented.

This development board is aimed at robotic development, providing an embedded easy to use development interface to the robot.

Its main features are:

  • embeddable, provide a single development port to access all your robot boards ;
  • single USB interface or Ethernet interface ;
  • program up to 4 AVR microcontrollers without unplugging any connector ;
  • access up to 4 serial ports (only one at a time), without unplugging any connector ;
  • program JTAG addressable devices using a XSVF file ;
  • provide a general purpose 8 bit port ;
  • easy to bootstrap using USB, you do not need a programmer to make this programmer.

It is based on a AVR AT90USB162 microcontroller, providing a cheap USB solution, and an optional Microchip ENC28J60 for ethernet access.

More details.


Status: Successfully used since Eurobot 2010.

This board is able to control two motors and including the power stage.

Its main features are:

  • control up to 2 motors,
  • differential drive and trajectory control,
  • position PID control,
  • acceleration limited speed,
  • blocking detection,
  • consign change at any time,
  • serial and i2c interface,
  • decode incremental encoder signals,
  • integrated power stage, 9 V to 28 V @ 5 A,
  • current measure by the microcontroler,
  • simulated motor models,
  • extra unused connections.

It is based on an AVR ATmega32 microcontroller, together with a XC9536 CPLD used to decode encoder signals. Power output is provided by two MC33887 integrated bridges.

More details.

Analog boards

Section to update and improve

Power Supply

Status: Successfully used for Eurobot 2012.

The power supply board provides the following outputs from a 12 V lead acid battery:

  • 5 V @ 3 A, for digital boards,
  • 6 V @ 3 A, supposed to be used for servo motors,
  • 24 V @ 1.2 A, for industrial sensors.

When an external power (between 8 V and 18 V) is plugged into the supply board, it is used to supply the robot instead of the battery. This external power is also used to charge the 12 V battery and another 24 V battery (used for high current actuators).

More details.


Nestor is an external power supply which aims at providing power to the robot when we are working on debugging it. At the same time, internal batteries are charged by the power supply board.


Motor power board aims at controling the motors. It has been designed to be robust and to be able to drive up to 15A under 30V on 2 channels.

It is based on an AVR which provides an interface to controling board, MOSFET driving, current limiting, and other protections.

The functionalities of this board are :

  • 2 channels
  • Vcc from 10V to 30V
  • up to 15A per channel
  • current limited (the threshold is settable by soft)
  • reduction of the current limit upon battery voltage drop (helps low batteries not to fall down)
  • thermal protection (thermal sensors embedded on the board)
  • break-before-make MOSFET commutation scheme

The webpage : Motor Power (MP) board

The docs, the PCB files, the sources : analog/motor-power-avr

Electronic Architecture

To be improved, schematic is from 2008.

More details.

Host software / tools

Robot simulator

Status: successfully used for Eurobot cup.

The robot simulator is useful to test programs before the robot is integrated.

Its main features are:

  • use the code running on the real robot;
  • interconnect several programs (from several boards and additional simulation tools);
  • KISS: Keep It Simple Stupid: we like simplicity and ease of development;
  • extensible: it is easy to make a new program based on the simulator to test a specific part;
  • reusable: for example, the interface can be reused to make a click-and-go robot remote control.

It is based on very low-level stubs in board programs, an interconnection bus and a set of python modules to build interfaces and environment simulation.

More details.