Newsgroup: it.hobby.robotica
Titolo: Far andare dritto il robot

Ciao a tutti!
Sono sempre alle prese con il robot che (oramai da due anni buoni) sto
costruendo nel (poco) tempo libero.
Ora cammina (o, meglio, si muove su ruote) abbastanza bene, ma devo
trovare un modo per compensare la "deriva" creata dal ruotino dietro.
All'inizio pensavo che usando una bussola avrei potuto risolvere il mio
problema e ho anche comprato una CMP03 (che ha l'indubbio vantaggio di
interfacciarsi via I2C e di essere semplicissima da usare).
Purtroppo NON ha risolto il mio problema. Sia per la scarsa precisione
offerta (se ruoto il robot di 90° NON PUO' dirmi che e' ruotato di un
angolo a caso tra i 70° e il 120°!), sia per il fatto che risente molto
piu' di quanto pensassi delle interferenze magnetiche prodotte dalla
struttura metallica del robot e dai motori.
Un amico mi ha detto che dovrei usare una girobussola, ma non saprei dove
trovarne una elettronica interfacciabile al resto del robot.
Avevo anche pensato (per poi scartarla per motivi di fattibilita') di
usare un mouse di quelli "vecchi" (con la pallina). Ma, come ho detto, ho
dovuto scartarla in quanto e' difficile poi controllare il mouse da µC
(ATMega 128), anche ammettendo di riuscire a "far posto", sulla basetta,
per una seconda seriale.
Qualcuno sa darmi un buon consiglio su come risolvere il mio problema
(controllare la deriva) e/o trovare una girobussola?
Grazie a tutti e buon anno!
Luca Bertoncello
(
luca...@lucabert.de
)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Senza vedere come e' fatto e' difficile dare consigli, tuttavia se il
ruotino e' ben posizionato mi sembra difficile che possa introdurre
una deriva.
Sei sicuro che i motori girino tutti alla stessa velocita'?, hanno
degli encoder ? Hai implementato un PID decente?
ciao
S

 degli encoder ? Hai implementato un PID decente?
I motori girano esattamente alla stessa velocita'. Ho appena fatto
l'ennesima prova adesso...
Sono dei motori passo-passo.
Mi spieghi cos'e' un PID e come lo si implementa? Sono abbastanza un
principiante della robotica... :)
Ritengo comunque, visto che le ruote motrici si muovono sincrone, che ogni
tanto la ruota scivoli. E da qui il problema di controllare la deriva.
Grazie e buon 2008!


Ri-salve a tutti!
Oggi, complice una teglia di lasagne di dimensioni ciclopiche, ho
partorito la seguente idea...
Vorrei sapere il vostro parere e, in piu', chiedervi un consiglio su come
fare un po' di calcoli...
Ordunque:
Sul retro del Robot, solo appoggiati a terra ma badando bene di non far
portare loro del carico, metto due ruotine, ognuna collegata a una ruota
perforata di un mouse a rotella (con ovviamente l'elettronica del mouse).
Un ATmini o similare legge continuamente i valori di entrambe le ruotine,
contando i passi (sia in avanti che in indietro) delle due ruote e
calcolando in base a questi la velocita' di ruotamento delle ruotine
(intesa come step/secondo SEGNATI [ossia con la direzione]).
Quando i valori letti dalle due ruote sono uguali il robot sta andando
diritto (e fin qui...).
Una delle due si muove piu' velocemente dell'altra, allora il robot sta
girando (intenzionalmente o meno) nella direzione opposta alla ruota che
gira piu' veloce.
Calcolando (e qui avrei bisogno di un vostro aiuto, visto che le mie
conoscenze di geometria sono al lumicino) l'angolo di rotazione in base ai
valori delle due ruote, dovrei poter rimpiazzare la bussola con un sistema
che si non mi permette di stabilire la direzione in base a punti
cardinali, ma mi dovrebbe consentire di far andare avanti il robot senza
farlo sbandare e, magari, anche poter calcolare di quanto si e' girato
quando voglio farlo ruotare su se stesso...
Ora, la domanda e' questa: e' questa un'idea delle palle che puo'
funzionare solo dopo una teglia di lasagne oppure e' qualcosa di sensato
che puo' aiutarmi nel controllo del robot?
In piu', come ho detto, dovrei riuscire a capire come calcolare l'angolo
di sbandamento in base alle diverse velocita' delle due ruote...
Sapete darmi qualche informazione a riguardo (e' passato un po' di tempo
da quando siedevo sui banchi di scuola)?
Grazie


 principiante della robotica... :)
PID sta per PROPORZIONALE INTEGRATIVO DERIVATIVO (almeno, se non ricordo 
male...) ed č un algoritmo di retroazione per correggere l'errore in un 
sistema ad anello chiuso (sempre se non ricordo male)
In altre parole, tu rilevi tramite encoder la posizione della ruota e 
l'algoritmo PID ti permette di calcolare "come muovere" il motore in modo da 
rendere l'errore, tra posizione teorica e posizione reale(sbandamenti del 
ruotino, slittamenti della ruota, ecc..), minore possibile
Comunque prendi tutto con le molle ed aspettiamo il parere dei piů 
esperti...
Ciao