barbeau / gpstest

The #1 open-source Android GNSS/GPS test program
Apache License 2.0
1.74k stars 361 forks source link

Implement augmented reality sky view #12

Open barbeau opened 11 years ago

barbeau commented 11 years ago

Basic concept is that you hold the device up to the sky and it shows you where satellites are positioned in the actual sky, based on your orientation and position.

We can utilize the open-source Google Sky Map app to implement this.

Blog about open-sourcing the project: http://googleresearch.blogspot.com/2012/01/open-sourcing-sky-map-and-collaborating.html?m=1

Forum post about implementation details of showing star positions: https://groups.google.com/forum/m/#!topic/google-sky-map/UKEURYGcQP8

barbeau commented 11 years ago

From the above forum, it sounds like we will need to convert the satellite azimuth and elevation values, which are in the "horizontal" coordinate system, to the right ascension and declination values, which are in the "Equatorial" coordinate system, before we add the satellites to Sky Map.

More on celestial coordinate systems is here: http://en.m.wikipedia.org/wiki/Celestial_coordinate_system

barbeau commented 11 years ago

So it looks like util to do any conversion already exist in com.google.android.stardroid.units package. Also, it looks like internally Sky Map uses the horizontal coordinate system, and any data provided in the equatorial coordinate system is projected to the horizontal coordinate system (see ProtobufAstronomicalSource.java, which uses methods in GeocentricCoordinates.java). So, given that GPS satellite positions are already in horizontal coordinate system, we should just be able to inject the positions directly in code without needing to do any projection.

barbeau commented 6 years ago

We could also use ARCore for this, although it's only supported on newer devices.

There isn't currently a location-oriented mode to ARCore, but here's an issue for the feature request that includes an early implementation: https://github.com/google-ar/arcore-android-sdk/issues/119

See commit here: https://github.com/inio/arcore-android-sdk/commit/e829c05cef0b42f882a7b896e41f66f311fffb71

goldfndr commented 5 years ago

GNSS View can be used to show what this might look like. (It apparently downloads positions and displays them for arbitrary locations, so it includes satellites that the GNSS receiver isn't actually receiving.)

barbeau commented 5 years ago

Here's a Unity ARCore implementation of shooting stars that might be useful: https://github.com/FusedVR/ARCore-Shooting-Star

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

stale[bot] commented 2 years ago

Closing this. Please reopen if you believe it should be addressed. Thank you for your contribution.

barbeau commented 2 years ago

This might be useful, need to look into it: "VPS and the ARCore Geospatial API" https://io.google/2022/program/fc42307b-3b0f-4925-bfea-99499ba08088/

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

stale[bot] commented 8 months ago

This issue has been automatically marked as stale because it has not had recent activity. Please comment here if it is still valid so that we can reprioritize. Thank you!

barbeau commented 8 months ago

Not stale

gdt commented 5 months ago

FWIW, I'm -1 on implementing features that require proprietary OS components. So if it won't work on lineage/calyx/etc. and if it won't work in the fdroid build, I see it as not a good thing to add.