AJRMC proprio così...
Molti di voi staranno ancora vagando nel forum in cerca di un esperienza stimolante o di qualcosa da sviluppare in comunità.
Ebbene oggi vi propongo un lavoro che potrebbe rivoluzionare il modo in cui l'utenza amatoriale costruisce rover ATV semplificando notevolmente la vita di questi e portando un progresso che nessuno in robotica amatoriale finora aveva fatto.
Prologo:
Per introdurvi l'argomento riporto una citazione di Guido dal suo sito:
Citazione:
Some years ago, when I started visiting some amateur “Explorer Robot” competitions, I was very disappointed in the robots frequently going around and around randomly, repeating the same path several times. Looking around on the Internet I found Johann Borenstein’s book, Where Am I? - Sensors And Methods For Mobile Robot Positioning. I was very impressed by odometry and dead reckoning. Most of the robots built by amateurs are based on differential steering system, allowing us to know the position coordinates of the robot at any given moment, simply knowing the space covered by each wheel periodically with enough precision.
|
Da questa citazione Guido ha studiato e creato un sistema di navigazione per robot basato su dspic che permette di implementare, a bordo di qualsiasi robot dotato di motori encoderizzati, un pid.
http://www.guiott.com/Rino/index.html
Non solo ha progettato una scheda basata su dspic ma ha anche scritto un firmware avanzato e ricco di funzionalità che abbinato alla sua console permette di controllare il movimento di un robot a due ruote con alta precisione di andamento nell'ambiente circostante.
http://www.guiott.com/Rino/RemoteCon...oteConsole.htm
Conseguenze:
IL sistema in questione è piaciuto molto ed è diventato un punto di riferimento per chiunque voglia implementare un pid sul proprio robot; da qui è stato reso compatibile con altre schede oltre alla dsnavcon
Per esempio:
La robocontroller di Mauro soligo
http://www.tuttoelettronica.org/?p=455
e la muin dsnav di robot italy
http://www.robot-italy.com/product_i...oducts_id=1564
Obiettivo:
Ora che vi ho introdotto l'argomento propongo l'obiettivo:
Evolvere la console di Guido implementando la funzionalità di controllo proporzionale tramite joystick e quella di controllo remoto client e server
Si arriverà ad ottenere quindi un sistema di controllo che permetterà, con un joystick per playstation usb, di controllare l'accelerazione e decelarazione del robot nonche farlo sterzare mentre viaggia senza doverlo fermare;
come guidare un automobilina rc con la sola variante che lo sterzo è differenziale come un carroarmato
Possibili conseguenze finali:
Chiunque deciderà di costruire un rover a 2 o 4 ruote e lo equipaggierà con una delle 3 schede sopracitate avrà già a disposizione un sistema di controllo avanzato per telecontrollare il robot via wifi o internet usando un joystick usb. La cosidettà pappa pronta diciamo
Documentazione e base:
La base da cui partiremo saranno i sorgenti in processing della console di Guido
http://www.guiott.com/Rino/RemoteCon...ConsoleSRC.zip
Ricordo che per aprirli e lavorarci dovrete usare processing studio:
http://processing.org/download/
Per chiarirvi meglio le idee ho preparato uno schema logico molto semplice che vi spiega l'intero sistema di funzionamento di un comune rover amatoriale con computer di bordo e anche del mio progetto rover
ELEKTRO 3
ATTENZIONE PICCOLA SPECIFICA:
anche se non rientra in questo singolo obiettivo posto, lo dico lo stesso per evitare discordanze.
Il computer a bordo del robot che fa da intermediario alla dsnav e il joystick ps3 non sono scelte casuali.
Il fatto di avere un computer intermediario direttamente a bordo rende la dsnav una delle tante periferiche che il joystick potra controllare; per esempio:
connettendo a un altra porta usb un braccio robotico con lo stesso programma e dallo stesso joystick si potrà usare una manopola per gestire la dsnav e un altra per gestire il braccio. Addirittura il progetto elektro prevede un arduino mega connessa via usb che scambi i dati dei 16 sensori a ultrasuoni con il sistema a bordo, di conseguenza premendo un tasto del joystick sempre dallo stesso programma si potrà attivare la navigazione autonoma.
Questo rende il sistema modulare e flessibile allo stesso tempo in quanto dallo stesso joystick remoto tramite wifi e computer di bordo si potranno attivare molteplici funzioni.
Ma rientriamo al vero obiettivo che riguarda solo il modulo di controllo motori
Quindi:
Andranno quindi creati due programmi:
UN server che girerà sul robot
Un client che girerà su un qualsiasi computer remoto e invierà i comandi al server.
Il tutto sempre in processing...
Per l'implementazione del joystick riporto la lista dei comandi accettati dal firmware dsnav facendo sempre i complimenti a Guido per il lavoro evoluto e perfetto che ha fatto
http://www.guiott.com/Rino/CommandDescr/Protocol.htm
e infine vi riporto tutta la documentazione processing che ci servirà per realizzare il tutto:
pro controll la libreria per implementare il joystick
http://creativecomputing.cc/p5libs/procontroll/
e network control client e server
http://processing.org/learning/libra...vasclient.html
http://processing.org/learning/libra...vasserver.html
Ora sfida è lanciata chi ci sta?