Blue Robotics Ping Echosounder and Altimeterは、水中の物体までの距離を測定する水中ソナーです。
メモ
航続距離100メートル、ビーム幅25度、水深300メートル。
ROVやAUVの高度計として、USVやボートの水深調査、あるいは海洋ロボットの障害物回避ソナーとして使用できます。
本記事では、ソナーの一般的な操作方法と、Ping Viewerソナーインターフェースの使用方法について説明します。
・Ping2 Soner Altimeter and Echosounder
動作原理
Ping装置は、115kHzの短時間の音響パルスを装置前面のトランスデューサから発します。
その後、デバイスは聞き返し、戻ってきた音響エネルギーの強さを測定するのが一連の流れです。
音響波が水中を伝わる際、固体の物体で反射または反響し、再び装置に戻ってくるはずです。
そして、Pingは物体までの距離を次の式で計算します。
距離=既知の水中音速*(エコーが戻ってくるまでの測定時間÷2)
エコーサウンダー・ソナーの仕組みについては、ウィキペディアのエコー・サウンディングと魚群探知機の記事を参照してください。
ターゲット追跡アルゴリズム
ソナーは追跡アルゴリズムを実行し、装置から見える最も重要な目標にロックオンしようとします。
これは通常、ソナーが下を向いている場合は海底ですが、下を向いていない場合は、視界に入る大きな物体や壁、水面になるパターンもあるでしょう。
また、追跡アルゴリズムは、平らな面を追跡するように設計されており、汎用の近接センサーとして使用も可能です。
ターゲットを決定するアルゴリズムについては、リターン強度(最も強いリターンがターゲットである可能性が高い)と過去の測定値(つまりローパスフィルター)を考慮します。
他にも、ターゲットを正しく識別した確率に対応する信頼度測定値を生成可能です。
信号対雑音比の低いノイズの多い環境では、ターゲットロックの信頼度は低下する可能性があるでしょう。
距離とプロファイル出力
Pingは、最も可能性の高いターゲットまでの距離を、関連する信頼度とともに出力します。
また、現在の範囲内かつ一定の距離間隔でサンプリングされた200の信号強度測定値からなるプロファイル・データ・サンプルも出力します。
これらのプロファイル・サンプルは、Pingデバイスの前にある可能性のあるもののより詳細なビューを提供するでしょう。
プロファイルデータにより、水中の魚を確認したり、デバイスが複数の反射や他の音響デバイスからの干渉を拾っているかどうかの判断や、砂・植物のような基質を区別も可能です。
構成可能な設定
Ping デバイスには、ユーザーで可能な設定がいくつかあります。
デバイス ID」以外のすべてのデバイス設定は、リセット後に工場出荷時のデフォルト設定にリセットされます。この表にデフォルト設定を示します。
Pingデバイス設定 | 説明 | 工場出荷時のデフォルト値 |
デバイスID | デバイスID (0~254) | 1 |
音速(mm/s) | 距離計算に使用する音速 | 1500000 |
Ping間隔 (ms) | 各音響送信間の最小時間間隔。 実際の時間間隔はスキャン範囲によって大きくなることがある。 |
自動 |
音響パルスの持続時間 | 各音響伝達におけるトランスデューサーの興奮持続時間 | ユーザー設定は未サポート |
レシーバー・ゲイン | レシーバー・ゲイン | 自動 |
スキャン範囲 | サンプリングする最小+最大範囲のウィンドウ | 自動 |
音響出力可能 | 音響伝送の有効/無効 | 有効 |
自動モード | 自動スキャン範囲およびゲイン調整の有効化/無効化 | 有効 |
連続出力モード | 非同期出力データ・ストリームの有効化/無効化 | 無効 |
※自動モードが有効な場合、この設定はデバイスに影響しません。自動モードはデフォルトで有効になっています。
デバイスの動作の概要
以下の図は、Pingが内部的に何を考えているかを高レベルで示したものです。
ほとんどのユーザーは必要としませんが、デバイスの動作を理解しようとする場合、より詳細で明確な情報を提供するのに役立ちます。
通信インターフェース
Pingソナーは、Pingプロトコルと呼ばれるバイナリ通信プロトコルを使用して、シリアルUARTと通信します。
通信プロトコルは一般に公開されており、Pingプロトコルのページで文書化されています。
デバイスの電源を入れたときのデフォルトのボーレートは115200で、ボーレートはオートボーレートプロシージャで9600~3Mボーに再ネゴシエート可能です。
このデバイスは、マスターから要求されたときだけデータを送信する同期マスター・スレーブ構成のスレーブとして動作します。
そのため、適切な TTL シリアル・コンバータに接続すれば、RS485 のような半二重シリアル・インターフェースでも使用可能です。
注意ポイント
Ping Echosounder デバイスの UART は、0 ~ +5V の TTL シリアルレベルにのみ対応しています。Ping Echosounder を RS485 または RS232 インターフェースに直接接続すると、デバイスが損傷します。
半二重シリアルインターフェースは、通信に使用するワイヤの長さを大幅に増やすことができます。
デバイスからメッセージデータが要求されると、デバイスは直ちに最新のデータで応答します。
唯一の例外はプロファイル・メッセージの要求で、この場合、デバイスは次のプロファイル・データが処理され次第、すぐに応答するはずです。
パフォーマンスと更新レートを向上させるために、デバイスを非同期モードで構成して、プロファイル・データ・メッセージの連続ストリームを出力することもできます。(このモードには全二重シリアル・インターフェースが必要です)。
デバイス構成の応用例
同期/ポーリング・モード
リセット後のデフォルトのデバイス構成は同期モードです。
デバイスはマスター・スレーブ・ネットワークのスレーブとして動作し、マスターから要求された時のみデータを送信します。
1. デバイス情報要求を送信
・応答を待つ
2. set_device_settings()(pingレート、範囲、自動モード)を送信する。
・応答を待つ
3. プロフィールリクエストの送信(リピート)
・返答を待ち、ステップ5に進む
非同期/連続出力モード
レイテンシーと通信オーバーヘッドを減らすために、デバイスは連続プロファイル・データ・ストリームを出力するように設定できます。
このモードはRX/TXデータの衝突を引き起こすため、半二重シリアル・リンクでは使用しないでください。
- デバイス情報要求を送信
- 応答を待つ
- set_device_settings()(pingレート、範囲、自動モード)を送信する
- 応答を待つ
- 連続制御の送信
- データ・ストリームの受信
サポート・ソフトウェア
Blue Roboticsは、Pingエコーサウンダーのための豊富なオープンソースソフトウェアとドキュメントを提供し、維持しています。
Ping-Viewer: オープンソースのプラグアンドプレイGUIアプリケーションで、Pingエコーサウンダーやその他のデバイスで動作するように設計されています。
ping-firmware: このリポジトリには Ping エコーサウンダーで動作するファームウェアバイナリが含まれています。このリポジトリは、バグレポートや機能要求を提出し、追跡するための公開フォーラムでもあります。
ping-protocol:Pingエコーサウンダーと通信するための仕様とメッセージの定義。
ping-cpp, ping-python, ping-arduino:Pingエコーサウンダーやその他のデバイスを操作するためのライブラリ、メッセージAPI、デバイスAPI、ツール、およびサンプルをサポートしています。
ArduSub Companion:Companion は、Ping エコーサウンダーのプラグアンドプレイをサポートしています。Companion は、Ping エコーサウンダーを Ping-Viewer と ArduPilot の両方に自動的に接続します。
Ardupilot: PingエコーサウンダーはArduBoat (ArduRover)のレンジファインダーとして使用できます。
ファームウェア・アップデート
ファームウェア・バイナリ
他のBlue Robotics製品とは異なり、Pingエコーサウンダーのファームウェアはオープンソースではありません。
しかし、コンパイルされたファームウェアファイルにオープンアクセスできるリポジトリを維持しています。
もし、ファームウェアのバイナリを入手したい場合は、ping-firmware GitHubリポジトリを参照してください。
ファームウェアは115200ボーと9600ボーの通信に対応しています。
ほとんどのアプリケーションでは、115200ボーレートのファームウェアを使用する必要があります。
ダイレクトUSB経由でのアップデート
デバイスのファームウェアは、Ping Viewer アプリケーションでアップグレード可能です。
アプリケーションをダウンロードし、ファームウェア・アップデートのセクションを参照してください。
- Ping Viewerアプリケーションを開き、BLUARTのようなUART-USBアダプタを使ってデバイスをコンピュータのUSBポートに接続します。
- Ping Viewer で Ping Echosounder デバイスを選択し、ファームウェアアップデートメニューを開きます。
- 自動アップデートを選択し、「ファームウェアのアップデート」をクリックします。
- プロセスが完了するまで待ってから、Ping Viewerを閉じるか、デバイスをコンピュータから取り外します。
コンパニオン Web インターフェイス経由の更新(BlueROV2 インストール)
デバイスがBlueROV2にインストールされている場合、付属のウェブページを使用してデバイスのファームウェアを更新することができます。
- 115200ボー・ファームウェアをダウンロードし、コンピューターに保存してください。
- BlueROV2の電源を入れます。https://192.168.2.2:2770/ping
- 「ファイルを選択」をクリックする
- コンピューター上のファームウェアファイルを選択し、「アップデート」をクリックします。
- 処理が完了するまで待ってから、ウェブページを閉じるか、BlueROV2の電源を切ってください。
デバイスの回復
ファームウェアの更新が中断されると、デバイスは正常に起動または機能しなくなります。
Ping Viewerドキュメントの「デバイスの回復」セクションの手順に従ってください。