gps lap timer

Fórumok

sziasztok,

ismer valaki ingyenes és lehetőleg nyílt forrású gps lap timer programot linux alá?
mindegy miben van megírva, csak ne wine vagy egyéb trükközés kelljen a futtatáshoz...

gpsbabel szedi le a tracklogot amiből (mondjuk nmea-ból) kellene dolgoznia:
- esetleges interpoláció a tracklogon
- köridők megjelenítése (cél koordináta meghatározási lehetőség mellett)
- sebesség kalkulációk
- stb.

thx

Hozzászólások

[off] Ilyen nick-kel en biztos nem keresnek, hanem megirnam... :-) [/off]

Szoval komolyabban: kerdes, honnan kapod a tracklogot. Ha el tudsz inditani egy gpsd-t az eszkozon, akkor irsz melle egy kis programot, ami a libgps-t hasznalva azt szamol ki neked, amire epp kivancsi vagy, mindezt real-time. Ha csak a tracklogot kapod meg egy file-ban, akkor (esetleg gpsbabel-lel atkonvertalod NMEA-ba,) megeteted a gpsfake-kel, es utana szabaditod ra a programodat.

Erdemes lehet forrasbol forditani a gpsd-t/libgps-t, mert nemreg volt API valtas, es ha uj programot irsz, erdemes azt hasznalni, mert a regi elobb-utobb meg fog szunni.

> [off] Ilyen nick-kel en biztos nem keresnek, hanem megirnam... :-) [/off]

a név kötelez? :)
amúgy mennyivel kényelmesebb használni már valami készet... már ha lenne :(

tracklog utólag van letöltve egy gps eszközről, nem online infó. tehát a tracklog tetszőleges konverziókon tud átmenni feldolgozás előtt, azaz a gpsbabel-el olyan formátumban szedem le amit a lap timer fel tud(na) dolgozni.

ezekből kifolyólag a gps kommunikációs lib-ek nem is kellenek.
ahogy nézem a szolgáltatásaikat a gpsfake megoldás is csak fölösleges plusz köröket jelentene, ugyanis itt inkább egy track log parseolásról van szó.

megírnám én szívesen, de több dolog van amitől tartok:

- interpoláció
mivel a mintavételezés 1mp alapú, ezért nem árt egy kis utómunka rajta, de nem tudom, hogy milyen algoritmust kellene használni, hogy a fix koordináták közé megfelelően elosztott plusz pontokat tegyek. ráadásul az interpoláció során nem elég lineárisan feltölteni az üres teret, hanem figyelembe kellene venni a jelentős gyorsulást/lassulást.

- célpont/célvonal probléma
ha adott egy célpont koordináta, akkor egy köridő úgy tud kiszámolódni, hogy megnézem az adott koordináta érintései között eltelt időt. viszont nem mindig ugyan ott haladok át a célvonalnál és a gps pontatlanság is bejátszik. 1mp alatt elég nagy távokat meg lehet tenni, tehát még interpoláció után sem biztos, hogy érinteném a pontot, így ki kellene találni hogy végülis mikor is mentem át a célon. talán jó lenne a célkoordinátához legközelebb eső -akár interpolált- koordinátát kiválasztani és azt felhasználni, de ebben egyáltalán nem vagyok biztos.

ezen kívül biztosan bele lehetne még futni jó pár érdekességbe...
időm szinte semmi, szóval ha lehet nem kódolok, főleg ha volna vmi elérhető megoldás :)

Ne célpont, hanem célvonal (szakasz) legyen ha a két mért pontot (M1-M2) összekötő szakasz metszi a célszakaszt akkor átment. A metszéspont az M1-M2 szakaszt valamilyen arányban osztja, ilyen arányban osztva a mintavételi időt mintavételi időnél pontosabb eredményt kaphatsz. (A hiba az M1-M2 szakaszon mérhető gyorsulástól függ.)

ez eddig ok

a kérdés inkább az, hogy mi a matekja annak, hogy ellenőrizni tudjam, hogy a célvonal szakaszát (c_x1, c_y1; c_x2, c_y2) vajon metszi-e a két mért pont közti szakasz (m_x1, m_y1; m_x2, m_y2) ill ha igen akkor hol?

nekem a koordinátákkal való ilyen játszadozás nem áll össze fejben, a többi ehhez képest gyerekjáték volna

A szakaszt tartalmazó egyenes egyenlete: (y-y1)*(x2-x1)=(x-x1)*(y2-y1) ahol (x1,y1) és (x2,y2) a végpontok. Fel kell írni mindkét egyenes egyenletét és mint egyenletrendszert megoldani x-re és y-ra. Az eredmény legyen mondjuk (Px,Py) ezután vizsgálni kell, hogy a metszéspont a szakaszon van-e.
Részletesebben: Google("szakasz metszéspont")

a név kötelez? :)

Hat igen... :-)

ahogy nézem a szolgáltatásaikat a gpsfake megoldás is csak fölösleges plusz köröket jelentene, ugyanis itt inkább egy track log parseolásról van szó.

Na igen, csak a libgps arra szamit, hogy a gpsd-vel kell beszelgessen (kapcsolodas a 2947/tcp porton, watcher mod bekapcsolas, stb), es valoszinuleg igy a legegyszerubb megoldani. Azert ajanlottam a libgps-t, mert egy egyszeruen kezelheto struct-ban kapod meg az aktualis adatokat, nem kell semmit csinalni hozza. Ha jol emlekszem, raadasul a gpsd kiszamolja neked a sebesseget, iranyt, stb, ha netan a GPS nem kuldene. De ha neked van kedved NMEA-t parse-olni... :-)

de nem tudom, hogy milyen algoritmust kellene használni, hogy a fix koordináták közé megfelelően elosztott plusz pontokat tegyek

Kerdes, hogy a gyorsulas mennyire valtozik a mintavetelezesi ido alatt... gondolom, jelentosen nem, es kulonben is a GPS valoszinuleg pontatlanabb lesz. Azt csinalnam, hogy az elozo nehany kapott sebesseg alapjan kiszamolom a gyorsulast, es eszerint tennem le a pontokat (lasd fizika tankonyv :-)).

célpont/célvonal probléma

Itt talalsz egy csomo hasznos kepletet, ha GPS koordinatakkal akarsz dolgozni. Igaz, hogy inkabb navigaciohoz valok, de peldaul a ket vonal keresztezodesenek a keplete megvan.

ezen kívül biztosan bele lehetne még futni jó pár érdekességbe...

:-)

Ha erdekel, csinaltam egy programot, ami libgps-t hasznal, es kiirja a celpont tavolsagat es iranyat a pillanatnyi helyzetedhez kepest (navigaciohoz es wireless antenna belovesehez csinaltam). Kozvetlenul valoszinuleg nem fogod tudni felhasznalni, de a libgps felhasznalasanak demozasahoz jo lehet (van egy-ket bug, amit ki kell kerulni).