Sulla G25, che ha un processore con clock a 400 MHz, il frame rate è 25 fps come richiesto, sia osservandolo dal browser utilizzando la pagina che crea mjpeg streamer che da vlc, la latenza è circa 0.2 secondi, ed è questa che ho necessità di eliminare dato che vorrei utilizzare lo streaming video per la visione artificiale in remoto su un notebook.
Sia sul robot ottagonale per interni, quello che nel video dimostra la sua elevata precisione, che questo per esterno uso motoriduttori da 25 Watt con ingranaggi metallici, il rumore che producono è normale, viene sicuramente "esaltato" del microfono della telecamera e dall'ambiente chiuso, l'orecchio umano lo percepisce minore come intensità.
Il controllo velocità e posizione è ottenuto tramite encoder ad alta risoluzione, 256 cpr, in quadratura 4x e un complesso controllo tramite pid a triplo anello (velocità, posizione, accelerazione) tra loro correlati.
L'elettronica è composta come segue:
Due ponti H basati su LMD18200 dotati di feedback temperatura e corrente, il ponte è provvisto di ventola di raffreddamento comandata da una fan controller, la ventola si attiva solo se la temperatura supera i 55° con velocità variabile in funzione della temperatura, rimane accesa fissa alla massima velocità se la temperatura supera 90°.
MuIn dsNAV, utilizza un micro dsPIC33FJ128MC, come Motion Controller, legge gli encoder e gestisce i motori tramite pid in base a dei comandi provenienti dall'esterno, è in grado di accettare fino a 10 comandi per poi eseguirli in totale autonomia, i comandi sono del tipo "avanza/gira di tot mm a questa velocità con questa accelerazione", fornisce informazioni sulla distanza percorsa in base all'ultimo comando, velocità e accelerazioni correnti.
MuIn dsPIC, utilizza un micro dsPIC33FJ128GP, come Navigation Controller, utilizza le informazioni di posizione provenienti dalla motion controller (odometria) e pianifica il percorso (path planning) per raggiungere nuove coordinate, determina la posizione nell'ambiente (dead reckoning), esegue le correzioni di rotta per evitare eventuali ostacoli rilevati dai sensori, per il momento 5 ultrasuoni a fascio stretto.
MuIn dsPIC, dedicata alla gestione GPS e IMU, la IMU, a 9 d.o.f., fornisce informazioni sull'assetto del robot e fornisce il NORD magnetico compensato in pan e tilt fino a +/- 45°, inoltre fornisce informazioni sullo stato di moto o quiete del robot e una stima sulla sua velocità e angolo di sterzatura.
Il GPS fornisce la posizione assoluta del robot, è un modello da 10 Hz con risoluzione reale a 30 cm (da non confondersi con la precisione), l'altezza dal livello del mare e l'angolo del NORD reale, il processore usa queste informazioni per calcolare il vettore (distanza e angolo) tra due coordinate, la precisione del calcolo è +/-10 cm (matematica a 64 bit)
MEGA2560, gestisce i sensori di temperatura, uno per ogni motore e ponte H, i sensori di corrente delle batterie (quelli di assorbimento dei motori sono gestiti direttamente dalla motion controller), i sonar, raccoglie tutte le informazioni per la telemetria e le invia tramite un Xbee pro e alla G25 (da implementare), riceve le direttive operative dalla console di controllo tramite Xbee, in futuro da pagina web tramite la G25, gestisce il power up e il powe down di tutto il sistema tramite singoli stadi di alimentazione commutati tramite relè, in particolare l'accensione della G25 e il suo spegnimento effettivo dopo il "poweroff".
La 2560 si occupa anche della movimentazione dei tre servo della torretta pan/tilt/roll della telecamera, una Lifecame HD3000, si possono comandare da remoto per cambiare il punto di vista ed è possibile attivare il controllo automatico assetto della camera sfruttando i dati della IMU.
Aria G25, gestisce lo streaming video della camera, server web per le pagine dedicata alla telemetria e al controllo remoto (questa parte è ancora da implementare), mappatura ad alta risoluzione (10 cm di risoluzione) del territorio ed eventuali mappe precaricate da utilizzare per la navigazione, ci saranno sicuramente altre funzionalità che devo ancora definire, è da poco che ho la G25 e ci sto ancora "giocando" per capire bene quali sono i suoi limiti.
Tutte le schede comunicano tra loro tramite RS485, le due schede Motion Controller e Navigation Controller in realtà sono da vedersi come un blocco unico e inscindibile, comunicano tra loro tramite una UART dedicata a 1 Mbps e poi con il resto dell'elettronica tramite la 485, il master è la Navigation controller perché è lei che prende tutte le decisioni e necessità di tutte le informazioni.
Allego una foto della parte superiore del robot, dove si vede anche la torretta della telecamera, non è recente e come camera c'è una VX6000, non compatibile Linux, e manca il servo del roll.