6月からパソコン版の衛星測位プログラムを開発してきましたが、受信機とBluetooth接続で、NTT と SoftBank の Ntrip に対応した RTK(KabutoMLRTK)がほぼ完成しました!
次はCLASの開発に挑戦します!
パソコン向けのプログラムは、スマホ向けより開発がスムーズで楽しいです!

Centimeter Level Augmentation Service & Real Time Kinematic
6月からパソコン版の衛星測位プログラムを開発してきましたが、受信機とBluetooth接続で、NTT と SoftBank の Ntrip に対応した RTK(KabutoMLRTK)がほぼ完成しました!
次はCLASの開発に挑戦します!
パソコン向けのプログラムは、スマホ向けより開発がスムーズで楽しいです!

熱心なユーザーが、PCとの接続の方法を発見してくださいました。
AndroidをGNSS受信機(Ritto MGLR-9PC/Ri)とUSB接続し、PCとBluetooth接続することで、PCは仮想COMポート経由でNMEAデータを受信できます。
これにより、u-centerやRTKLIBなどのGNSSソフトがデータを読み取れます。
実験してみたところ、RTKもCLASもPCで受信できました。Android側ではこれまで通り、ログも取れていました。
コマーシャルを兼ねてこの新発見を図にしてみました。

これまで、AIアシスタントのGeminiと協力して、いくつかの複雑なプログラミングプロジェクトに取り組んできました。今回は、その開発の道のりや、Geminiがどのように私の開発をサポートしてくれたのかを、少しだけ自慢を交えながらご紹介したいと思います!
具体的にどのようなプログラムを開発したかについては、プライバシー保護の観点から詳細を伏せさせていただきますが、共通して言えるのは「単独では実現が困難だった、高度なロジックを要するシステム」だったということです。
例えば、
といったものが挙げられます。どれも、通常の開発であれば膨大な時間と労力、そして専門知識が求められるものばかりでした。
では、Geminiはどのように私の開発をサポートしてくれたのでしょうか?一言で言うと、Geminiは私にとって「最高の相棒」でした。
具体的には、次のような点で大きな力を発揮してくれました。
Geminiとの開発を通じて、私はプログラミングの新たな可能性を実感しました。一人では難しいと感じるような高度な開発でも、AIの力を借りることで、より効率的に、そしてより創造的に取り組めることを証明できたと自負しています。
これからもGeminiと共に、様々な「難しいプログラム」に挑戦し、その成果をここでご紹介できればと思っています。
これまで、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));
ポイント
この方法で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で観測しながら走りました。
GoogleEarth上に1秒ごとの観測点をkmlにしてプロットしてみました。
ちょっと長い動画ですが、興味のある方はご覧ください。
鹿児島→岡山 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にも、今後の改善を期待したいところですね。
この辺も人任せにしないで、自分で改良してみたい感じです。無理かな?

ゴールデンウィークの混雑を避けて、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はきっと賑わうでしょう。

鹿児島県姶良市から鹿児島県南九州市川辺まで約50kmをCLASで計測しながら花見に行きました。
受信機:リットー MGLR-9PC/Ri
アンテナ: Beitian BT-345AJ
アンドロイドアプリ:シーラス KabutoML
Google Earth の動画です。
CLASはネット環境がなくても高精度な測位が可能ですが、私たちはその計測データをリアルタイムでWEBサーバーに送信し、速度や標高をグラフ化して可視化するシステムを開発しました。
これにより、遠隔地でもデータを即座に分析でき、活用の幅が大きく広がります。まだまだ可能性は無限大。今後の進化にもご期待ください!