ICRS Eurobot Team 2013/Specifications
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
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.
Software Structure
Both modules will run the mbed rtos and have various threads running.
Main Module
Co-Processor
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
Interrupts
- Sonar pulse recieved
- IR demodulated baseband signal edge
Perhaps:
- 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
- probably a A4988
- FSK Radio module
- 5V regulator