ICRS Eurobot Team 2013/Specifications

From Imperial College Robotics Society
Jump to: navigation, search

This is the Eurobot main specification We will split the electronics into two subsystems, the Main module, and the co-processor module. See the below Archetectural Overveiw, and the following detailed specification. Template:TOC right

Architecture overview

Logical module diagram for the first robot:


Note: main processor and coprocessor are different physical microcontrollers.

[1] Main processor

The central module running on the main mbed microcontroller.

[2] Coprocessor

The central module of the coprocessor mbed microcontroller. It will perform all sensor processing and estimation (Kalman filter). The only thing that needs to be sent to the main processor is a queue of current robot position estimates (x,y,theta) from the Kalman thread.

[3] UI (User interface)

This module is responsible for communicating debug information to the computer station. For example: AI decisions and state, navigation information.

  • runs as a thread on the main processor

[3b] Coprocessor UI (not on the block diagram at the moment)

Sending coprocessor debug information to the computer station. For example: sensor readings, Kalman's current state (last year we had Matlab UI that drew the arena, robot's idea of its position and the uncertainty ellipse around that).

  • runs as a thread on the coprocessor

[4] AI (Artificial intelligence)

The module responsible for task decisions, e.g. where we need to go and when to operate the arm for the candle task. Can also do more complicated pathfinding (than direct point to point) if there is extra development effort.

  • runs as a thread on the main processor

[5] Control

Takes the trajectory from the navigation and does the actual motor control.

  • runs as a thread on the main processor

[6] Navigation

Takes the current position estimate from Kalman and the target position from AI and calculates what the trajectory needs to be.

  • runs as a thread on the main processor

[7] Motors

Physical motors doing the actuation.

[8] Sonar

Communicates to the beacons and does the sonar pulse timing.

  • runs as a thread on the coprocessor

[9] IR

[10] Kalman

[11] Wheel encoders

Mechanical Design Specificaton

Initial Prototype

For the initial prototype to be useful it will require:

  • Tractor style wheelchair drive
  • Encoder Rollers
  • A sonar/IR reciever turret

Final Version

  • As above, but additionally will have a robotic arm capable of:
    • Extending and retracting
    • Operating at two height levels
    • Will grip and push down candleballs

System Design Specification

This involves the electronics and the software specifications. The system will be divided up in two hardware modules, the main processor and the estimation co-processor.

Shared Specification

Software Structure

Both modules will run the mbed rtos and have various threads running.

Main Module


The Co-Processor is responsible for sensor data acquisition and runs a Kalman filter to fuse the sensor readings into a amalgamated state estimate. It will feed this state estimate to the main processor over a serial data link.

Software Structure

Several threads will run on an RTOS, including a Kalman predict and a Kalman update loop.

  • The predict loop needs to run at a high priority at defined intervals to maintain a consistent state estimate. It will use the encoder readings for its calculations.
  • The Update loop will process any other incoming measurements (IR and Sonar).
  • The sonar triggering system will be different for the master and any slaves:
    • For the master: triggering of the sonar through a message over FSK needs to be scheduled at a regular interval
    • For the slave: maintain an interrupt on the radio module


  • Sonar pulse recieved
  • IR demodulated baseband signal edge


  • Serial buffer drained
  • For master: FSK buffer drained

Electronics hardware

The Sensors are wired up to the mbed as follows:

  • Sonar modules: Each sonar module requires a single digital input pin to attach an interrupt to (6 modules)
    • RFSRF05
  • Radio module: SPI (with digital pin chip select)
    • RF12B
  • Encoders: to be decided
  • IR stepper: step: a digital output (direction will be hardwired)
    • Bipolar stepper
  • IR receiver: digital input

On the breadboard/pcb we will have the following modules:

  • an Mbed
  • stepper driver
  • FSK Radio module
  • 5V regulator