web-dev-qa-db-ja.com

AndroidのDGPS修正

Android電話と近くの駅のGPS機能を使用して、RTK DGPSテクノロジー。

これまでのところ、実際に同様のタスクを実行できたと言っている人は誰もいません(@GPSmasterを除いて、 方法を説明していません )、APKはそうは思われません位置情報とNMEAメッセージの更新以外のGPSチップからの情報を提供します。可能であれば、疑似距離とキャリアフェーズが必要です。

私は疑問に思っていました:

  • ネイティブコードまたは他の低レベルのスヌーピングを使用して、電話で低レベルのフックを探すことは可能です。
  • これらのデバイスの1つにあるGPSチップにRTCM補正を送信することは可能です。

何か案は?

26
ravemir

いいえ、AndroidアプリケーションによってGPSデバイスへの低レベルのアクセスを取得することは実用的ではありません。これにはいくつかの理由があります:

  • アプリケーションには、JavaベースのAPIを介してGPSデバイスにアクセスする他の手段はありません。ネイティブコードはほとんどのデバイスを使用することが禁止されており、通常はJavaラッパーAndroidセンサーデバイスのサンドボックスをトンネリングします。これが、主要なセキュリティコンセプトを構成します。

  • ネイティブコードが下位レベルのGPSデバイスにアクセスできる場合、APIによって抽象化されていないいくつかの異なるメーカーのプロトコルに対処する必要があります。最良のチャンスは、カスタムNMEAコードにアクセスすることですが、それでもデバイスに依存する警告がある場合があります。

  • 低レベルのアクセスが可能であっても、WLANや携帯電話キャリアなどの他のロケーションソースの統合されたマージは失われます。これらはおそらく、Java APIより下でNMEAプロトコルより上にあるネイティブコードにマージされます。

4
dronus

一般的に言えば、DGPSは、GPS信号に対する大気の影響のほとんどを相殺することにより、実際の位置の精度を向上させる手法です。典型的な直接GPS測定では、大気の影響により、衛星に対して計算された範囲に約ランダムエラーがあります。これが、固定された場所にデータを収集したままになっているGPS受信機が、エラー楕円でさまよっているように見える理由です。同じエリアにある2つの受信ステーションの場合、大気の影響はほぼ同じであり、同じサイズで方向付けられたエラー楕円内を並行して移動します。 2つの受信機の1つが既知の場所にある場合、それらの見かけのGPS位置の違いを取得し、既知のステーションの実際の位置からプロットして、未知のステーションの実際の位置を見つけることができます。

「後処理」によってDGPSを実行しなければならなかった当時(1992年頃)、2つのステーションで収集された生のNEMAデータを取得し、ベースラインベクトルを計算し、それを既知のポイントに適用して検索していました。未知のポイント。私たちが使用していたNEMAデータは、10秒単位でしか記録されていなかったと思います。数学はそれほど難しいことではありません。

NEMA GPSメッセージ[ http://developer.Android.com/reference/Android/location/GpsStatus.NmeaListener.html ]がタブレットから既知のポイント(晴天の景色)にあると思われます。おそらくインターネットソケットを介してスマートフォンに送信される可能性があります(これも晴天の空の景色があります)。スマートフォンは、想定されるインターネット通過時間が無視されます。タブレットとスマートフォンの両方がブロードキャストDGPS調整を適用している場合でも、この手法はおそらく機能します。

5
user3152078

Android 7.1の登場により、GPSチップからの生データを開発者が利用できるようになります。( http://gpsworld.com/google-to-provide-raw-gnss -測定値/

他の人はあなたが達成したいことと同様のことをしたようです( http://gpsworld.com/innovation-precise-positioning-using-raw-gps-measurements-from-Android-smartphones/

4
cLupus

うーん。あなたのAndroidはおそらくcmの精度を達成することが不可能なようなくだらないGPSアンテナを持っています。多分あなたが数日間の位置を平均すると..通常DGPSサポートは公開されておらず、多くのチップセットはそれをサポートしていません。前回DGPSが実装されているのを見たのですが、実際のGPSチップファームウェアをハッキングしてサポートを追加する必要がありました。A-GPSをランダムなチップセットで動作させることでさえ、支援データを提供する文書化された方法をサポートしていない可能性があるため、問題があります。

2

EGNOS増強衛星から補正信号を受信するSISnetのカスタムアプリケーションを介して、ヨーロッパでDGPS補正を使用できます( http://egnos-portal.gsa.europa.eu/news/egnos-gets-invite-your-smartphone- 11 )。ただし、サーバーに接続するためのユーザー名とパスワードを取得するには、SISnetへのサブスクリプション(まだ実際には公開されていません)が必要です。役立つと思われるSDKがいくつか公開されています。 C/A信号のみ(疑似距離)に制限されており、スマートフォン内の安価なチップから位相データ(L1/L2)を取得できないことを覚えておいてください。TrimbleBD910などの高精度GNSS受信機が必要です( http://www.trimble.com/gnss-inertial/bd910.aspx?dtID=overview )GPSおよびGLONASSのL1キャリア位相信号にアクセスできるようにします。ただし、SBASをサポートする安価なチップはありますが、電話にネイティブにインストールされているものはまだありません。

1
marian

これは、ソフトウェアの実装ではなく、ハードウェアの実装に関連している必要があります。

実際には、GPSには通常、現在位置の検索を支援するためにWi-Fiまたは3Gが付属しています。

0
Raju yourPepe

RTCM修正はNTRIP 'provider'を使用してAndroid電話に送信できます。次に、Androidの生のGPSに適用する必要があります。

0
kuc