October 23, 2013

Architettura e comunicazione

Affinché il robot Ottobot possa ricevere le coordinate di destinazione, in modo tale da giungere alla destinazione desiderata. Queste operazioni sono gestite dalla comunicazione della scheda Navigation Board e la Motion control.

ARCHITETTURA

Ottobot collegamenti

La comunicazione tra le due schede avviene tramite protocollo SPI, che permette di condividere le informazioni della memoria tra entrambe le schede. La navigation board ed il modulo radio XBee la comunicazione tramite protocollo seriale.

L'alimentazione giunge dalle batterie e viene distribuita, una volta regolata dalla Reg-Board alle varie schede, mentre giunge direttamente ai motori attraverso l'H-bridge.
La figura precedente rimane esplicativa sull'architettura generale del robot.

TASK MANAGER

Affinché tutte le operazioni di controllo e pianificazione del robot possano funzionare al meglio, è stato implementato uno scheduler sul microcontrollore che permette di pianificare le varie operazioni da eseguire nell'intervallo disponibile dalla CPU del microcontrollore.

Ottobot round robin

Le funzioni sono schedulate in ordine di priorità:

  1. Elaborazione PID
  2. Calcolo odometria
  3. Elaborazione Regolazione cartesiana
  4. Invio dati su porta seriale
Ottobot scheduler

In contemporanea a queste operazioni schedulate, il microcontrollore deve gestire delle interruzioni sincrone ed asincrone che vengono inviate dalle varie periferiche interne del microcontrollore. Gli interrupt provenienti dalle periferiche sono:

  • DMA0 - Trasmissione seriale - asincrona
  • DMA1 - Acquisizione ADC - sincrona ogni 100ms
  • InputCapture 1 - asincrona
  • InputCapture 2 - asincrona
  • Timer 1 - Timer di sistema -  sincrona ogni 1ms
  • Timer 2 - Timer PWM - sincrona ogni Xms
  • Acquisizione seriale - asincrona

COMUNICAZIONE

Ottobot comunicazione
Il sistema principale che il robot utilizza per trasmettere la telemetria e ricevere i comandi di controllo e di gestione è composto da due sotto-sistemi: una macchina a stati finiti (nella figura successiva) che gestisce il pacchetto ricevuto ed un interprete che esegue l’operazione richiesta.

La struttura del pacchetto è definita nel modo seguente:

|1| 2 |  3  |4...     N-1|  N  |
|#|CMD| LNG |dati...  ...| CKS |
  • Header del messaggio
  • Comando di controllo
  • LNG = Numero di dati contenuti nel pacchetto
  • Dati del messaggio
  • Contenuto del messaggio
  • N. CeckSum di chiusura

Una volta verificata la corretta ricezione del pacchetto per mezzo del checksum posto alla fine del pacchetto, il messaggio decodificato viene inviato ad un interprete che esegue l’ordine ricevuto.

Copyright © 2013. All Rights Reserved.

Leave a Reply