merlos / iOS-Open-GPX-Tracker

GPS Tracker app for iOS + WatchOS. Log your tracks without limits and share them; Open source GPX tracker app written in Swift
http://www.merlos.org/iOS-Open-GPX-Tracker/
GNU General Public License v3.0
605 stars 149 forks source link

Feature request: add pitch, roll and yaw to GPX dataset #184

Open mrAceT opened 4 years ago

mrAceT commented 4 years ago

The iPhone has sensors which could record these, I have seen apps with a compass (yaw, zero degrees = north) and a "spirit level" for pitch and roll (if I found the correct translation). When it would be possible to record this in the GPX dataset I would be very grateful

vincentneo commented 4 years ago

Hi @mrAceT,

This question is sort of related of the same point of the (coincidental) previous issue #183, which meant that it could theoretically be possible, but not without an extension.

Regardless, I am a little interested about the use cases of the yaw, pitch, roll data of the device. Keen to share?

mrAceT commented 4 years ago

Hi @vincentneo,

I can image a multitude of possibilities, where an extensive log of this data could be valuable, but for the reason for me asking is this:

For my project I already use your app, since my 360 camera is not able to record GPS data into the EXIF info inside the image.

Some of those 360 camera's are able to correct the horizon automatically, but for that the quality and/or resolution of the images reduces. Not even speaking about the difference in price.. When it would be possible to record yaw pitch and roll I think would be able to prefect the quality of the image in my post processing with this data!

PS: when you are at it, could you add an option for recording interval? Now I think it has a sort of fuzzy logic.. with an interval around 2 seconds.. if that could be set to 1 second or half a second.. ?

AD: the GPX file structure is now:

            <trkpt lat="{latitude}" lon="{longitude}">
                <ele>{elevation}</ele>
                <time>{year}-{month}-{day}T{hour}:{minute}:{second}Z</time>
            </trkpt>

To remain within the standard you could:

            <trkpt lat="{latitude}" lon="{longitude}">
                <ele>{elevation}</ele>
                <time>{year}-{month}-{day}T{hour}:{minute}:{second}Z</time>
                <extensions>
                    <yaw>{yaw}</yaw>
                    <pitch>{pitch}</pitch>
                    <roll>{roll}</roll>
                    <speed>{speed}</speed>
                </extensions>
            </trkpt>

Added speed also to help out #183 ;)

vincentneo commented 4 years ago

Hi @mrAceT,

Seems like an interesting use case. So the phone is strapped to the 360 camera?

PS: when you are at it, could you add an option for recording interval? Now I think it has a sort of fuzzy logic.. with an interval around 2 seconds.. if that could be set to 1 second or half a second.. ?

I don't quite understand the intervals part though. Right now how it works is that when a new location is received, it is added in. If done in an interval way, do you mean to duplicate the coordinates data while adding new yaw, pitch, roll values?

mrAceT commented 4 years ago

So the phone is strapped to the 360 camera?

Not now, but when the phone would record yaw/pitch/roll that obviously will be needed.

Right now how it works is that when a new location is received, it is added in.

Ah.. so it already is recording at the highest possible frequency.. double data is naturally useless.

But may I assume that this is true for GPS data? yaw/pitch/roll can be read out at an higher rate?.. Then I would still love a frequency option (I can filter out double data, or you could leave "double data" as empty ?)

vincentneo commented 4 years ago

yaw/pitch/roll can be read out at an higher rate?..

Currently I am unsure of how the API works on that so I'm not sure if its a high rate or not.

(I can filter out double data, or you could leave "double data" as empty ?)

Maybe this could be an optional menu feature, with another option for maximum rate? Leaving the duplicated track points empty may break compatibility with other GPX compatible devices or softwares.

Nammurg commented 1 year ago

That's very interesting, my action camera does not have GPS and I am using my Apple Watch which has these sensors and I mainly use it to log my go-Karting races. I was always wondering how can I add more sensors to it... It would be nice to have yaw, pitch, roll, g-force logged.