Windows PC 用 CLAS RTK のテストバージョン

開発言語:Java JavaFX
配布形式:自己完結型アプリケーション
その他
NTTとSoftBank のNtripに対応
今期を元期にリアルタイム変換して平面直角座標を表示
GXGGA、GXRNC、平面直角座標を保存
プロット画面には現在点のみ表示(今後のバージョンアップで変更予定)


CLASのユーザー様には、clas.jpのダウンロードコーナーからダウンロードできるようにします。

しばらくお待ちください。

もうすぐWindowsのRTKができます

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側ではこれまで通り、ログも取れていました。

コマーシャルを兼ねてこの新発見を図にしてみました。

Geminiと二人三脚!難しいプログラム開発の裏側

これまで、AIアシスタントのGeminiと協力して、いくつかの複雑なプログラミングプロジェクトに取り組んできました。今回は、その開発の道のりや、Geminiがどのように私の開発をサポートしてくれたのかを、少しだけ自慢を交えながらご紹介したいと思います!

どんなプログラムを開発したの?

具体的にどのようなプログラムを開発したかについては、プライバシー保護の観点から詳細を伏せさせていただきますが、共通して言えるのは「単独では実現が困難だった、高度なロジックを要するシステム」だったということです。

例えば、

  • 大量のデータを効率的に処理し、特定のパターンを検出するプログラム
  • 複雑なアルゴリズムを実装し、最適解を導き出すシミュレーションツール
  • 複数のAPIを連携させ、自動的にタスクを実行するスクリプト

といったものが挙げられます。どれも、通常の開発であれば膨大な時間と労力、そして専門知識が求められるものばかりでした。


Geminiがくれた「最高の相棒」という存在

では、Geminiはどのように私の開発をサポートしてくれたのでしょうか?一言で言うと、Geminiは私にとって「最高の相棒」でした。

具体的には、次のような点で大きな力を発揮してくれました。

  1. アイデアの壁打ち相手: 開発に行き詰まった時や、新しい機能を追加したいと考えた時、Geminiは常に私のアイデアの壁打ち相手となってくれました。複数の選択肢を提示してくれたり、見落としていた観点を教えてくれたりと、一人ではたどり着けなかった解決策に導いてくれたことが何度もあります。
  2. コード生成とデバッグのサポート: 複雑な処理を実装する際、Geminiはまるで熟練のプログラマーのように、的確なコードスニペットを提案してくれました。また、エラーが発生した際には、原因の特定から修正案の提示まで、迅速にサポートしてくれたおかげで、デバッグにかかる時間を大幅に短縮できました。
  3. 知識の宝庫: 新しいライブラリやフレームワークを使いたい時、あるいは特定の技術について深く知りたい時、Geminiはすぐに必要な情報を提供してくれました。その知識の広さと深さには、いつも驚かされます。まるで、いつでも質問できる高性能な技術顧問がいるようでした。
  4. モチベーションの維持: 難しい開発は、時に孤独で、心が折れそうになることもあります。そんな時、Geminiとの対話は、私にとって大きなモチベーションの源となりました。「それなら、こうしてみてはどうですか?」といった前向きな提案や、開発の進捗を促すようなやり取りは、まるで隣にいる開発パートナーのようでした。

まとめ:Geminiとの開発は、まさに「未来の形」

Geminiとの開発を通じて、私はプログラミングの新たな可能性を実感しました。一人では難しいと感じるような高度な開発でも、AIの力を借りることで、より効率的に、そしてより創造的に取り組めることを証明できたと自負しています。

これからもGeminiと共に、様々な「難しいプログラム」に挑戦し、その成果をここでご紹介できればと思っています。

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にも、今後の改善を期待したいところですね。

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