Page 1 of 4

GPSpiloot

Posted: Mon Jan 07, 2008 10:44
by -Ilmar-
Elou!

Kuidas Teil ka leiutamisega läheb? Pikka aega vaikus...

Ajasite mul kah isu peale.
Ise olen pikemat aega pusinud PIC protsessoritega. GPS ja PIC oli mul juba paaritatud. Suuna arvutamiseks kasutasin abimaterjali:
http://www.ee.ucr.edu/~dgiles/sendesign ... kZilla.pdf

Hetkel arvutab koordinaadi 58 20 47.7N 25 36 41.0E suuna. 143.7°
Image

Servo on hetkel pandud lihtsalt kompassi suuna järgi vehkima.

Plaan on asi aretada esialgu mingile mudelautole ja vaadata kuidas kohale sõidab...

Parimat soovides,
-Ilmar-

Posted: Mon Jan 07, 2008 11:45
by tola555
kuidas ta sul laua peal suuna arvutab? Vanasti oli selleks vaja gps seadme liikumist.

Posted: Mon Jan 07, 2008 12:23
by -Ilmar-
Elou!

Sa mõtled ikka GPSi kompassi suunda?
See GPS vajab kah tegelikult liikumist. Aga tundub, kui paigal seisab siis GPS koordinaadid ikka muutuvad ja ju ta selle järgi arvutab suuna.
Ega see suund muutub ka 0-360, paigal ei püsi. Pildil on paigal :)

-Ilmar-

Posted: Mon Jan 07, 2008 12:51
by AndrusT
Huvid on sarnased aga platvormid on erinevad. Endal ka plaanis tulevikus midagi GPS-iga ette võtta. Ma jäin esialgu Parallax Javelin protsessori juurde, millega teen alles esimesi katsetusi. Javelini valiku põhjuseid on mitu. Kuid arvatavasti kasvan sellest varsti välja. Mõnes mõttes kahju, et ei saa koostööd lähtekoodi tasemel teha. Samas on sellel platvormide paljususel ka omad plussid.

-Ilmar-, kaua PIC kiipidega tegelenud?
Miks PIC kiibid? Kas oled uurinud ka teisi protsessoreid?


PS: Vabandust, et veidi teemast välja kirjutasin.

Posted: Mon Jan 07, 2008 13:00
by pipercub
Kas mitte GPS-d ei anna suunavektorit otse välja, pealegi koordinaatidest 10x sagedamini.

Posted: Mon Jan 07, 2008 13:22
by -Ilmar-
Elou!

pipercub
- Minu GPS väljastab enda koordinaadi ja "liikumise" ajal suunda iga sekundi järel.
PIC arvutab enda koordinaadi ja punktiB koordinaadi nurga.
Seejärel tuleb teha kursimuutus...

AndrusT
- PICiga olen tegelenud, otsisin oma vanu projekte, leidsin aastast 2001. Endale tundub, et nagu oleks kauem olnud :)
Sisuliselt alustasin assembleris kirjutamist, kuid nüüd kuna oli vaja
koordinaate arvutada proovisin MikroC keelt. Miks PIC, arvan, et olen
saanud oma asjad aetud.

Parimat,
-Ilmar-

Posted: Mon Jan 07, 2008 13:26
by lauri
Kas oled sinna sisse ehitanud juba ka mingeid servo juhtimise lisavidinaid ja loogikat, mis on hädavajalikud. Näiteks kui palju liigub servo siis, kui kurss on väga vale - näiteks 180 kraadi vale. Kui palju liigub servo siis, kui kurss nihkub 5 kraadi valeks.

Sisuliselt võta see süsteem, pane ElektroUHU-le peale ja lendu varsti :roll: Täeisti eraldiseisev süsteem võib kõrgust korrigeerida või ehitad selle ka sama süsteemi sisse?

Posted: Mon Jan 07, 2008 13:28
by tola555
-Ilmar- wrote: See GPS vajab kah tegelikult liikumist. Aga tundub, kui paigal seisab siis GPS koordinaadid ikka muutuvad ja ju ta selle järgi arvutab suuna.
Ega see suund muutub ka 0-360, paigal ei püsi. Pildil on paigal :)

-Ilmar-
pipercub wrote:Kas mitte GPS-d ei anna suunavektorit otse välja, pealegi koordinaatidest 10x sagedamini.
GPS peaks võtma koordinaadi, meelde jätma ja võtma uue koordinaadi. Siis kui uus koordinaat on eelmisest põhjapool, siis on liigutud põhja suunas ja põhi on liikumise suunas. Ei tea tema maa magnetväljast tuhkagi. Oskab ainult koordinaatide järgi arvutada, et liikusid X meetrit kuskile suunda.
Kui sul, -Ilmar-, kohapeal seistes arvutab suuna, siis on see väga kahtlase täpsusega. Vast tingitud su vastuvõtja ebatäpsusest ja mürast.

Parandage/täiendage kui arvate midagi muud.

Posted: Mon Jan 07, 2008 13:43
by AndrusT
Nagu juba eelnevast jutust välja tuli, sisaldab iga mõõtmine müra, sh. ka GPS mõõtmine.

-Ilmar-,
Kuidas müra summutad? Milliseid mürasummutuse algoritme või nippe kasutad? Või pole müra probleemiks?

Posted: Mon Jan 07, 2008 14:39
by [J]
Poogi miskit sellist ka külge:
http://www.freescale.com/files/sensors/ ... X4115A.pdf
siis saaks ehk Elektro UHU ka reisima lasta!

Posted: Mon Jan 07, 2008 14:58
by -Ilmar-
Elou!

Lauri
-Praegu on servo katse seotud liikumisesuuna kraadiga.
Ehk, 360° on jagatud viieks ja servo käik 90° vastavalt kraadidele viieks.
Tahtsin näha kas servo liigub kui kraadid muutuvad. Servo pole veel seotud kursiga. Hiljem arvutab kursi ja suuna vahe ja sealt servo nurga.

GPSi mürast pole hetkel välja teinud :P

-Ilmar-

Posted: Mon Jan 07, 2008 15:13
by pipercub
Tahtsin öelda, et minu teada on paljud funktsioonid juba GPS vastuvõtjasse sisse ehitatud. Koos Kalmani filtritega mürasummutamiseks. Koordinaadi lugemise funktsiooni kasutatakse ainult süsteemi algseks positsioneerimiseks ja hiljem korrigeerimiseks. Asendinformatsiooni annab GPS välja 1x/s(5x?). Liikumisvektorit väljastatakse 10x sekundis(mõnedel andmetel 50-100x) ja sisemise kalmani filtriga töödeldult. Olen kuulnud, et navigatsiooniprogrammid just seda liikumisinfot kasutavadki.

Niipalju, kui olen aru saanud, on on õhus sirgelt suunda hoidvale süsteemile veel vaja Pitot toruga lennukiiruse andurit ja integreerivat güroandurit.

Posted: Mon Jan 07, 2008 15:33
by AndresO
Selleks, et GPS-ist saada kätte vajaliku punkti suuna ja kõrvalekalde infot, peab seade võimaldama endasse teekonnapunktide salvestamist. Paljud tavaseadmed seda ei võimalda. Selleks ongi siis vaja lisaloogikat.
Näiteks käsi-seadmed võimaldavad sellist salvestamist ja väljastavad ka kõrvalekallet etteantud suunast (NMEA sõnumid APA ja APB) ja seda ka nii, et mitte ainult sihtpunkt poleks õige, vaid suunavad ka ruttu etteantud teele (sirgele kahe punkti vahel) tagasi.

Posted: Mon Jan 14, 2008 9:30
by zapi
Milles see gps-ide märgitud maksimaalne positsioneerimistäpsus väljendub ?
Annab ta põhimõtteliselt 15-3meetri(waas-egnos jnega) suuruse punkti kus ta asuda võib ka mõõtmistelt keskmist võttes või asetab ta gps-i suhteliselt konstantselt valesse kohta mingis suunas tegelikust ? Mil viisil seda gps-i viga arvestama peab sellistes uav ja robootika projektides. On see väljaantav võimalikult täpne asukohapunkt hüplik või ühtlane mingi pikema ajavahemiku jooksul, muutudes sujuvalt ühest äärmusest (-3 meetrist + 3meetrisse) teise tegeliku asukoha punkti suhtes ?

Posted: Mon Jan 14, 2008 9:45
by AndresO
zapi wrote:Milles see gps-ide märgitud maksimaalne positsioneerimistäpsus väljendub ??
Kui hoida seade paigal, siis hakkavad väljastatud koordinaadid triivima. Kiirusega umbes 1 meeter 1...10 sekundi jooksul. Ja triivimine on kõrguse suhtes suurem kui horisontaalis. Näiteks ühe vaatlustorni tipus olles muutus selle kõrgus minuti jooksul 20 m ulatuses.

Mõõtmistäpsus sõltub kõige rohkem sellest, mitu satelliiti on korraga näha ja nende vahelisest positsioonist. Lagedal ja õhus on täpsus suurem, tihedas metsas väiksem või hoopis olematu. Metsas esinenud isegi paarisajameetriseid kiireid hüppeid.

Posted: Mon Jan 14, 2008 11:00
by -Ilmar-
Elou!

Vahepeal tegin katse, panin pirukasse muna... :)

Lisasin PICile SD mälukaardi.

Image

Failist SIHTPNKT.TXT loetakse sihtpunktid, kuni 99tk.
Faili GPSLOG01.TXT salvestatakse iga 5sek. järel teekond.
----------------------------------------------
Laupäeval otsisin üles 6 sihtpunkti...
Kõndisin nii, et GPSpiloot arvutas sihtpunkti kraadi ja mina püüdsin liikuda, et mõlemad kraadid oleksid ühesugused.
Sihtpunktid lugesin Regio/Delfi kaardilt:
http://polaris.regio.ee/delfi/map.php

Teekonna failist GPSLOG01.TXT, kandsin kaardile OziExplorer programmiga.
Image

Teekond on salvestatud iga 5sek. järel, sama zuumitud:
Image

Sihtpunkti vahetamise tegin vist liiga täpse, andis ikka pihta saada :)
Tükk aega pidin otsima...

-------------------------------------
Aga midagi juhtus minu GPS seadmega, eile ütles töölepingu üles...

Parimat,
-Ilmar-

Posted: Mon Jan 14, 2008 12:15
by AndrusT
Katse on huvitav.
Kui täpse vahetuspunkti raadiuse võtsid? Vaatan, et oled punktile pihta saamiseks ikka õige palju otsima pidanud.

Milline on GPS-i täpsus?
Mis koordinaadistikku arvutusteks kasutad (kas pikkus/laius või ruutkoordinaadistik)?

Kas oled juba mõelnud, et mis algoritmi järgi arvutad sabatüüri nurka?

PS: Pärin, sest endal seisab töö GPS-ga alles ees. Alustasin oma autopiloodi ehitamist magnetkompassist.

Posted: Mon Jan 14, 2008 12:29
by AndresO
AndrusT wrote:Alustasin oma autopiloodi ehitamist magnetkompassist.
Külgtuulega lennuki liikumissuund ja lennuki enda suund enamasti ei ühti. Selle vahe leidmiseks ongi magnetkompassist abi.

Posted: Mon Jan 14, 2008 12:50
by -Ilmar-
Elou!

Sihtpunkti on juba failis dd.ddddd (decimal degrees)
GPS oma konverdin dd.dddd ja arvutan kasutades "Pythagorean theorem"
http://www.ee.ucr.edu/~dgiles/sendesign ... kZilla.pdf

Sihtpunkti vahetamiseks peab GPSi andmed Ddmm.mmmm olema +- 0.0003.
Ma veel ei tea, kui suur on viimase numbri muutumine meetrites...
Samas see raadius võiks olla sama suur kui ristmik, praegu pidin väga täpselt keset olema :)

Andmelehelt lugedes on GPSi täpsus "WAAS enabled 10m" ma ei tea miks ta pihta ei saanud...

Parimat,
-Ilmar-

Posted: Mon Jan 14, 2008 13:42
by AndresO
-Ilmar- wrote: Sihtpunkti vahetamiseks peab GPSi andmed Ddmm.mmmm olema +- 0.0003.
Ma veel ei tea, kui suur on viimase numbri muutumine meetrites...
Samas see raadius võiks olla sama suur kui ristmik, praegu pidin väga täpselt keset olema :)
See on umbes 0,5 m!
Arvestuse aluseks on see, et väga suures laastus on põhja-lõuna suunas maapinnal 1 kaareminut ~1 meremiil (1852m).
1852*0,0003=0.54m
Ida-lääne suunaliselt sõltub see laiuskraadist ja Eesti kohal vist ligikaudu poole väiksem, seega ~ 0,25m.

Posted: Mon Jan 14, 2008 14:13
by -Ilmar-
Elou!

Oi, oi, pool meetrit... Nüüd ma saan aru küll miks esimest punkti üles ei leidnud, olin juba peaaega käega löömas, et mingi programmiviga et ei vaheta. Aga siis tuli ühel hetkel hop, uus sihtpunkt ja hakkas teist suunda näitama. Mul tekkis juba kõhe tunne, tuleb keegi ja küsib mis Te siin tammute keset ristmikku pappkarp käes... :)

4 punkt läks kõige lihtsamalt, alguses kõndisin kiiremini ja kuna ma enamvähem teadsin kus punkt on liikusin lõpus aeglaselt ja hop uus punkt :)

Parimat,
-Ilmar-

Posted: Thu Jan 24, 2008 11:06
by -Ilmar-
Elou!

Vahepeal tegin veel katse, panin pirukasse kaks muna :P

Muutsin sihtpunkti vahetuse 9.8m peale, nüüd ei tekkinud enam probleemi sihtpunkti leidmisega...
Lisasin servo, sihtpunkti kraadist lahutan liikumise kraadi, kui vahe on +-5kraadi siis on servo keskel. Kui erinevus +-90kraadi siis servo ühes ääres. Alla 90kraadi erinevust vahepealsed servo positsioonid.

Panin kogu krempli karpi ja käisin läbi uued sihtpunktid, seekord näitas servo mulle suunda.
Image

Seekord tegin suurema ringi:
Image

Kuna sihtpunkti vahetuse raadius oli nüüd suurem, polnud probleemi punkti leidmisega.
Välja kukkus midagi sellist:
Image

Parimat,
-Ilmar-

Posted: Thu Jan 24, 2008 12:32
by lauri
Õnnitlused, täitsa toimiv süsteem :!:

Suvaline uitmõte, kuidas saaks taolisi juhtimisloogikaid testida - näiteks RealFlight simulaatori abil! Pean silmas just seda servo juhtimise loogikat, millal ja kui palju servot liigumata peab. Ainus probleem oleks simulaatorist asukohainfo kättesaamine, kuid teoorias peaks ka see tehtav olema!? Kuna simulaator on plaanerite puhul ikka päris realislik, siis võiks taolisest testimisest ka kasu olla - ei teki mingeid üllatusi päris lennukiga katsetama hakates.

Posted: Thu Jan 24, 2008 12:42
by vallojoe
Simust vist väga lihtne asukohta kätte saada pole, küll aga kui kasutada nö gps-i emulaatorit (proge millega gpsimoodi infot juhtloogikale ette pritsida) saaks läbi mängida erinevad situatsioonid - näiteks asukoht seljataga - näed kuidas lennuk tüüride liigutamisele käitub ja ega ülereageerimist ei teki.

Posted: Thu Jan 24, 2008 12:53
by lauri
Vot seda minagi... saaks servo juhtimise loogikat simu abil katsetada kasvõi konkreetse lennukiga, kuhu see süsteem tulevikus võiks peale minna.

Tegelikult saaks mingist simust poitsiooni-info ekraanile kuvada ja sealt mõne teise kavala programmiga screen-capture teha (OpenGL-ist seda teha vist väga lihtne ja vaevatu pole) ning edasi tekstituvastusprogrammi ja sealt info ongi käes :roll: kui teisiti ei saa. Nii saaks vähemalt suuna-info kätte, kas mitte isegi RealFlight'ist? Ei tule ette, aga mälu järgi suutis ta info aknas igasugu inffi kuvada.

Posted: Thu Jan 24, 2008 13:01
by -Ilmar-
Elou!

See servo juhtimise algoritm tuleks ikka läbi mõelda. Ma arvan nii ei kõlba, kui lennuk peab kurssi muutma 90° siis keeran aga tüüri max välja ja ootan kuni õigesse suunda keerab, proportsionaalselt vähendan nurka. Mudel autoga vast saaks küll. Lennuk läheb vast keerisesse?

Omal tegelikult UHU-elekroga, ma rohkem enda lollustest lõhkusin kui lendasin, kodus liimisin, kuumliim oli kogu aeg soe :P
Kas mitte nii ei peaks olema, et keeramiseks peab tüüri korraks keerama, seejärel tagasi laskma?

Või ei pea nii keeruline olema?

RC-groups lehelt lugesin et 15meetrit sihtpunkti raadius pidi jääma vahest väheks, 30m pidi olema hea...

Parimat,
-Ilmar-

Posted: Thu Jan 24, 2008 13:08
by vallojoe
Hi.

Tüüri põhja ei tohiks jah keerata. ;)
Kui võimalik, siis peaks vist ka sõltuvus kiirusest olema.
Ja liigutamised võiksid sujuvad olla, mitte 0,1 sekundiga servast serva :D

Posted: Thu Jan 24, 2008 13:21
by lauri
Sellel teemal on kindlasti terve teadus, raamatud ja lõputööd... tasuks vast otsid ja uurida, ise leiutada kipub raskeks minema.

Rumala peaga loogiliselt mõeldes.

Esiteks tuleks paika panna, mis ülesandeid see lennuk üldse täitma peab, sellest sõltub ka palju. Kui hakkad taga ajama sihtmärke, nagu su testis, siis tekib tõesti olukord, kui peale punkti 3 saavutamist asub punkt 4 järsku 175 kraadi teises suunas. Kindlasti ei tohiks selle peale tüür põhja minna. Õhus reeglina ruumi on (UAV võib ju ka VÄGA kõrgel lennata - lennujuhtimise seisukohast vist ei või) ja seega ka keeramiseks ruumi on. Samas võiks taolist olukorda ka teekonna planeerimisel vältida ja teha näiteks 3. ja 4. sihtpunkti vahele lisa-sihtpunkti.

Juba tulevad pähe kõiksugu olukorrad, mis võivad tekkida. Näiteks lendab lennuk sihtpunktist napilt mööda, siis hakkab suund kiiresti muutuma. Kui nüüd tüüri käik väike on, võib lennuk jääda pikemaks ajaks ümber sihtpunkti tiirutama nagu kass ajaks saba taga.

Aga nagu öeldud, siis õhus ruumi on ja tüürikäigu peaks üpris väikese panema. Järgmine probleem on kõrguse hoidmisega. Kui see on täiesti eraldiseisev süsteem kõrgustüüri peal, siis võivad jällegi jamad tekkida.

Posted: Thu Jan 24, 2008 13:33
by vallojoe
Lisaks veel nö hädaabisüsteemid? - Mida teha, kui aku tühjaks hakkab saama. Kui ei õnnestu õiget suunda saavutada (näiteks murdunud tüüri link või tugev külgtuul). jne..

Posted: Thu Jan 24, 2008 16:26
by pipercub
Üheks võimaluseks protsessi simuleerimiseks oleks Matlab Simulink.

Tagasisidega regulaatoritest.
Märksõnad "PID regulaator". "proportsionaalne reguleerimine".

Eestikeelsed lingid:
http://www.sakt.ee/?p=25#k1
http://www.dcc.ttu.ee/abc/Juhtimiskontu ... endid.html
http://www.ene.ttu.ee/elektriajamid/opp ... 361/9.html

Kirjeldatud süsteem on P-regulaator. See tähendab, et peale asukoha mõõtmist suudab seade uue suuna välja reguleerida täpsusega umbes 1/5 reguleerimisulatusest. Meie juhul siis 180x0,2=36deg. Seda ideaalsetel tingimustel. Võimenduse suurendamisel hakkab süsteem võnkuma.