Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale

Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale (http://forum.roboitalia.com/index.php)
-   Progetto robot MODDI (forum chiuso) (http://forum.roboitalia.com/forumdisplay.php?f=62)
-   -   Motion controller (http://forum.roboitalia.com/showthread.php?t=2921)

astrobeed 28-08-2006 11.16.32

Motion controller (VB-MoCon)
 
1 Allegato(i)
Ecco un'anteprima di quello che sar√* il modulo controllo movimento, per il momento √® ancora uno schema provvisorio, devo rivedere diverse cose, ma in linea di massima ci siamo e il rendering rende bene l'idea.

chiccow 28-08-2006 16.39.15

Bello il disegno. Che programma usi?
Ma la base si dobbiamo farla noi, o esiste pronta?

calo 28-08-2006 17.10.03

nella figura non vedo il max485

astrobeed 28-08-2006 22.50.55

1 Allegato(i)
Citazione:

Orginalmente inviato da calo
nella figura non vedo il max485

Come ho detto era ancora uno schema provvisorio e incompleto, il nuovo rendering allegato invece è quasi definitivo.


X chiccow

Quell'immagine è un rendering ottenuto da un modello 3D della scheda.
Si ottiene tramite un apposito programma CAD per l'elettronica con aggiunta una speciale estensione grazie alla quale una volta sbrogliato il circuito stampato viene generata l'immagine 3D renderizzata.
Grazie a questa tecnica è possibile vedere in anteprima l'aspetto finale di una scheda.

AleTeck 28-08-2006 22.59.13

Astro.... quali sono le caratteritiche di questa scheda.... ha ben 4 pic :-|.... della serie 18Fxx.... ke deve fare?... mi spavneta :)

astrobeed 28-08-2006 23.20.08

Citazione:

Orginalmente inviato da AleTeck
Astro.... quali sono le caratteritiche di questa scheda.... ha ben 4 pic :-|.... della serie 18Fxx.... ke deve fare?... mi spavneta :)

L'ho gi√* detto almeno mille volte negli altri thread :)
Questa scheda permette di far muovere la base omnidirezionale tramite dei semplici comandi inviati sotto forma di stringhe ascii.
Tre processori servono per i pid controller, uno per ogni motore.
Il quarto processore gestisce i tre servi che sterzano le ruote, le comunicazioni via RS485 o seriale TTL, comanda in modo opportuno le tre ruote per eseguire i richiesti movimenti senza che l'utilizzatore debba sapere nulla di PWM, servi, pid o oltre diavolerie.
Se la base viene realizzata senza encoder sui motori questa scheda non serve, basta una normale RoboBoard, o similare, ovviamente le prestazioni ottenibili saranno nettamente inferiori.

calo 28-08-2006 23.46.13

Citazione:

Orginalmente inviato da astrobeed
.Il quarto processore gestisce i tre servi che sterzano le ruote, le comunicazioni via RS485 o seriale TTL, comanda in modo opportuno le tre ruote per eseguire i richiesti movimenti senza che l'utilizzatore debba sapere nulla di PWM, servi, pid o oltre diavolerie.

Vediamo se ho capito bene: i comandi ad "alto livello" tipo MOVE, RIGHT, LEFT, STOP e SPEED, potrebbero ad esempio essere inviati da remoto dall'utente alla scheda Epia (o sue simili) oppure gli stessi comandi far parte di un firmware sempre dell'Epia, vicolato a particolari stati della sensoristica. Dopo, sempre l'Epia, deve comandare la scheda che stai progettando (approposito, come la battezzi?) cio√® deve dare i riferimenti ai pid. Il dubbio sta qui: i riferimenti arrivano alla scheda anonima :) ancora ad alto livello (quindi la decodifica spetta alla scheda anonima), oppure prima di trasmettere, l'Epia converte i riferimenti negli opportuni duty cicle che la scheda effettivamente generer√* per pilotare il ponteH?

Spero di non aver raccontato cose frutto della mia immaginazione :)

astrobeed 29-08-2006 06.11.31

Citazione:

Orginalmente inviato da calo
sensoristica. Dopo, sempre l'Epia, deve comandare la scheda che stai progettando (approposito, come la battezzi?) cioè deve dare i
Spero di non aver raccontato cose frutto della mia immaginazione :)

Anche questa √® una cosa che ho gi√* detto e ridetto.
Cominciamo dal nome, ho deciso di battezzare il robot "VersaBot", contrazione di "Versatile Robot".
Tutte le schede appartenti a questo progetto avranno una VB davanti al nome e in questo caso è la "VB-MoCon", cioè "Versatile Robot Motion Controller".
La scheda accetta comandi di alto livello, cose tipo "M 100" che significa avanza alla velocit√* di 100 mm/s, i comandi sono inviati sotto forma di normale stringa ascii e non come codifica binaria.
Il set di comandi devo ancora definirlo, lo farò nel momento in cui inizio a scrivere il necessario software.
Vorrei che sia ben chiaro il concetto che questa scheda permette di controllare i movimenti della base omnidirezionale, che √® solo una delle componenti del robot, senza doversi preoccuparmi di quanto pwm devo dare per avanzare ad una certa velocit√*, oppure di quanto devo sterzare le ruote per fare una curva seguendo un arco con raggio 1 metro, ci pensa lei a fare tutto.
Ti dir√≤ di pi√Ļ la scheda sar√* in grado di eseguire autonomamente lo spostamento dal punto in cui si trova a una nuova destinazione semplicemente fornendogli distanza, direzione, orientamento finale e i desiderati parametri di moto (velocit√*, accelerazione).
Ovviamente la scheda non può sapere se ci sono ostacoli sul suo percorso, questa è una cosa che deve essere gestita esternamente alla VB-MoCon.

calo 29-08-2006 08.11.52

Sinceramente ero convinto che la VB-MoCon accettasse comandi di basso livello e non immaginavo minimamente che potesse addirittura gestire la risoluzione di una traiettoria punto-punto. Questo perch√® credevo che l'implementazione dei pid fosse gi√* molto onerora, quindi ogni altra features, (oltre i pid) sarebbe stata demandata all'Epia. Comunque ti credo sulla parola, perch√® certamente sai il fatto tuo, mentre io no :(

astrobeed 29-08-2006 09.24.26

Citazione:

Orginalmente inviato da calo
Sinceramente ero convinto che la VB-MoCon accettasse comandi di basso livello e non immaginavo minimamente che potesse addirittura gestire la risoluzione di una traiettoria punto-punto

La scheda potr√* anche accettare comandi di basso livello, cio√® potrai dare comandi diretti ai singoli motori /servi se proprio vuoi farlo.
Il 18F4520 serve proprio per gestire i comandi di alto livello e fare tutti i calcoli necessari.
La gestione dei tre servi per la sterzatura richiede pochissime risorse visto che possono essere gestiti in cascata, idem per il parser che deve funzionare solo quando riceve dei comandi.
Nel tempo libero, un buon 90-95%, il 18F4520 pu√≤ tranquillamente gestirsi tutti i calcoli necessari per ricavare gli angoli di sterzatura delle ruote, le velocit√*/distanze dei singoli pid, nonch√® determinare i movimenti da eseguire per raggiungere una nuova posizione.
Questo non significa che sia facile da fare, anzi tutt'altro, dovr√≤ spremere al massimo le possibilit√* del 18F4520 per fargli fare tutto, richieder√* una programmazione molto accurata con un'ottima pianificazione degli algoritmi e dei calcoli da eseguire molti dei quali sono trigonometrici.
Dimenticavo, il software per i PID, che gira sui 2431, l'ho realizzato gi√* da diverso tempo, √® in grado di gestire velocit√*, posizione e profili trapezoidali con grande precisione.
Per quanto riguarda il driver di potenza da usare va benissimo una coppia di miniponte H, comunque ho in programma di realizzare anche un'apposita scheda dedicata utilizzando tre LMD18200 (costosi, ma ottimi) invece di due L298 (economici, ma meno efficienti ).


Tutti gli orari sono GMT. Adesso sono le: 13.03.07.

Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.