spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Competizioni robotiche > Robot Explorer

Rispondi
 
Strumenti discussione Modalitŗ† visualizzazioe
  #1  
Vecchio 29-08-2006, 19.49.22
L'avatar di Spinnaker
Spinnaker Spinnaker non è collegato
Robottaro senior
 
Data registrazione: 16-01-2006
Residenza: Pc & Pr
Etŗ†: 33
Messaggi: 52
Potenza reputazione: 54
Spinnaker E' per ora ancora un mistero
Invia un messaggio via ICQ a Spinnaker
Predefinito Progetto: X-1E

Salve a tutti, volevo proporre un progetto a cui sto lavorando da qualche settimana a tutta la comunit√*. Se qualcuno tra voi trova l'idea interessante sono in cerca di collaboratori...

Vi spiego la mia idea.
Il rover X-1E (X-1 Explorer) è un rover costruito sul telaio e la meccanica di un automodello R\C con sistema differenziale per il 4WD.
In generale l'X-1E dovr√* navigare in modalit√* automatica oppure manuale attraverso i comandi impartiti da un computer remoto, acquisire informazioni ambientali (da definire) e trasmetterle via radio ad un computer di controllo.
In particolare, il rover operante in modalit√* automatica, dovr√* considerare il livello di potenza della trasmissione radio prima di inviare dati e se questa non fosse soddisfacente salvare i dati acquisiti su memoria non volatile e trasmettere i dati da posizioni migliori.
Per il rilevamento ostacoli l'X-1E utilizzer√* un sonar centrale e due sensori IR laterali.
Il rover sar√* equipaggiato con una scheda per la navigazione inerziale e l'invio dei dati di telemetria.
La parte di controllo dovrebbe essere affidata ad un OOPic-R.

Attualmente l'X-1E è completo per quanto riguarda la parte meccanica e l'installazione dei sensori per il rilevamento ostacoli. L'hardware di controllo è stato posizionato per eseguire dei test ma non ancora installato definitivamente. La scheda per la navigazione inerziale è completa, il software di controllo della navigazione è al momento utilizzato solo per riscontro dati in telemetria.

Nel dettaglio le componenti utilizzate dal X-1E sono le seguenti:

OOPic-R - Microcontrollore centrale
SRF08 - Sonar centrale per rilevamento ostacoli
GP2D15 - IR sinistro per rilevamento ostacoli
GP2D15 - IR destro per rilevamento ostacoli
CM02 - Modulo per trasmissione dati di telemetria
CMPS03 - Bussola elettronica per navigazione
DE-ACC2G - Sensore di accelerazione
Tilt Sensor Sharp - Sensore d'inclinazione
Modulo radio per controllo da telecomando

Attualmente sto iniziando a sviluppare il software di controllo, prossimamente metterò una pagina web contenente nel dettaglio il progetto del rover e dei suoi sistemi.
Se qualcuno fosse interessato a collaborare nel progetto...oppure qualche dibattito su soluzioni tecniche...mi farebbe piacere discuterne con voi.

Ciao a tutti.
Rispondi citando
  #2  
Vecchio 30-08-2006, 23.22.43
L'avatar di R2D2
R2D2 R2D2 non è collegato
Administrator
 
Data registrazione: 05-12-2002
Residenza: Milano - Corsico
Messaggi: 746
Potenza reputazione: 79
R2D2 E' per ora ancora un mistero
Predefinito

Ciao,
sono incuriosito dal sistema di guida inerziale e di telemetria.
Mi dai qualche info in piu' ?
Rispondi citando
  #3  
Vecchio 31-08-2006, 11.47.46
L'avatar di Spinnaker
Spinnaker Spinnaker non è collegato
Robottaro senior
 
Data registrazione: 16-01-2006
Residenza: Pc & Pr
Etŗ†: 33
Messaggi: 52
Potenza reputazione: 54
Spinnaker E' per ora ancora un mistero
Invia un messaggio via ICQ a Spinnaker
Predefinito

Ciao, certo provo a fare una descrizione (sto preparando una pagina web per il progetto della sola scheda).

La scheda di navigazione inerziale citata √® in realt√* un progetto che sto portando avanti per un corso in Universit√*. Il principio di funzionamento √® quello di un INS (Inertial Navigation System) ma ripensato completamente in digitale.
Il funzionamento comprende un sensore (il DE-ACCM2g) per misurare l'accelerazione sugli assi X e Y, un sensore per misurare l'inclinazione relativa al suolo sui 4 lati (Tilt Sensor Sharp) e un sensore di posizione (CMPS03).
Un microcontrollore Microchip PIC 16F876A gestisce il campionamento e la conversione A\D dei segnali e li salva in una struttura dati nella EEPROM interna. I dati sono disponibili in output su un display LCD integrato sulla scheda e via RS232.
Un algoritmo (in fase di sviluppo) elabora le informazioni salvate in EEPROM per determinare in base al tempo la posizione, la velocit√* e l'inclinazione.
L'idea alla base dell'algoritmo è: "Se so dove sono ora e come mi sto muovendo saprò dove sarò tra x secondi", se i dati inerziali cambiano viene ricalcolata la nuova posizione.

Per quanto riguarda la telemetria i dati dei sensori di bordo del rover vengono inviati via radio al computer di controllo che salva i dati in un file di testo stile log. Per esempio vengono registrati i dati relativi alla tensione della batteria, la potenza del segnale radio, la distanza letta dal sonar e la posizione del rover.
Sto cercando di sviluppare un piccolo software con JAVA per avere i dati in "real-time". Il problema principale è dovuto al fatto che il modulo CM02 comunica si in via seriale ma le funzioni di accesso al modulo sono per il momento solo in Visual C++. Io vorrei poter utilizzare il tutto da Unix.

Se a qualcuno interessa sono apertissimo a collaborazioni.
Anche solo per il software di controllo della scheda di navigazione inerziale oppure per quello della telemetria.

Ciao a tutti.
Rispondi citando
  #4  
Vecchio 02-09-2006, 10.52.42
L'avatar di R2D2
R2D2 R2D2 non è collegato
Administrator
 
Data registrazione: 05-12-2002
Residenza: Milano - Corsico
Messaggi: 746
Potenza reputazione: 79
R2D2 E' per ora ancora un mistero
Predefinito

Il sistema di guida inerziale mi interessa. Se vuoi confrontarti o hai bisogno di aiuto (se mai posso esserlo) chiedi pure.

Vorrei chiederti un paio di dettagli in piu'. Per prima cosa vorrei sapere qual'e' la frequenza di campionamento di tutti i parametri. Seconda cosa (che mi interessa perche' ho lo stesso problema ) e' come fai a gestire la concorrenza di accesso alla memoria da parte del pic e dal sistema di remotizzazione dei dati.

In questi gironi sto' studiando stage/player per implementare un controllo di robot in grado di poterlo simulare.
Lo scopo e' molto semplice: Poter dare la possibilita' a chi inizia (o a chi si diverte maggiormente a sviluppare algoritmi) di poter aver a disposizione un robot virtuale su cui fare esperienza di programmazione.

Bye
Rispondi citando
  #5  
Vecchio 04-09-2006, 10.31.39
L'avatar di Spinnaker
Spinnaker Spinnaker non è collegato
Robottaro senior
 
Data registrazione: 16-01-2006
Residenza: Pc & Pr
Etŗ†: 33
Messaggi: 52
Potenza reputazione: 54
Spinnaker E' per ora ancora un mistero
Invia un messaggio via ICQ a Spinnaker
Predefinito

Ciao, ma certo un aiuto è sempre molto gradito
Se vuoi possiamo sentirci via email oppure continuare quì sul forum. Per me non c'è problema, comunque ti lascio in pm il mio indirizzo email.

Per quanto riguarda il discorso del campionamento, ci sto lavorando perchè mi è sorto qualche problemino. Devo controllare i tempi corretti di acquisizione dati dei sensori e il tempo impiegato dal convertitore A\D del pic per le diverse grandezze.
Attualmente la configurazione della scheda porta il segnale analogico del sensore di accelerazione e quello di inclinazione direttamente all'ingresso specifico del A\D sul pic, mentre il sensore di posizione è collegato tramite bus I2C (l'alternativa sarebbe il PWM).

Appena ho un attimo libero vedo di mandarti il materiale che ho raccolto durante lo sviluppo e il dettaglio della scheda.

Ciao
Rispondi citando
  #6  
Vecchio 04-09-2006, 22.08.58
L'avatar di Spinnaker
Spinnaker Spinnaker non è collegato
Robottaro senior
 
Data registrazione: 16-01-2006
Residenza: Pc & Pr
Etŗ†: 33
Messaggi: 52
Potenza reputazione: 54
Spinnaker E' per ora ancora un mistero
Invia un messaggio via ICQ a Spinnaker
Post

Salve a tutti, in accordo con R2D2 si è pensato di portare avanti lo sviluppo della scheda di navigazione inerziale quì sul forum.

Una definizione "tecnica" di un INS è la seguente:

Funzionamento di un sistema INS

Il sistema di navigazione inerziale, o INS (Inertial Navigation System) √® un sistema completamente indipendente (self-contained), capace di fornire rotte ortodromiche fra due qualunque punti della Terra senza la necessita di comunicare in alcun modo con alcuna fonte di informazioni esterna. I vantaggi tattici e strategici di un sistema di navigazione 'self-contained' sono rilevanti: esso pu√≤ funzionare anche in caso di eventuale malfunzionamento di tutte le stazioni di radionavigazione a terra. Inoltre un sistema indipendente √® in grado di funzionare in qualunque parte del mondo, e la precisione di cui √® capace √® funzione diretta della tecnologia impiegata. La precisione del sistema, oltre che dalla presenza di un calcolatore sofisticato, √® dovuta al fatto che le stime dei valori di velocit√* e direzione con cui si muove, sono mantenute costantemente aggiornate dalla capacit√* di avvertire le accelerazioni, cio√® le variazioni che la velocit√* e la direzione subiscono nell'unit√* di tempo. Grazie al continuo aggiornamento dei valori di velocit√* e direzione, il computer √® in grado di stimare la posizione presente, nonch√© di effettuare proiezioni delle posizioni future. In altre parole, durante il funzionamento, l'INS adotta la logica seguente: "Se so dove mi trovo ora, e tengo conto di ogni movimento in qualunque direzione dal punto di partenza in avanti, sapr√≤ sempre dove mi trovo dopo quel punto".

Ora l'idea di base sarebbe quella di sviluppare un sistema simile completamente digitale.

Il vero problema da considerare √® dovuto al sensore di posizione utilizzato (CMPS03) che in realt√* non rileva esattamente la posizione ma stima l'intensit√* del campo magnetico nel punto. Utilizzando per√≤ alcune approssimazioni √® possibile trovare un algoritmo soddisfacente per stimare la posizione in gradi rispetto al nord magnetico. Per la documentazione tecnica sul CMPS03 fate riferimento qu√¨.

Il sensore utilizzato per misurare l'accelerazione √® il DE-ACCM2G, il suo funzionamento √® abbastanza semplice, ha due uscite analogiche proporzionali all'intensit√* dell'accelerazione registrata. Funziona sugli assi X e Y. Per la documentazione tecnica potete fare riferimento qu√¨.

Il sensore utilizzato per misurare l'inclinazione laterale (sui quattro lati) è il Tilt Sensor di Sharp. Questo piccolissimo sensore è in grado di emettere un segnale analogico se l'inclinazione rilevata supera un determinato valore preimpostato. Attualmente lo sto studiando perchè alcune cose non mi sono molto chiare, se qualcuno tra voi avesse qualche informazione interessante...leggerò mooolto volentieri . Per la documentazione tecnica potete fare riferimento quì.

Il display LCD utilizzato per visualizzare i dati è un comune display a cristalli liquidi da 16x2. Il problema che sto cercando di risolvere è dovuto al fatto che servono parecchie line di I\O per utilizzarlo e il PIC che devo utilizzare (16F876A), considerando quelle dedicate ai sensori, non ne ha avanzate molte. Sto cercando di ottimizzare le configurazioni dei vari PORT.

Per avere un'interfaccia di comunicazione con dispositivi esterni il segnale RS232 è dato da un comune MAX232. L'idea sarebbe quella di avere i dati rilevati sia in output sull'LCD che su seriale. Questo perchè via RS232 è possibile inviare i dati ad altri sistemi per un'ulteriore utilizzo (p.e. controllo motori) oppure nel caso di un utilizzo diverso della scheda su di un terminale.

Appena risolvo questi problemini faccio sapere.

Ciao a tutti.
Rispondi citando
  #7  
Vecchio 05-09-2006, 06.25.36
L'avatar di astrobeed
astrobeed astrobeed non è collegato
Robottaro sostenitore
 
Data registrazione: 18-03-2004
Residenza: Roma
Etŗ†: 59
Messaggi: 3,377
Potenza reputazione: 345
astrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da Spinnaker
da considerare √® dovuto al sensore di posizione utilizzato (CMPS03) che in realt√* non rileva esattamente la posizione ma stima l'intensit√* del campo magnetico nel punto. Utilizzando per√≤ alcune approssimazioni √® possibile trovare un algoritmo soddisfacente per stimare la posizione in gradi rispetto al nord magnetico.
Puoi solo stimare l'orientamento verso un punto prefissato dell'ambiente in cui ti trovi.
Le bussole elettroniche sono fortemente influenzate dai campi magnetici normalmente presenti in una casa, esempio pratico se si accende il motore del frigorifero la tua bussola devia di qualche grado, oppure se passi vicino ai fili della 220 la bussola da i numeri (campo flottante a 50 Hz).
Per non parlare dei disturbi/errori dati dagli stessi motori del robot, esistono bussole elettroniche, basate su fluxgate, che sono abbastanza insensibili a queste cose ma sono dispositivi che costano diverse centinaia di Euro.
Tra parentesi i veri INS non usano le bussole ma dei giroscopi per sapere la rotazione sugli assi, un INS 2D minimale dovrebbe essere composta da almeno un accelerometro a due assi (X,Y) messo in piano, un giroscopio e un inclinometro per correggere le accelerazioni in base all'assetto.

Citazione:
il sensore utilizzato per misurare l'inclinazione laterale (sui quattro lati) è il Tilt Sensor di Sharp. Questo piccolissimo sensore è in grado di emettere un segnale analogico se l'inclinazione rilevata supera un determinato valore preimpostato. Attualmente lo sto studiando perchè alcune cose non mi sono molto chiare, se qualcuno tra voi avesse qualche informazione
Con questo non ci fai nulla, √® solo un sensore che ti dice se l'inclinazione supera un certo limite, mi pare 5¬į, ed √® digitale e non analogico, in pratica √® un sensore di bolla e non un inclinometro.
Del resto il nome stesso del componente dice tutto "Photointerrupter for detecting tilt direction", cioè "foto interruttore che rivela la direzione di inclinazione", non l'angolo di inclinazione.
Per sapere l'angolo di inclinazione del robot, vitale per l'INS, serve un vero inclinometro a due assi, si pu√≤ realizzare usando un doppio accelerometro X,Y montato in piedi e inclinato a 45¬į, in questo modo grazie alla lettura differenziale cancelli le accelerazioni dovute al movimento e ti rimane solo l'effetto dovuto all'accelerazione gravitazionale da cui ricavi l'inclinazione reale.
Piccolo dettaglio supplementare, dall'inclinometro realizzato con il doppio accelerometro ricavi anche l'accelerazione sul relativo piano perchè è il valore differenziale sottratto per ottenere l'accelerazione gravitazionale.
Alla fine occorrono solo due accelerometri a doppio asse per ricavare sia le accelerazioni che le inclinazioni sul piano X,Y.
__________________
Bye
Rispondi citando
  #8  
Vecchio 05-09-2006, 11.18.03
L'avatar di Spinnaker
Spinnaker Spinnaker non è collegato
Robottaro senior
 
Data registrazione: 16-01-2006
Residenza: Pc & Pr
Etŗ†: 33
Messaggi: 52
Potenza reputazione: 54
Spinnaker E' per ora ancora un mistero
Invia un messaggio via ICQ a Spinnaker
Predefinito

Eh si in effetti è vero il Tilt Sensor non serve proprio per lo scopo...c'era qualcosa che non mi tornava, grazie.

Per il CMPS03 avevo gi√* considerato i problemi, per√≤ calcolando la resa prezzo-prestazioni non √® poi cos√¨ male. Con il software di test i valori di posizione ritornati non sono poi cos√¨ sballati, una certa imprecisione c'√®, ma direi che potrebbe essere considerata accettabile per applicazioni hobbistiche.
Rispondi citando
  #9  
Vecchio 05-09-2006, 13.44.30
L'avatar di astrobeed
astrobeed astrobeed non è collegato
Robottaro sostenitore
 
Data registrazione: 18-03-2004
Residenza: Roma
Etŗ†: 59
Messaggi: 3,377
Potenza reputazione: 345
astrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua famaastrobeed La sua reputazione Ť oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da Spinnaker
Per il CMPS03 avevo gi√* considerato i problemi, per√≤ calcolando la resa prezzo-prestazioni non √® poi cos√¨ male. Con il software di test i valori di posizione ritornati non sono poi cos√¨ sballati, una certa imprecisione c'√®, ma direi che potrebbe essere considerata accettabile per applicazioni hobbisti
Hai provato ad usarlo assieme ai motori ?
__________________
Bye
Rispondi citando
  #10  
Vecchio 05-09-2006, 18.44.39
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Monselice (PD)
Etŗ†: 56
Messaggi: 5,458
Potenza reputazione: 416
marnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da Spinnaker
Per il CMPS03 avevo gi√* considerato i problemi.....
Per la bussola ho perso pi√Ļ di qualche notte
se non √® difficile schermare i motori posti "sotto" alzando e mettendo una lastra di alluminio (poi credo sia insensibile ai campi perpendicolari alla basetta, ammesso di sapere che sono perpendicolari) il suo funzionamento indoor √® quasi impensabile, non hai un metro di campo stabile. puoi usarla solo da fermo e cio√®, ti fermi, leggi, ruoti su te stesso di un angolo x, ti fermi leggi. In questo caso hai un errore accettabile se ruoti di meno di 45¬į, potresti avere un errore importante se ruoti di pi√Ļ, ricorda che non leggi solo il campo terrestre ma la risultante tra quello e tutto il resto.
Per la cronaca la CMPS03 è compensata contro i disturbi a 50Hz o 60Hz, unica cosa che direi funziona bene.
__________________
Marnic
Roboitalia Staff
www.fabbrimarco.com
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalitŗ† visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code Ť Attivato
Le smilies sono Attivato
[IMG] Ť Attivato
Il codice HTML Ť Disattivato

Vai al forum


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


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB