Autopilotti

Moderators: Petri, harald

User avatar
harald
Hallitus
Posts: 11021
Joined: Thu Sep 19, 2002 14:32 pm
Location: P-helsinki
Vene: Charlotta
Contact:

Post by harald »

Mulla on assembler-kavereita enemmän kuin sormia. Tätä juuri tarkoitan, jos hyvän mekaniikan saisi jostain voisimme FEnelijöitten keskuudessakin jollain aikataululla saada aikaiseksi paremmin toimivan softan. En tiennytkään että sinäkin Pete olit tätä porukkaa.
FIN-2674 s/y Charlotta [Mielipiteet on mielipiteitä] GSM: +358 50 594 1020
Joakim
yliluti
Posts: 950
Joined: Thu Aug 20, 2009 12:53 pm

Post by Joakim »

harald wrote:Miten olisi kiihtyvyys-sensoreihin perustuva autopilotti?

Olisi nimittäin aika näppärää jos autopilotti voisi päätellä kolmen akselin kiihtyvyyksistä tarvittavan peräsinvasteen suuruuden jonkun algoritmin avulla. Sitä kuuluisaa perä-tuntumaa ehkä.

Opensource pinnapilotti olisi poikaa, piireissä on paljonkin algoritmeja, fysiikkaa ja ohjelmointia osaavia jannuja jotka voisivat auttaa koodaamisessa, venekohtaisten algoritmien viilaamisesta nyt puhumattakaan.
Gyro on kulmakiihtyvyysanturi. Uskoisin sen olevan hyvinkin tärkeä, sillä pelkistä kiihtyvyysantureista on hyvin vaikea päätellä veneen kölisuunnan muutoksia, jotka ovat oleellisia ohjauksen kannalta. Lisäksi on mahdotonta erotella pelkillä kiihtyvyysantureilla kallistusmuutoksia lineaarisista kiihtyvyyksistä.

Kuten jotkut teistä tietävät valmistan erittäin tarkkoja kallistusmittareita, jotka perustuvat kiihtyvyysantureihin. Tarve olisi myös kallistusmittarille, joka toimisi tarkasti liikkuvassa veneessä, mutta se ei enää onnistukaan kiihtyvyysmittareilla, jos kallistuma pitää saada myös kiihtyvässä liikkeessä (= vauhdin muutos, kaarreajo, aallokon aiheuttama vaakasuuntainen kiihtyvyys jne.).

Ongelman voi ratkaista gyropohjaisella systeemillä, joka tietää kaikki 6 vapausastetta. Tällaisia käytetään ohjuksissa, lentokoneissa ja raketeissa, mutta tarkka sellainen maksaa PALJON ja on isokokoinen. INS-systeemi perustuu tähän ja sillä on voitu ohjata lentokone mantereelta toiselle.

Toinen ratkaisutapa on moniantenninen GPS. Kolmella antennilla saadaan sama tieto ja tämä onnistuu nykyään hyvin suurella tarkkuudella, mutta taas systeemi on kallis (yli 10 k¤). Antennit siis kytketään samaan erikoisvastaanottimeen, joka laskee antennien suhteellisen etäisyyden mm tarkkuudella.

Halpojen gyrojen ongelma on ryömintä. Niillä tehty systeemi ei pysy "suunnassa" eli minuutin päästä "kompassi" saattaa heittää jo useamman asteen. Tarvitaan siis edelleen kompassi (tai GPS), joka pitää keskimääräisen suunnan oikeana ja gyroa käytetään vain nopeissa liikkeissä.

Autopilotissa varmaankin riittäisi kaksiakselinen gyro eli siis kallistumaan ja kölisuuntaan reagoiva. Kölisuunnan ryöminnän voisi korjata kompassianturilla (tai GPS:llä) ja kallistuman ryöminnän kiihtyvyyspohjaisella kallistumittarilla, jonka antama keskiarvo pitää olla sama kuin kallistuma.

Periaatteessa kallistumaa ei edes tarvita, mutta varmasti se parantaa ohjailukykyä entisestään. Kryssillä pilotin voisi laittaa ajamaan vakiokallistumalla, kuten parhaat pinnamiehet?

Ryömintä ei siis haittaa autopilotissa eikä myöskää kulmakiihtyvyyden tarkkuudelle ole suuria vaatimuksia. Halvat romut siis kelpaavat. Näyttää löytyvän alle kympilläkin 1-akselisia.
http://search.digikey.com/scripts/DkSea ... at=1967243

Ihan hauska projektihan tuosta tulisi. Mikrokontrolloreita voi ohjelmoida myös C:llä, joka on aika paljon selkeämpää kuin assembler. Nykyisillä laskentatehoilla mahdollinen tehohukka ei ole ongelma, vaan ongelma tulee enemmän järkevästä algoritmistä. ST2000:n suorituskykyyn pääseminen ei voi olla vaikeaa!
Petri
FE-junkie
Posts: 3931
Joined: Thu May 29, 2003 01:17 am
Location: Espoo

Post by Petri »

harald wrote: En tiennytkään että sinäkin Pete olit tätä porukkaa.
Mä en koske rivikoodiin, Labview kyllä sujuu :) Mutta siis säätötsydeemit ovat olleet osa-aikaisena työsisältönä jo useamman vuoden.

Eihän nyt sinänsä oman säätöalgoritmin tekeminen ole juuri minkälainenkaan homma, mutta yleensä noi omatekemät viritelmät ovat vähän heikkolaatuisia kaupallisiin säätöalgoritmeihin verrattuna (esim. säätöparametrien automaattinen säätö on aika pop). Mutta siis sinänsä jos ei haeta absoluuttista säätötarkkuutta, tuo ihan perus PID-yhtälö
http://fi.wikipedia.org/wiki/PID-s%C3%A4%C3%A4din riittää ihan hyvin.
Eli autopilottiin sinänsä ei tarvita kuin kaksi suuretta, haluttu suunta ja hetkellinen suunta (jonka voisi saada joko GPS:stä, sähkökompassista tai sitten kiihtyvyysanturista mikä vaatisi kyllä hieman datankäsittelyä) ja sitten vain nämä luetaan säätöalgoritmiin niin tuloksena on ohjaussignaali jonka skaalaus sitten on helposti toteutettavissa. Itse algoritmi voisi hyvin olla universaali, lähinnä juuri noita säätöparametrejä pitää vaihdella jopa eri käyttöalueisiin (jos hifistellä haluaa) ts. samat säätöparametrit eivät toimi kovassa kelissä kryssillä kuin tyynessä moottoriajossa.

Mutta toisaalta oma kokemus näistä hommista on osoittanut, että jos on mahdollista ostaa avaimet käteen paketti, mieluummin tehdä niin kuin käyttää tuhottomasti tunteja jonkun oman purkkaviritelmän kasaamiseen (ellei oppimissuorite ole jonkinlainen itsetarkoitus) :)

Kysehän on siis paljolti siitä mitä hakee, hakeeko ihan vain simppeliä autopilottia vai sitten tosiaan hifistellympää systeemiä kiihtyvyysanturien avulla.
Last edited by Petri on Fri Oct 30, 2009 01:17 am, edited 1 time in total.
User avatar
harald
Hallitus
Posts: 11021
Joined: Thu Sep 19, 2002 14:32 pm
Location: P-helsinki
Vene: Charlotta
Contact:

Post by harald »

Kiitos Joakim tästä viestistäsi joka vain mielestäni vahvistaa näkemystäni. Seuraavaksi näen että ongelma ei enää ole osaamisen puute, vaan projektinhallinnan osaamisen tarve. Tämä on sitten se seuraava askel opensource-ajattelussa. Joko se osaavin alkaa tekemään itse ja kertoo mitä kertoo (Linus), tai sitten joku joka osaa projektinhallinnat osallistuu omalla osaamisellaan (siksi että sillä on FEne, se on kivaa, hän om masokisti, tjms?).

Kuka purkaa ST1000:sensa ekana ja tarjoaa mekaniikan projektille?

edit: Petelle, oppimisnäkökulma on yksi. Toinen on vain se inhimmillinen tapa tehdä tekemättömiäkin asioita vain sen takia että tuntuu siltä että ne on mahdollista tehdä (Mt. Everest). Esimerkkinä se Discovery:llä ollut mainos hulluista masinooista; "Why put a jet-engine on motorbike?" .. <hullu kiilto silmissä> "because we can!". Järkeähän tuossa ei ole noin suoraan subjektiivisin arvoargumentein katsottuna mutta inhimmillistä se on kyllä, ja myös seuraavassa tai sitä seuraavassa sukupolvessa meitä kaikkia mahdollisesti palvelevaa.

edit²: Miten syödään elefantti?
FIN-2674 s/y Charlotta [Mielipiteet on mielipiteitä] GSM: +358 50 594 1020
User avatar
harald
Hallitus
Posts: 11021
Joined: Thu Sep 19, 2002 14:32 pm
Location: P-helsinki
Vene: Charlotta
Contact:

Post by harald »

Älä Pete käytä tuota purkka-viritys nimittelyä, koen sen alentavana. Tietäisitkin minkälaista purkkaa ihan kaupallisista ammattilaisten toimesta tehdystä koodista oikeasti löytyy. Olen sitä mieltä että harrastelijan rakkaudella tehty koodi voi olla todella laadukastakin.

Ei ole harvinaista että kaupallisella puolella tuotteita suoltava koodaaja tekee vapaa-ajallaan rakkaudella jotain toista ohjelmaa, joka on laadukkaammin ja paremmalla ajatuksella tehtyä kuin se "wow, it compiled, let's ship it!"-koodi.

Normityötilanteessa joutuu aina ratkomaan sen kolmion halvalla-nopeasti-hyvin, josta aina yhden jättää pois. Myyjä väittää myyvän aina kaikkia kolmea, mutta tuotantopuoli joutu aina tekemään halvalla-nopeasti. Paitsi jos on harrastaja, niin silloin voi tehdä halvalla-hyvin, ja se on sitten valmis sitten kun se on valmis, jos ikinä. Joskus se on vain riittävän valmis.
FIN-2674 s/y Charlotta [Mielipiteet on mielipiteitä] GSM: +358 50 594 1020
Joakim
yliluti
Posts: 950
Joined: Thu Aug 20, 2009 12:53 pm

Post by Joakim »

Petri wrote: Eli autopilottiin sinänsä ei tarvita kuin kaksi suuretta, haluttu suunta ja hetkellinen suunta (jonka voisi saada joko GPS:stä, sähkökompassista tai sitten kiihtyvyysanturista mikä vaatisi kyllä hieman datankäsittelyä) ja sitten vain nämä luetaan säätöalgoritmiin niin tuloksena on ohjaussignaali jonka skaalaus sitten on helposti toteutettavissa.

Mutta toisaalta oma kokemus näistä hommista on osoittanut, että jos on mahdollista ostaa avaimet käteen paketti, mieluummin tehdä niin kuin käyttää tuhottomasti tunteja jonkun oman purkkaviritelmän kasaamiseen (ellei oppimissuorite ole jonkinlainen itsetarkoitus) :)
Säädön toimivuuden kannalta tuo hetkellisen suunnan muutosnopeus on se oleellinen. Sitä ei saa GPS:tä eikä sähkökompassista, sillä ensimmäinen havaitsee muutoksen liian myöhään ja jälkimmäistä juotuu suodattamaan rajusti aallokossa. Siksi tarvitaan gyro, joka mittaa suoraan juuri tuota kölisuunnan muutosnopeutta.

Eiköhän oikein hyvän autopilotin saa 2-4 tonnilla. En tiedä olisiko jo tonnin ST4000 hyvä? Aika työlästä on varmasti tehdä kunnollinen pilotti itse. Luulisin, että minulle vaikeinta olisi tehdä se mekaaninen osa. Ehkä sopivan työyksikön voi ostaa, mutta tuskin halvalla.

Ilmeisesti hyvissäkin piloteissa on vielä paljon eroja: http://forums.sailinganarchy.com/index. ... opic=92078

Ehkä olisi mahdollista tehdä maailman paras pilotti? Veneala on kuitenkin aika vanhoillinen ja hidas, joten voi hyvin olla, että nykyiset pilotit ovat vielä kaukana mahdollisuuksien rajoista.
User avatar
harald
Hallitus
Posts: 11021
Joined: Thu Sep 19, 2002 14:32 pm
Location: P-helsinki
Vene: Charlotta
Contact:

Post by harald »

Olikos se Vanhalan Mika joka Usenetin sfnet.harrastus.veneet kautta postaila aikaan juttuja omasta autopilottiprojektistaan? Siitäkö runko?

http://www.elisanet.fi/ristozz/projekti_autopilotti.htm
(Rikkinäinen sivu)

edit: Se olikin tämä projekti:

http://www.ele.tut.fi/~hkosola/vene/aut ... opilot.htm

Ja onhan se meille tutun Porin Navigaatioseuran SeaClear porukan:

http://www.porinnavigaatioseura.fi/3/ko ... drive.html
FIN-2674 s/y Charlotta [Mielipiteet on mielipiteitä] GSM: +358 50 594 1020
User avatar
harald
Hallitus
Posts: 11021
Joined: Thu Sep 19, 2002 14:32 pm
Location: P-helsinki
Vene: Charlotta
Contact:

Post by harald »

Joakim wrote:Ehkä olisi mahdollista tehdä maailman paras pilotti? Veneala on kuitenkin aika vanhoillinen ja hidas, joten voi hyvin olla, että nykyiset pilotit ovat vielä kaukana mahdollisuuksien rajoista.
No siis mielestäni jo perus-ST1000:sessa on niin paljon parantamista ihan vain lisäsensorilla (kölisuunnan muutoksen nopeus) ja laite sinänsä on jo riittävän hyvä meidän veneeseen ja halpa vielä että kannattaisi ehkä aloittaa siitä?

Rakentaisi sellaiseen uuden hallinnan joka osaa "ennakoida" paremmin.
FIN-2674 s/y Charlotta [Mielipiteet on mielipiteitä] GSM: +358 50 594 1020
Petri
FE-junkie
Posts: 3931
Joined: Thu May 29, 2003 01:17 am
Location: Espoo

Post by Petri »

harald wrote:Älä Pete käytä tuota purkka-viritys nimittelyä, koen sen alentavana. Tietäisitkin minkälaista purkkaa ihan kaupallisista ammattilaisten toimesta tehdystä koodista oikeasti löytyy. Olen sitä mieltä että harrastelijan rakkaudella tehty koodi voi olla todella laadukastakin.
Nojaa, totta tuokin, mutta jokaista hartaudella tehtyä softaa kohtaan on sitten aina n kappaletta softia joista julki on versio 0.03 jonka jälkeen tekijä on kyllästynyt päivittelemään sitä. Tutkimuslaitosten puolella on paljon softanpätkiä, jotka on tehty projektina kesätyötekijän toimesta kiireessä "jos toimii rajatussa tapauksessa, riittää kaikille" tai jatko-opiskelijan toimesta juuri suurella hartaudella (lue olemattomalla dokumentoinnilla) niin että softa toimii suurinpiirtein pyhällä hengellä kunnes tekijä lähtee pois ja ensimmäinen vakavampi bugi tulee esille.
Sen sijaan sitten moni kaupallinen sovellus/laitteisto on suurinpiirtein yhtä bugista, mutta valmistajalla on intoa niitten korjaamiseen koska se edesauttaa lisämyyntiä (mittaustekniikka-bisneksessä huono maine on kuolemaksi, jos vaihtoehtoja on olemassa). No, päinvastaisiakin esimerkkejä toki on mutta kokemusten valossa pidän kyllä yhä kiinni purkkaviritelmä-määritelmästä :)
Olen mm. yrittänyt debugata matlab-koodia, jonka error-viestien ainoa informaatioarvo oli se että koodi ei toimi, itse virhe (ja sen sijainti) piti käytännössä arvata koodista. Ja siis tässä tapauksessa virhe ei ole syntaksissa, vaan siinä että kun tietyt muuttujat saavat arvon joka on suurempi kuin eräs mielivaltaisesti asetettava vakio toisessa koodipätkässä jota ko. koodi kutsuu niin koodi ei toimi.
Last edited by Petri on Fri Oct 30, 2009 02:00 am, edited 1 time in total.
Petri
FE-junkie
Posts: 3931
Joined: Thu May 29, 2003 01:17 am
Location: Espoo

Post by Petri »

Joakim wrote: Säädön toimivuuden kannalta tuo hetkellisen suunnan muutosnopeus on se oleellinen. Sitä ei saa GPS:tä eikä sähkökompassista, sillä ensimmäinen havaitsee muutoksen liian myöhään ja jälkimmäistä juotuu suodattamaan rajusti aallokossa. Siksi tarvitaan gyro, joka mittaa suoraan juuri tuota kölisuunnan muutosnopeutta.
Tuo on totta, gepsin herkkyys on varmastikin monessa mielessä mutta olennainen asia säädön kannalta on lähinnä se että saadaan nopeaa vastetta säätötoiminnalle. Kiihtyvyysanturinhan kannalta tilanne voisi olla sellainen että kun ajosuunta "lukitaan" niin samalla anturi nollataan ja jokainen anturin signaali siitä hetkestä lähtien (tietyn suodatusrajan alapuolella tietenkin) on käytännössä suoraa informaatiota suuntapoikkeamasta ja kiihtyvyyden aksiaalista suuntaa voi käsitellä suoraan +- suuntaisena muutoksena jonka yli ohjaussyötteen voi laskea esim. juuri PID:n avulla.

Lisäksi jos tähän kuitenkin yhdistetään sitten vaikkapa n sekunnin välein tapahtuva juoksevan ajosuuntakeskiarvon vertaaminen targettiin, voitaisiin vene pitää sitten myös oikeastikin suunnassa. Siis että jollain suuremmalla hertsitaajuudella tarkasteltaisiin ajosuuntaa gyrojen pohjalta mutta sitten n sekunnin välein tehtäisiin yksi looppi, missä tarkistettaisiin että ajosuunta on vielä about oikea ja kiihtyvyysanturien syöte voitaisiin taas nollata. Tällöin ryöminnällä ei olisi vaikutusta, koska tarkasteltaisiin vain suhteellisia muutoksia lyhyen ajan sisällä.
Toisaalta entä jos tarkistusajankohta osuisi juuri valtavaan puuskaan+aaltoon, no tietenkin tällöin voisi olla joku stopperi että jos kiihtyvyysanturin lukema on yli jonkin raja-arvon suoritetaan tarkistus parin sekunnin päästä uudestaan.
Eiköhän oikein hyvän autopilotin saa 2-4 tonnilla. En tiedä olisiko jo tonnin ST4000 hyvä? Aika työlästä on varmasti tehdä kunnollinen pilotti itse. Luulisin, että minulle vaikeinta olisi tehdä se mekaaninen osa. Ehkä sopivan työyksikön voi ostaa, mutta tuskin halvalla.
Jep, mekaaninen laitteisto on se hankalin osio noin pienprojektin kannalta, etenkin meriympäristön kestävä sähkömekaniikka voisi olla varsin hankalasti toteutettavissa luotettavasti.
Sen sijaan jos siis jos käyttäisi olemassaolevan autopilotin motoriikkaa, vain säätöpuolen uusien, hommassa olisi ehkä jotain mahdollisuuksiakin järkikustannuksin.
Joakim
yliluti
Posts: 950
Joined: Thu Aug 20, 2009 12:53 pm

Post by Joakim »

Petri wrote: Lisäksi jos tähän kuitenkin yhdistetään sitten vaikkapa n sekunnin välein tapahtuva juoksevan ajosuuntakeskiarvon vertaaminen targettiin, voitaisiin vene pitää sitten myös oikeastikin suunnassa. Siis että jollain suuremmalla hertsitaajuudella tarkasteltaisiin ajosuuntaa gyrojen pohjalta mutta sitten n sekunnin välein tehtäisiin yksi looppi, missä tarkistettaisiin että ajosuunta on vielä about oikea ja kiihtyvyysanturien syöte voitaisiin taas nollata. Tällöin ryöminnällä ei olisi vaikutusta, koska tarkasteltaisiin vain suhteellisia muutoksia lyhyen ajan sisällä.
Toisaalta entä jos tarkistusajankohta osuisi juuri valtavaan puuskaan+aaltoon, no tietenkin tällöin voisi olla joku stopperi että jos kiihtyvyysanturin lukema on yli jonkin raja-arvon suoritetaan tarkistus parin sekunnin päästä uudestaan.
Gyro mittaa ainoastaan kulmakiihtyvyyttä. Sille pitää kertoa, että nyt keula osoittaa oikeaan suuntaan, jonka jälkeen kulmakiihtyvyyttä integroimalla saadaan jatkuvasti hetkellinen kölisuunta. Kiihtyvyyden virheistä sitten kasaantuu integrointiin ryömintää.

Sitten on toinen "kölisuunta" GPS:stä tai magneettikompassista. Jotta vene menee minne halutaan, pitää hetkellisen kölisuunnan keskiarvo olla sama kuin GPS/magneettisuunnan keskiarvo.

Voisin kuvitella, että tuossa PID-algoritmissa suuntavirhe e olisi erilailla määritelty kolmessa eri termissä. e:n muutosnopeus tulee suoraan gyrolta. Tuon integraatiotermin voi ehkä korvata GPS-keskiarvolla ja sitten tuo ekan termin e voisi olla gyrolta integroimalla saatu, jota korjataan jatkuvasti siten, että keskiarvo pysyy lähellä GPS:ää.
Joakim
yliluti
Posts: 950
Joined: Thu Aug 20, 2009 12:53 pm

Post by Joakim »

Tässä aika paljon yleistä autopilotin toiminnasta: http://www.marinea.fi/downloads/Ocean_R ... opilot.pdf

Pari nopeaa huomiota:

Pitäisi kääntää +-35 astetta. ST1000/2000/4000 kääntää alle puolet tuosta (+- 16 astetta manuaalin mukaisella 460 mm asennuksella). Tämä on varmasti ongelma avotuulella pahemmassa kelissä.

Nopeus pitäisi olla +35->-35 max 12 s. ST2000 ilmoitetaan 4.5 s lock-lock ja ST1000 8 s. Koska kääntökulma on vain puolet, ST1000 on liian hidas.

Kaksi edellistä yhteensä: Tarvittaisiin voimakkaampi työyksikkö, jonka voi laittaa paljon lähemmäksi peräsinakselia. Systeemipiloteissa työntövoima on satoja kiloja ja työnnön pituus (stroke) samaa luokkaa kuin pinnapiloteissa.

Artikkelissa mainitaan, että ilman gyroa suunta ei pysy +-20 asteen sisällä, mutta gyrolla pysyy +-7 asteessa.

Väitetään, että nopeustieto pitää olla mukana ohjausparametreissä eli suuremmalla nopeudella vähemmän vahvistusta.

Tämäkö on halvin gyrokokonaisuus? http://www.marinea.fi/shop/product_details.php?p=3302
Olli
hyperaktiivi
Posts: 2050
Joined: Wed May 19, 2004 20:16 pm
Location: Helsinki

Post by Olli »

Tossa olisi kolmen akselin gyro, kolme kiihtyvyysanturia ja gps-liitäntä. Arduino-pohjainen värkki, open source softaa ja rautaa siis:

http://store.diydrones.com/ProductDetai ... ArduIMU-01

Onhan tolla hintaa, $130, mutta pelkkä kolmen akselin gyro yhdessä paketissa maksaa jo tuplat. Toi on kai ensisijaisesti tarkoitettu radio-ohjattaviin lentohärpättimiin, mutta voisihan sitä soveltaa veneeseenkin...

Manuskat tuolla: http://docs.google.com/Doc?docid=0AaMOU ... 2aGI&hl=en

ST1000:n sisällähän on reilusti tilaa, eli ei tota ihan tollaisena kannattaisi ostaa, vaan rakentaa vaikka ihan perus Arduino Duemilanoven ympärille. Siihen olisi helpompi koplata lcd-näyttö, nappulat, ja liityntä ST1000:n karamoottoriin. Loppu olisi sitten softaa...
Olli Niemi
Olli
hyperaktiivi
Posts: 2050
Joined: Wed May 19, 2004 20:16 pm
Location: Helsinki

Post by Olli »

Tommonen näyttö voisi mahtua ST1000:n ikkunaan sellaisenaan:

Image
Olli Niemi
Joakim
yliluti
Posts: 950
Joined: Thu Aug 20, 2009 12:53 pm

Post by Joakim »

Olli wrote: Onhan tolla hintaa, $130, mutta pelkkä kolmen akselin gyro yhdessä paketissa maksaa jo tuplat. Toi on kai ensisijaisesti tarkoitettu radio-ohjattaviin lentohärpättimiin, mutta voisihan sitä soveltaa veneeseenkin...
Tuo nyt kuitenkin käyttää kympin gyroja: http://search.digikey.com/scripts/DkSea ... 97-8230-ND

Veneessä ei tarvita 6:tta vapausastetta.
Post Reply