新発見

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

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

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