前バージョンの Android RTK Bluetooth 版は条件によっては、Fix しにくい、Fix してもすぐ Float になる、Float から復帰しにくい、ということがありましたが、20241029版では Fix を維持するように改良しました。
これで、バッチリ、、、だと思います。Ratio は高須先生の rtklib の解析に難航しており、0.0 のままです。ちょっと時間がかかりそうです。 Android では負荷が大きいので止めました。

Centimeter Level Augmentation Service & Real Time Kinematic
前バージョンの Android RTK Bluetooth 版は条件によっては、Fix しにくい、Fix してもすぐ Float になる、Float から復帰しにくい、ということがありましたが、20241029版では Fix を維持するように改良しました。
これで、バッチリ、、、だと思います。Ratio は高須先生の rtklib の解析に難航しており、0.0 のままです。ちょっと時間がかかりそうです。 Android では負荷が大きいので止めました。
前回のアプリは Fix し難いでしたが、プログラムを修正しました。
KabutoMLRTK_20241027T(標準機種用)、20241027ST(遅い機種用)です。
テスト観測してみました。
基準局が近いということもありますが、Fix まで数秒でした。
図は基準局の近くを 300m ぐらい回って 6 点観測した後、しばらく経ってから再測した時の格差です。
RTK はすごいです。6点中5点が1cm 以内に入っています。
これで、同じ受信機で CLAS も RTK も観測できるようになりました。
ネットがつながって基準局が近くにある場合は RTK
ネットがつながらない場所では少し精度を我慢して CLAS
のような使い方ができます。※ ratio は、まだ動いていません。もうしばらくお待ちください。 Android では負荷が大きいので止めました。
Android JAVA で RTKLIB をビルドする方法です。
次のような配置で説明します。(RTKLIB をコンパイル、リンクするだけの内容です。実際の利用はこれからです)
(1)GitHub – tomojitakasu/RTKLIB より、RTKLIB をダウンロードします。
app/src/main に cpp フォルダを作成し、RTKLIB の必要なライブラリ( c や h )を入れます。
今回は必要と思われるソース数個を入れようとしたところ、ほとんどがつながっていたため(あるソースでは、他のソースを利用する構造だったため)、ひとつずつエラーが出なくなるまで確認しながら入れました。
(2)project-root に CMakeLists.txt を入れます。(ビルド後は自動で?cppフォルダの中に入ります)
CMakeLists.txt は次のような内容です。
src/main/cpp/ 以下の rtkcmn.c などは、(1)で入れたライブラリです。
文字コードはすべて utf-8 です。他の文字コードは文字化けします。
(3)アプリケーションレベルの build.gradl に ndkVersion を指定します。
CMake とか ndk については検索してください。
(4)native-lib.cpp を作成し、src/main/cpp/ ディレクトリに入れます。
RTKLIB を利用し処理する cpp です。
確認用に、次のような内容( return 1.23 のみ)で作成しました。
(5)MainActivity.java 内での利用は次のようになります。
(6)以上が準備出来たらビルドします。
gradl などをいじると sync などいろいろ必要ですが、省略します。
Android Studio の terminal で、クリーンビルドします。
./gradlew clean build
アンドロイドRTKアプリを開発中でしたが、やっとできました。
CLAS受信機(clas.jpオリジナルGogh、リットー製品)のスイッチをRTK側に切り替えることにより、rtklibやu-centerを使わないでRTKが可能になりました。
rtklibのような細かい設定はできませんが、fixすると同じような精度の座標値が得られます。
これまで開発してきたCLASアプリ(Kabutoシリーズ)に追加して作り上げましたので、基準局の座標が今期で測られている場合でも元期に変換できる、基準点探しもできる、など、市販されている同様のアプリには無いユニークなアプリです。
KabutoML に軽微なバグがありましたので修正しました。
現在はそのままでも動きますので、インストールの必要はありませんが、将来的に問題になると思われます。
古い機種(Android 12 より前)ではインストールすると逆に動かなくなる可能性もありますので、インストールしないでください。