Android上的DGPS更正

rav*_*mir 26 gps android

我正在开发一个项目,旨在使用Android手机和附近的电台的GPS功能,使用RTK DGPS技术计算更精确度(cm)的定位.

到目前为止,我还没有看到有人说他们实际上设法执行了类似的任务(除了@GPSmaster,没有解释如何),并且APK似乎没有提供来自GPS芯片的任何信息除了位置和NMEA消息更新.如果可能,我需要伪距和载波相位.

我想知道是否:

  • 可以使用本机代码或其他较低级别的窥探来查找手机上的较低级别的挂钩;
  • 可以将RTCM校正发送到这些设备之一上的GPS芯片;

有任何想法吗?

小智 5

一般而言,DGPS是一种通过抵消GPS信号上的大部分大气效应来提高实际位置精度的技术.在典型的直接GPS测量中,由于大气效应,在计算到卫星的范围内存在大约随机误差.这就是为什么留在固定位置收集数据的GPS接收器似乎在误差椭圆中漂移.对于同一区域内的两个接收站,大气效应几乎相同,并且它们将在其相似大小和方向的误差椭圆内并行漂移.如果两个接收器中的一个位于已知位置,则可以从已知站的真实位置获取其表观GPS位置的差异并绘制,以找到未知站的真实位置.

回到当天(大约1992年),当我们不得不通过"后处理"完成DGPS时,我们习惯于将两个站点收集的原始NEMA数据与时间匹配,计算基线向量并将其应用于已知点以查找未知的一点.我认为我们使用的NEMA数据仅记录到最近的10秒.数学并不是那么难.

我怀疑可以通过互联网发送NEMA GPS消息[ http://developer.android.com/reference/android/location/GpsStatus.NmeaListener.html ]来自平板电脑的已知点(天空晴朗)插入智能手机(也有清晰的天空视图),然后可以计算差异,并在几公里的距离内实现亚米级相对位置,即使忽略了假定的互联网传输时间.即使平板电脑和智能手机都在应用广播DGPS调整,这项技术仍可能有效.


cLu*_*pus 5

随着 Android 7.1 的出现,来自 GPS 芯片的原始数据将可供开发人员使用。(http://gpsworld.com/google-to-provide-raw-gnss-measurements/

其他人似乎做了一些类似于你希望完成的事情(http://gpsworld.com/innovation-precise-positioning-using-raw-gps-measurements-from-android-smartphones/


dro*_*nus 4

不,通过 Android 应用程序对 GPS 设备进行任何较低级别的访问是不切实际的。这有几个原因:

  • 该应用程序没有其他方式可以通过基于 Java 的 API 来访问 GPS 设备。本机代码被禁止使用大多数设备,并且通常需要 Java 包装器来穿过 Android 传感器设备的沙箱。这构成了主要的安全概念。

  • 如果本机代码能够访问较低级别的 GPS 设备,则它必须处理目前未由 API 抽象的多个不同制造商协议。最好的机会是访问自定义 NMEA 代码,该代码可能仍然存在与设备相关的警告。

  • 即使可以实现较低级别的访问,也会失去其他位置源(例如 WLAN 和手机运营商)的集成合并,这些位置源可能合并在 Java API 以下但 NMEA 协议之上的本机代码中。