Skip to main content

Topic: alexmos problem (Read 4696 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.

Odg: alexmos problem

Reply #15
Roll možeš okretat i do 360 stupnjeva okolo ako je senzor horizontalan,  na pitchu pod 90 promjeniš ravninu  djelovanja o onda ti akcelerometar više ne kontrolira tu ravninu koju trebaš i zato pizdi...  Ako sam u krivu nek me netko ispravi


Odg: alexmos problem

Reply #17
Hvala na info. Skužio od prve!  ;)
Kršite svoje koptere da biste ih bolje upoznali ! :-)
A sada i avione! :-(

Odg: alexmos problem

Reply #18
nista ja tu nisam skuzio  :-X

Odg: alexmos problem

Reply #19
Položaj ( nagib, "attitude") nekog objekta u 3D prostoru može se reprezentirati na mnogo načina - matrica rotacije, eulerovi kutevi, quaternioni...

Najintuitivniji su eulerovi kutevi, i posebno su pogodni pošto se njihov iznos može direktno ubaciti u PID regulator, dok je za ostale načine potrebno računanje koje mali AVR vrlo sporo izvodi.

Eulerovi kutevi ( yaw, pitch roll) nisu strogo definirani, već ovise o redoslijedu rotacija:
- avion je okrenut prema sjeveru, poravnat sa horizontom - zakrećemo ga npr. roll=90, pitch=90
1. Ako prvo zakrenemo roll, spuštamo desno krilo prema zemlji, nakon toga pitch - gledamo na istok, sa desnim krilom prema zemlji...
2. Ako prvo zakrenemo pitch, gledamo u nebo, zatim roll - i dalje gledamo u nebo, sa desnim krilom prema sjeveru...

Očito će različit redoslijed rotacije dati potpuno različit položaj aviona, iako su kutevi rotacije isti - u točki 1. avion gleda na istok, dok u točki dva gleda prema nebu...

Primjer singulariteta kod yaw-pitch-roll redoslijeda:
1. Avion je u globalnom sustavu okrenut prema sjeveru, horizontalno, i želimo definirati njegovu orjentaciju u odnosu na taj položaj ( neka vrsta "ishodišta")
2. Okrećemo ga prvo po yaw oko vertikalne osi, npr za 90, pa gledamo na zapad...
3. Zatim ga okrećemo po NOVONASTALOJ pitch osi (sjever-jug, gledano iz aviona) za 90, znači gleda u nebo
4. Zatim ga okrećemo po NOVONASTALOJ roll osi za neki kut, međutim, roll os aviona se poklopila sa vertikalnom osi od zemlje, te u globalu samo ponavljamo rotaciju iz točke 2 - izgubili smo jednu os, jer je pitch od 90 stupnjeva doveo roll os točno u poziciju gdje je bila yaw os...

Singularitet radi srednja rotacija, u slučaju yaw-PITCH-roll redoslijeda to je PITCH, koji pravi probleme na +- 90 stupnjeva. Ako promijenimo redoslijed rotacije u našoj reprezentaciji, singularitet se samo seli na rotaciju koja je druga (srednja) u nizu od 3 rotacije.

Eulerovi kutevi mogu zapisati sve položaje u prostoru, ali problem je oko točaka singulariteta gdje mali pomaci objekta u prostoru uzrokuju velike pomake u kutevima, što radi probleme npr. kod interpolacije u 3D grafici ( mislim da ima jedan član foruma koji to bolje poznaje nego ja ) i našem PID regulatoru.

Dakle:
- Eulerovi kutevi su zgodni za male mikrokontrolere bez CPU snage, manje računanja pa ih zato koristimo
- Imaju singularitete koje ne možemo izbjeći ( zato se uglavnom prelazi na quaternione)
- Možemo odabrati redoslijed rotacije te pozicionirati singularitete na pozicije koje ne koristimo

AlexMos ima singularitete na roll-u, na +- 90 stupnjeva, jer je to položaj koji nam za kameru uglavnom ne treba, dok na pitch=+-90 radi, jer je srednja matrica očito roll...

Prema tome, ako ne možeš okrenuti kameru pogled prema dole, što bi bio pitch po konvenciji, vjerojatno si zamijenio pitch i roll - ne samo motore, kao prvi puta, već sve skupa. Okreni senzor za 90 stupnjeva i ponovo zamijeni motore. Ili općenito, gledaj u GUI prikaz da ti je roll i pitch 0 u horizontalnom položaju, te da se mijenja pitch kada kameru zakrećeš prema dole, a ne roll ...

Odg: alexmos problem

Reply #20
 :D PROSTO KO PASULJ !
Kršite svoje koptere da biste ih bolje upoznali ! :-)
A sada i avione! :-(

Odg: alexmos problem

Reply #21
Da, ima zamjenjene roll i pich jer  jedino rol moze okretati na kanalu. Onaj drugi mi nije htel. Tak sam i sebi slozil..

Odg: alexmos problem

Reply #22
igorzgcro

ovo je bilo detaljno bravo  :)

Hvala

Odg: alexmos problem

Reply #23
Ma nema problema, ako je netko uspio pročitati do kraja, nitko sretniji od mene  :D

Odg: alexmos problem

Reply #24
Ja sam otišao na kahvu s kompichima na pola teksta  :D .
Pričali smo o nekim trivijalnijim temama, peechke npr.
Kršite svoje koptere da biste ih bolje upoznali ! :-)
A sada i avione! :-(

Odg: alexmos problem

Reply #25
kad smo kod ovoga da li se nekome događa da nakon velikom pan-a, npr okret letjelice od 180 stupnjeva, nagne se horizont gimbala...?

nakon par sekundi se ispravi ali ne kontam zašto?
inaće stoji ok.
acc kalibriran (ono u jednoj točki, one druge ne kontam)

Odg: alexmos problem

Reply #26
I meni se to dogada, na koju stranu letis na tu se naginje horizont  pa se onda ispravi. Bez da definiras to prethodno. To sam vec pital negdi pa nitko nezna.. al kolko sam videl to tak svima.. ak na to mislis..

Odg: alexmos problem

Reply #27
je, upravo to, ako zavrtis letjelicu, naginje se i horizont...pa se ispravi

Odg: alexmos problem

Reply #28
Još je Einstein ustanovio da, npr. ako bi se lift nalazio u svemiru i u njemu bi se "osjetila gravitacija", unutar lifta NE POSTOJI pokus kojim bi se ustanovilo da li je to zaista gravitacija nekog susjednog planeta, ili npr. planeta nema nego lift ubrzava akceleracijom "g" - NE MOŽEMO RAZLIKOVATI AKCELERACIJU OD GRAVITACIJE !!!

Naši akcelerometri na senzorima uopće ne služe da mjere akceleraciju - u našem slučaju to se ne koristi - već smjer vektora "g" - da bismo znali gdje je horizont, dok su nam sve akceleracije uglavnom parazitne i kvare mjerenje smjera vektora "g". Akceleracije tipa kreni-stani ne utječu toliko, jer su uglavnom kratke i konačni zbroj im je 0 - "stani" poništava "kreni", a konstantno pravocrtno gibanje nije akceleracija  ;). Međutim kruženje proizvodi konstantnu centrifugalnu akceleraciju koja se integrira vremenom i kvari smjer vektora "g". 

Tijekom rotacije na senzor djeluje centrifugalna sila - uz vektor "g" prema dole, senzor mjeri i vektor "a" centrifugalne sile koji je horizontalan, odnosno mjeri zbroj ta 2 vektora u vidu rezultantnog vektora. Na primjer ako bismo se kretali u zavoju tom brzinom i radiusom da nam je centrifugalna sila "a" jednakog iznosa kao i "g", rezultantni vektor bi bio pod 45 stupnjeva. Naš senzor bi mislio da smo nagnuti 45 stupnjeva, dok smo zaista horizontalno, ali "u zavoju".

Ispravi se tek nakon par sekundi jer se akcelerometar ne gleda direktno, nego kroz filtriranje sa žiroskopom, pa su ti efekti manje izraženi i imaju neku vrstu kašnjenja ( isto tako se i ne pojavi odmah na početku rotacije).

Ako horizont odlazi dok letjelica radi pan u mjestu, znači da senzor gimbala nije u sredini letjelice. Stavi senzor koliko je moguće bliže centru letjelice, jer u samome centru nema centrifugalnih sila kod pan-a.

Ako pak letiš neki radius, uglavnom nema pomoći kod "crnih kutija" gdje ne možeš mijenjati kod...

Odg: alexmos problem

Reply #29
Hvala kolega na iscrpnom odgovoru. Nisam znao baš na koji način točno radi akcelerometar.