Phantom4 RTKのPPKをRTKLIBで解析してみた

いま話題のPhantom4 RTK(P4Rと呼びます)の生データを頂いたのでPPK解析をやってみました。

実際にP4Rおよびコントローラ等の操作はしていませんので今回は解析だけのお話です。とりあえずインチキは嫌いだしDJIの代理店でもないので中立的に検証してみました。

今回の解析ではRTKLIBというオープンソースGNSS測位プログラムパッケージを使用します。このプログラムはマジで凄いです!フリーで使わせて頂けるなんて皆様幸せものです。東京海洋大学の高須知二さんに感謝しましょう!

 

P4Rで撮影したSDカード内には写真の他にRinexとタイムスタンプのファイルが作成されるのでこれを使用します。バイナリファイルも2つ作成されていますが、これは今回使用しません。

ジェノバ等の電子基準点データのダウンロードサービスから現場に一番近い電子基準点のデータをダウンロードします。

こんな感じでファイルが出来ます。拡張子18g(glonass),18n(gps)が衛星軌道情報ファイルで18oがRINEXファイルです。

 

RTKPOSTを起動して

  • RINEX OBS:Rover に P4RのRINEXファイル
  • RINEX OBS:BASE Station に ダウンロードした電子基準点データのRINEX
  • RINEX NAV/CLK… にダウンロードした衛星軌道情報ファイル
  • 一番下のところに解析後の出力ファイル

を指定します。

 

Options_setting1

こんな感じですが、残念ながら今回頂いたデータではGPSを使用した解析しか出来ませんでした…。P4RのRINEXファイルにはGPS/GLONASSちゃんと入ってて、おまけにGALILEO/BDSまで入ってるのに…もったいない。

GLONASSを有効にすると全くFixされず色々と設定を変えてみてもダメ。結局GPSだけを使用した解析になってしまいました。誰かいい方法を教えてください!

他の現場で検証すれば原因もわかるかもですが、P4R持ってないからしょうがありませんね。※追記 他の現場データではGLONASSありで解析できました!

 

Options_setting2

 

Options_Output

  • Time FormatはP4Rに入ってたタイムスタンプのフォーマットと同じものにしておきます
  • Datum/HeightはWGS84,Geodetic
  • Geoid ModelはGSI2000 FilesタブのGeoid Data Fileでgsigeo2011_ver2.ascを指定

 

Options_Positions

  • Base StationはRinex Header positionで

 

こんな感じでOptionを設定したらExecuteしてファイルを作成してください。

できたファイルをRTKPLOTで表示してみると

な感じになってます。衛星数が少ない…GLONASSが使えれば5つぐらいは増えるのに。

 

P4Rは5Hz(0.2秒間隔)で位置座標を記録してるので、タイムスタンプファイルの時刻を参考に線形補完で、EXCELとVBAを使って力技で写真に位置座標を与えていくとPPK解析の完了です。QGISで表示させたのが

  • 緑がPPK処理した5HZのもの
  • 赤がPPKのタイムスタンプから線形補完した撮影位置
  • 青がネットワーク型RTKでの撮影位置

微妙にずれてますね。ここで水平距離で2.9cmです。RTKの撮影位置はレバーアーム(GNSSアンテナとカメラの中心まで位置)が考慮されているそうですが、PPK処理した位置座標には考慮されていません。(GNSSアンテナ位置のみ)

タイムスタンプファイルにはレバーアームによる緯度・経度・高さ方向の補正値も入っていますが、それらを考慮して撮影位置を計算した場合は、RTKとPPKの撮影位置は水平方向で平均1cm以内ですが、垂直方向では平均8cm程度もでてしまいます。

DJIのHPでスペックを確認すると映像位置オフセットとして進行方向に36mm、垂直方向に192mmとあります。また写真にレンズの情報が書き込まれていると紹介されていますが、焦点距離と写真中心位置しか書き込まれていませんし、この焦点距離でSFM処理すると全然対象物の高さが違ってしまいます。 ※追記(レンズ情報が書き込まれているjpgと書き込まれていないjpgがありました。dronedji:3657.320000000000,3650.810000000000,4.610000000000,32.390000000000,-0.265944000000,0.109387000000,-0.000330959000,-0.000026620400,-0.031194200000 これで処理してもダメでしたが…。)

 

撮影位置を固定した場合はSFMソフトの各種設定も、通常の場合と設定数値を変更やレバーアームの入力をする必要がありますし、セルフキャリブレーションを行う場合には高度45m程度でも焦点距離が0.01mm推定が変わると地上では5cm変わってしまいます。

P4Rを使用する場合は事前に無限遠にしたレンズキャリブレーションを複数回行い、それを前提にSFM処理をする必要があるでしょう。または、数点は既知点を作成してその標高から焦点距離を割り出すとかの裏技が必要だと思います。とりあえずカメラのキャリブレーションが肝ですね。

※その後自分で飛行させた検証では、セルフキャリブレーション(焦点距離)の推定がしやすい撮影を行うことで、事前のキャリブレーションは不要なレベルになっています。また、レバーアームも考慮した計算を行うことでネットワークRTK、D-RTK2と同等の精度を出すことが可能になりました。

 

これらも考慮してPHOTOCANで処理した結果(焦点距離は割もどし計算してますが)

このような結果が出ました。もちろんGCPはSFMの処理には使用していません。(GCP精度も10mにしています)また、データ一式もらっただけなのでGCP自体の精度もよくわかっていません。

ネットワーク型RTKでの結果とほぼ同じでした。GPSのみでこの結果は正直凄いと思います。ただ衛星の配置や解析でGLONASSが使用出来るか等の条件で、精度が良くなったり悪くなったりするかもしれません。購入するのであればこの辺は検証点をおいて何度も検証する必要はありますね!

ここまでのPPK処理は正直めんどくさいですが、今後は販売店さんが自動的に解析してくれるアプリを発売されるそうですから期待ですね!

 

Phantom 4 RTKが凄い事はわかりましたし、モバイルステーションを使用するDRTK2もデータ検証に少し付き合わせて頂きましたがコレもヤバイです(GALILEO/BDSも全部使ってやるからなあ、やっぱり今ひとつのポイントもありましたが…)

ただウチは自動飛行アプリのライチが使えないので、これじゃあ仕事にならないのでいらないです(笑) 早く自前のタブレットを使えるようにするか、自動飛行経路のインポート機能がほしいですね~。