SoftBank RTKのAndroidアプリ開発で困っている方へ

これまで、RTKは自前の基準局を設置して使用していましたが、数キロメートル離れるとFIXが不安定になったり、利用がない夜間も稼働し続ける非効率さと高コストが課題でした。

これらの問題は、SoftBankの「ichimill」やNTTドコモのIoT高精度GNSSサービスが月額数千円で解決。全国の基準点ネットワークを活用し、センチメートル級の測位を低コストで提供します。

現在、両サービスに対応するAndroidアプリを開発中ですが、受信機との接続で課題がありました。Bluetooth接続は問題なく動作するものの、USB接続ではNTTドコモは動作する一方、SoftBankは接続できていませんでした。

今夜、試行錯誤の末に解決!同じ悩みを抱える方のために、解決コードを共有します。

問題と解決方法

以下のコードでは、SoftBankのNtripサーバーURLを正しく解決できませんでした:

java

Socket socket = new Socket(url, Integer.parseInt(n_port));

試行錯誤の結果、以下のようにInetAddressを使用することで接続に成功:

java

InetAddress address = InetAddress.getByName(url.trim());
Socket socket = new Socket(address, Integer.parseInt(n_port));

ポイント

  • url.trim()で余分な空白を除去し、URLをクリーンに。
    こんなやり方でもいいです。
    (例)String softMessage = nttMessage.replaceAll(“[\r\n]+$”, “”)+”\r\n”;
  • InetAddress.getByName()でURLをIPアドレスに解決してからSocketを生成。

この方法でSoftBankのNtripサーバーとのUSB接続が安定しました。同じ問題に直面している方の参考になれば幸いです!


参考情報:

NTTドコモ「docomo IoT高精度GNSS位置情報サービス」公式サイト
https://www.ntt.com/business/services/highprecision_gnss_positioning.html

SoftBank「ichimill」公式サイト
https://www.softbank.jp/biz/services/analytics/ichimill/

CLASとソフトバンクハンドオーバーRTKによる高速移動観測

先日、鹿児島から岡山、神戸まで旅行しましたが、鹿児島、岡山間をCLASとRTKで観測しながら走りました。

GoogleEarth上に1秒ごとの観測点をkmlにしてプロットしてみました。

ちょっと長い動画ですが、興味のある方はご覧ください。

鹿児島→岡山 CLAS

岡山→鹿児島 ソフトバンクハンドオーバーRTK

SPPによるBluetooth通信アプリ

お客さんのレーダ探査機用にSPP(Serial Port Profile)によるBluetooth通信アプリを作りました。

AIさんとケンカしながら3日ぐらいかかって作った苦心作です(;’∀’)

RTK処理はパソコンの専用ソフトには無く、スマホで処理してBluetoothでパソコンに送る必要がありました。

Bluetoothは1個しか使えないので、このような構造になりました。

今のところ、CLASの今期元期変換は必要ないらしいので、CLASは直接Bluetoothで接続しています。

リアルタイム今期元期変換が必要になったら、スマホで補正処理を施してパソコンに送ります。

CLASとRTKの高速観測

静岡のユーザーさんが、RTK(docomoのIoT高精度GNSSサービス)とCLASを使って高速移動での観測を行ってくれました。

上空が開けた場所では、どちらも安定して測位できていて、FIXが途切れることもありませんでした。

ただ、トンネルを抜けたあたりから違いが見えてきます。

RTKはトンネルを出てから10秒もしないうちにFIXしましたが、CLASの方はFIXまでに1分以上かかっています。

ちなみに、RTKでも一般的な基準局を使うとFIXまでに30秒くらいかかるんですが、大手キャリアのサービス(ichimillやdocomoのIoT高精度GNSS)を使えば10秒以内にFIXできて、上空が開けていれば高速移動中でもFIXを維持できます。

CLASにも、今後の改善を期待したいところですね。

この辺も人任せにしないで、自分で改良してみたい感じです。無理かな?

CLASとRTKの長距離観測

ゴールデンウィークの混雑を避けて、4月16日~18日に鹿児島県姶良市から阿蘇まで温泉巡りをしてきました。

下の地図は、地理院地図のKMLデータをGoogle Earthに読み込み、その上にRTKおよびCLASによる1秒ごとの測位データをプロットしたものです。

RTKには「ichimill」とdocomoのIoT高精度GNSSサービスを使用しましたが、長いトンネルを抜けても数秒でFix。さすがの精度でした。ただ、阿蘇山の奥地では携帯電話自体はつながっても、RTKは基地局アンテナが離れているのか、Floatが長く続く場合がありました。

CLASは山中でもFixできますが、いったんFloatになるとFixまでに時間がかかりました。CLASの高速移動時の受信安定性については、もう少し検証してみたいところです。

使用した受信機:リットー MGLR-9PC/Ri 
アンテナ:BT-345AJ
アプリ:アンドロイドCLAS、アンドロイドRTK

それにしても阿蘇の温泉は本当に最高でした。GWはきっと賑わうでしょう。

CLAS を連れて花見

鹿児島県姶良市から鹿児島県南九州市川辺まで約50kmをCLASで計測しながら花見に行きました。

受信機:リットー MGLR-9PC/Ri
アンテナ: Beitian BT-345AJ
アンドロイドアプリ:シーラス KabutoML

Google Earth の動画です。

通信圏外でも計測可能な CLAS がさらに進化

CLASはネット環境がなくても高精度な測位が可能ですが、私たちはその計測データをリアルタイムでWEBサーバーに送信し、速度や標高をグラフ化して可視化するシステムを開発しました。

これにより、遠隔地でもデータを即座に分析でき、活用の幅が大きく広がります。まだまだ可能性は無限大。今後の進化にもご期待ください!

離島の標高について国土地理院に質問しました

(一部編集してあります)
■質問の内容
鹿児島県の与論島など一部の離島では、離島独自の平均海面からの高さが標高として成果に載っているのですか?

■国土地理院の回答
鹿児島県の与論島を含めた一部の離島につきましては、測量法第11条第1項第3号に基づき独自の平均海面を基準(0m)にして水準点や三角点などの標高(測量成果)を求めています。
該当の離島は、以下の一覧表を御参照ください。
https://www.gsi.go.jp/sokuchikijun/ritohyokogenten.html

なお令和7年4月に実施します全国標高成果改定により、一部の離島では基準面補正量が導入されることになるため、一覧表は見直し(変更)される予定です。
詳細につきましては以下のURLを御確認ください。
https://www.gsi.go.jp/sokuchikijun/hyoko2024rev.html#shikumi2

CLAS センチナビ USB 版を開発しました

CLAS センチナビ USB版 / Bluetooth版を、年間ライセンス 11,000円(税込) で提供します(サーバー利用のため有料)。

RTK センチナビに比べると若干精度は劣りますが、NTT や SoftBank のマウントポイントが不要 で、手軽に利用できます。

USB版はスマホから電力供給されるため、モバイルバッテリー不要で運用可能です。

お申し込みはメール tanaka(a)clas.jp ( (a)を@に変えてください)または フォーム で。

clas.jp/archive/CLASGoogleMaps.mp4

測地成果2024 に対応しました

測地成果2024のデータフォーマット変更について
測地成果2024では、データフォーマットが 「国土地理院独自」 のものから 「ISGフォーマット」 に変更されます。ISGフォーマットは、国際測地学協会(IAG)の 「国際ジオイド事業(International Service for the Geoid)」 が推奨する共通フォーマットです。また、「ジオイド2024 日本とその周辺」の 「ジオイドモデル」 では、フォーマットの変更に加え、 「北緯15度~50度・東経120度~160度の海域を含むデータ」 も追加されています。


Androidアプリへの影響と対応
新しいデータをそのまま読み込むと、動作が重くなり、リアルタイム解析が困難になることが予想されます。
そこで独自に データ圧縮 の方法を考えました。
ぎりぎりまで取り掛からない性格ですが(笑)、 4月1日の変更に無事間に合いました


KabutoDynaEXEシリーズをお使いの方へ
ご利用の方は メール tanaka(a)clas.jp ( (a)を@に変えてください。)またはフォーム からお申し込みください.。