Jak mám vysvětlit závažnost pomocí akcelerometru dané Wiimote je?

hlasů
9

Pro projekt můj tým a já se snažil sledovat Wiimote v 3D prostoru pomocí vestavěného akcelerometru a gyroskopu WiiMotion Plus.

Byli jsme schopni sledovat rotaci a pozici pomocí ódou (Nalezeno v http://www.alglib.net/ ,), ale my jsme narazili na problém s odstraněním gravitační součást z akcelerometru.

Zkoumali jsme gravitační součásti akcelerometr, který měl vzorec (implementována v C # / XNA)

    private Vector3 RemoveGravityFactor(Vector3 accel)
    {
        float g = -1f;
        float pitchAngle = (Rotation.Z);
        float rollAngle = (Rotation.Y);
        float yawAngle = (Rotation.X);

        float x = (float)(g * Math.Sin(pitchAngle));
        float y = (float)(-g * Math.Cos(pitchAngle) * Math.Sin(rollAngle));
        float z = (float)(-g * Math.Cos(pitchAngle) * Math.Cos(rollAngle));

        Vector3 offset = new Vector3(x, y, z);

        accel = accel - offset;
        return accel;
    }

Ale to nefunguje vůbec. Jako reference, je zrychlení přímo z akcelerometru, a rotace se měří v radiánech poté, co byly zpracovány přes ODR.

Také jsme potíže s pochopením, jak tento vzorec funguje. Vzhledem k tomu, že naše sledování se bere v úvahu všechny rozměry, proč je stáčení nebere v úvahu?

Díky předem za každou radu nebo pomoc, která je nabízena.

UPRAVIT:

Po projednání s mými kolegy a šéfa, jsme dospěli k závěru, že tento vzorec by ve skutečnosti fungovat, pokud bychom použili X, Y a Z správně. Přišli jsme do jiného pařez ačkoli.

Problém, že budeme mít, je, že knihovna Wiimote, že používáme vrátí vzájemný hodnoty založené na pohybu gyroskop. V otherwords, pokud jsou tlačítka směrem nahoru, otáčením Wiimote vlevo a vpravo je vybočit a pokud tlačítka čelí směrem k sobě, zatáčení je stejné, když by to mělo být rotace celého Wiimote.

Zjistili jsme, že Euler úhly mohou být naše odpověď, ale nejste jisti, jak je používat správně. Pokud existuje nějaký vstup na tento nový vývoj nebo jakýchkoliv jiných návrhů, prosím dát jim.

Položena 10/11/2010 v 21:43
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Vsadil bych se, že vaše akcelerometr nebyl kalibrován v nulové gravitaci, takže odstranění efektu gravitace bude obtížné, přinejmenším.

Odpovězeno 10/11/2010 v 21:46
zdroj uživatelem

hlasů
1

Za prvé bych navrhnout nepoužívají jednotlivé komponenty pro ukládání rotaci (gimbal zámek), matice bude fungovat lépe. kalibraci, že ji drží na místě a měření (bude 1g dolů). pak pro každé otáčce, roztroušená otáčení matice tím. pak si můžete říct, jakým způsobem bude schopen odečíst matici 1g dolů z vektoru reprezentujícího zrychlení. Vím, že nedává mnoho smyslu, ale já jsem v trochu spěchu, přidat komentář, pokud máte nějaké dotazy.

Odpovězeno 10/11/2010 v 22:07
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more