Mostra argomento precedente :: Mostra argomento successivo |
Autore |
Messaggio |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Lun 31 Ago, 2009 10:11 am Oggetto: Aiuto per problema matematico |
|
|
Mi vergogno un po' a chiedere ma pazienza...
Ho bisogno di ruotare un punto (x,y,z) nello spazio portandolo in un altro punto (x',y',z') a me noto, tramite matrice di rotazione, tuttavia non conosco né l'asse né l'angolo di rotazione. Come posso procedere? |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Cejes utente attivo

Iscritto: 04 Lug 2006 Messaggi: 3320
|
Inviato: Lun 31 Ago, 2009 10:49 am Oggetto: |
|
|
Per quei pochi residui di meccanica razionale credo che almeno l'asse (o il centro intorno a cui vuoi far ruotare il tuo punto) lo devi definire...
L'angolo (o gli angoli) viene da se, lo puoi ricavare dalle coordinate una volta che hai il centro.
Se metti il centro di rotazione nell'origine (per esempio) ricavi il raggio e poi giochi di trigonometria. |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Lun 31 Ago, 2009 9:39 pm Oggetto: |
|
|
Cejes ha scritto: | Se metti il centro di rotazione nell'origine (per esempio) ricavi il raggio e poi giochi di trigonometria. |
Ho pensato anch'io di fare così, domani provo sui dati e vedo se funziona. Grazie intanto  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Dreamer77 utente attivo
Iscritto: 29 Apr 2009 Messaggi: 1238
|
Inviato: Lun 31 Ago, 2009 10:40 pm Oggetto: Re: Aiuto per problema matematico |
|
|
Fabio Ferramola ha scritto: | Mi vergogno un po' a chiedere ma pazienza...
Ho bisogno di ruotare un punto (x,y,z) nello spazio portandolo in un altro punto (x',y',z') a me noto, tramite matrice di rotazione, tuttavia non conosco né l'asse né l'angolo di rotazione. Come posso procedere? |
Io non ricordo più la soluzione del tuo problema mediante matematica ... però con un CAD 3D se mi dessi le tue coordinate posso ricavare le rotazioni per muovere il punto 1 nella posizione 2 ruotandolo sull'origine x0y0z0 . E' quel che ti serve ? _________________ Neofita alle seconde armi |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Lun 31 Ago, 2009 10:48 pm Oggetto: |
|
|
Non proprio Dreamer, devo implementare le rotazioni in maniera algoritmica in modo che siano applicabili ad un grosso numero di punti diversi. Comunque attraverso dei calcoli trigonometrici ho ricavato le matrici di rotazione, applicandole mi sembra che la cosa funzioni. Domani in laboratorio proverò sui dati reali. Grazie per l'offerta d'aiuto comunque! |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Teo76 utente attivo

Iscritto: 23 Ago 2004 Messaggi: 4807 Località: Torino
|
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Mer 02 Set, 2009 5:36 pm Oggetto: |
|
|
Sì Teo sono la prima cosa che ho letto... nel frattempo il problema si è complicato, le matrici sono banali, è ricavare gli angoli che mi risulta difficile AAA cercasi fisico  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
ilmuto utente attivo

Iscritto: 11 Set 2007 Messaggi: 2055 Località: Bolzano
|
Inviato: Mer 02 Set, 2009 6:53 pm Oggetto: Re: Aiuto per problema matematico |
|
|
Fabio Ferramola ha scritto: | Mi vergogno un po' a chiedere ma pazienza...
Ho bisogno di ruotare un punto (x,y,z) nello spazio portandolo in un altro punto (x',y',z') a me noto, tramite matrice di rotazione, tuttavia non conosco né l'asse né l'angolo di rotazione. Come posso procedere? |
Purtroppo non sono ne un fisico ne un matematico un po curioso magari...
da ignorante però mi chiedo come fai a ruotare un punto da A a B senza sapere ne l'asse ne l'angolo...
per due punti non passano infiniti cerchi? o nello spazio intervengono altri fattori? _________________
Mauro ------- PaP, VaV -------
I miei Contest: 58 - 45 - 44 - 43 - 40 - 39 - 38 - 35
Campo di concentramento di BUCHENWALD |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Gio 03 Set, 2009 8:44 am Oggetto: |
|
|
Nel frattempo come dicevo ho studiato meglio il problema, non è la rotazione di un punto ma di una terna di assi cartesiani, ovvero riportare un sistema di riferimento a un altro... almeno credo sia così... casomai quando ho tempo faccio un disegnino, ora devo andare (a lavorarci sopra appunto ) |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Teo76 utente attivo

Iscritto: 23 Ago 2004 Messaggi: 4807 Località: Torino
|
Inviato: Gio 03 Set, 2009 10:08 am Oggetto: |
|
|
Per capirci, la matrice di rotazione in 3D su wikipidia rappresenta una rotazione attorno all'asse x di angolo theta, infatti x'=x e le equazioni per y' e z' sono analoghe al sistema (1).
Mi spieghi per bene qual è il problema che non credo di averci capito molto  _________________ Matteo www.matteonobili.com
Sono ottimista: un giorno la Terra servirà a concimare un pianeta lontano [Altan] |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Gio 03 Set, 2009 7:15 pm Oggetto: |
|
|
Allora, adesso ho un po' di tempo e provo a spiegarmi
Ho acquisito dei dati tramite un accelerometro che lavora su 3 assi. Praticamente mi sono posizionato questo sensore sul petto, dentro una scatolina, in modo che fosse perpendicolare al terreno. Così avrebbe dovuto rilevare un'accelerazione di 1 g lungo l'asse z (verso terra cioè), e 0 lungo gli assi x e y naturalmente poiché stavo fermo.
Il problema è che ogni volta che una persona si mette questa scatolina non sarà mai perfettamente allineata, quindi in realtà leggerà poco meno di 1 lungo z e dei valori lungo x e y. Fin qui ci siamo?
Quello che devo fare è, dato un grosso numero di campioni, ad esempio 160 pari a 1 secondo, far sì che la media di questi dati in cui io stavo fermo immobile sia (0, 0, 1) anziché per es. (0,12, -0.09, 0.89) poiché la scatola è storta.
Devo cioè 'calibrare' l'accelerometro ogni volta che lo indosso, così poi potrò eseguire i movimenti che vorrò e non saranno influenzati dal posizionamento della scatolina, cosicché potrò confrontare direttamente i dati catturati da diverse persone.
Tutto ciò poi finirà in pasto ad una rete neurale che sarà in grado di capire quale movimento si sta facendo a partire dai dati di accelerazione rilevati. Comunque questo non ci interessa ora...
In pratica io per risolvere la cosa avevo pensato semplicemente di effettuare una traslazione dei dati lungo i tre assi: ad esempio se so che quando sono fermo rilevo 0,89 g lungo l'asse z, mentre dovrei rilevare 1 g, a tutti i miei dati sommerò 0,11 così da riportarmi nella situazione che voglio. Così anche per i dati lungo x e y naturalmente.
Questo procedimento tuttavia mi ha detto un collega essere sbagliato... ma che invece devo utilizzare una "rototraslazione in 3D lungo gli assi", testuali parole.
Ora io non capisco perché il mio metodo è sbagliato e soprattutto come dovrei fare questa rotazione se non ho modo di misurare gli angoli!!
Mi sono spiegato abbastanza bene? |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
-Aragorn- utente
Iscritto: 15 Lug 2007 Messaggi: 350 Località: Torino
|
Inviato: Gio 03 Set, 2009 7:50 pm Oggetto: |
|
|
Domani vado a spolverare gli appunti di meccanica, ma ti chiedo qualche info in più per darti le indicazioni precise.
TU misuri tre vettori, uno per ogni asse dello spazio. Costruito il tuo sistema di riferimento centrato su questi tre vettori, lo vuoi ruotare intorno all'origine in modo da ottenere il vettore z pari a (0,0,1) e i vettori x e y pari a quello che viene dalla trasformazione. In pratica vuoi far ruotare il tuo sistema su un piano.
L'angolo che ti serve per la rotazione è quello che si forma tra il vettore z e il vettore z', ovvero tra il vettore z misurato e quello che vuoi ottenere.
Spero di trovare gli appunti domani in giornata! _________________ Canon EOS400D - Canon EF-S 10-22 f/3,5-4,5 - Canon EF-S 17-55 f/2,8 IS - Canon EF 50 f/1,8 - Canon EF 70-200L f/4 - Canon EF 300L f/4 IS - Canon Extender 1,4x II - Canon Speedlight 430EX - Sistema Cokin serie P - Manfrotto 190XDB + 460MG |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Nicola Giani utente attivo

Iscritto: 01 Feb 2006 Messaggi: 3677 Località: Milano
|
Inviato: Ven 04 Set, 2009 11:50 am Oggetto: |
|
|
Fabio Ferramola ha scritto: | ....
In pratica io per risolvere la cosa avevo pensato semplicemente di effettuare una traslazione dei dati lungo i tre assi: ad esempio se so che quando sono fermo rilevo 0,89 g lungo l'asse z, mentre dovrei rilevare 1 g, a tutti i miei dati sommerò 0,11 così da riportarmi nella situazione che voglio. Così anche per i dati lungo x e y naturalmente.
.... |
Ragionando in due dimensioni, la diminuzione sarebbe proporzionale al coseno dell'angolo tra z e z'. In tre dimensioni.....
 _________________ Che bello il copia e incolla! |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Mer 09 Set, 2009 5:42 pm Oggetto: |
|
|
Finalmente ho risolto il problema. Grazie a tutti per l'aiuto  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Teo76 utente attivo

Iscritto: 23 Ago 2004 Messaggi: 4807 Località: Torino
|
Inviato: Gio 10 Set, 2009 8:05 am Oggetto: |
|
|
come l'hai risolto? _________________ Matteo www.matteonobili.com
Sono ottimista: un giorno la Terra servirà a concimare un pianeta lontano [Altan] |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
milladesign utente attivo

Iscritto: 19 Lug 2007 Messaggi: 4992 Località: tra brescia, mantova e verona
|
Inviato: Gio 10 Set, 2009 9:36 am Oggetto: |
|
|
Fabio Ferramola ha scritto: |
In pratica io per risolvere la cosa avevo pensato semplicemente di effettuare una traslazione dei dati lungo i tre assi: ad esempio se so che quando sono fermo rilevo 0,89 g lungo l'asse z, mentre dovrei rilevare 1 g, a tutti i miei dati sommerò 0,11 così da riportarmi nella situazione che voglio. Così anche per i dati lungo x e y naturalmente.
Questo procedimento tuttavia mi ha detto un collega essere sbagliato... ma che invece devo utilizzare una "rototraslazione in 3D lungo gli assi", testuali parole.
Ora io non capisco perché il mio metodo è sbagliato e soprattutto come dovrei fare questa rotazione se non ho modo di misurare gli angoli!!
Mi sono spiegato abbastanza bene? |
ho letto che hai trovato la soluzione, e sono curioso.
secondo me la rototraslazione è necessaria perchè col metodo semplice applicato all'asse z calibri in effetti la perpendicolarità dell'accelerometro rispetto al piano di traslazione del corpo, ma per avere dati certi devi calibrare anche x e y perchè siano rispettivamente coassiale e perpendicolare all'ipotetica direzione di avanzamento lineare. ho formulato un'ipotesi corretta o i soldi che i miei hanno speso per farmi fare l'università sono stati del tutto buttati? (fermo restando che non faccio l'ingegnere ma il fotografo, quindi il politecnico di milano potevo pure risparmiarmelo, sotto tutti i punti di vista ) _________________ Giorgio |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Gio 10 Set, 2009 5:49 pm Oggetto: |
|
|
Ho risolto calcolando direttamente la matrice di rotazione... senza passare per gli angoli Rispolverando un vecchio libro di robotica industriale ho trovato la definizione di matrice di rotazione, dalla quale poi si ricava quella coi coseni e i seni (quella che c'è su wikipedia). Quando scriverò la relazione sul progetto magari posterò qui la parte relativa alla rotazione, se vi interessa conoscere la soluzione nei dettagli. |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Fabio Ferramola utente attivo

Iscritto: 29 Nov 2005 Messaggi: 6450
|
Inviato: Mer 23 Set, 2009 6:18 pm Oggetto: |
|
|
Dato che mi era stata chiesta posto la soluzione.
Spero tra l'altro che sia comprensibile, ho avuto poco tempo per scrivere questa relazione e sono stato sintetico...
PDF: http://tinyurl.com/ng9g7o
Ciao,
Fabio  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
|