PAGE

CV7・GQ7のMIP出力設定|出力レートと通信帯域を決める

INERTIAL GUIDE

CV7・GQ7のMIP出力設定|出力レートと通信帯域を決める

CV7・GQ7のMIP出力レートをBase Rateとdecimationから設定し、Message Format、通信帯域、受信レートの確認方法を解説します。

3DM-CV7や3DM-GQ7をMIPで使用するときは、必要なデータをすべて最高レートで送るのではなく、必要な項目・必要な周期・通信インターフェースの帯域を合わせて設計します。

このページでは、基準レート、decimation、Message Format、Data Stream Control、通信量の見積もりを順番に整理します。

このページでできること

  • 使用するデータ項目が機器で利用できるか確認する
  • 基準レートからdecimationを決める
  • 項目ごとに異なる出力レートを設定する
  • UARTの通信量を概算する
  • 設定値と実際の受信レートを分けて確認する

1. 最初に「何を何Hzで必要か」を決める

まずアプリケーション側の要求を整理します。

例えば、

  • 加速度:500 Hz
  • 角速度:500 Hz
  • 姿勢:100 Hz
  • Filter Status:10 Hz

のように、項目ごとに必要なレートを決めます。

すべての項目を同じレートで出力する必要はありません。低い更新頻度で十分な状態情報を高速で送り続けると、通信帯域とホスト側の処理量を無駄に消費します。


2. 対応データと基準レートを確認する

MIPでは、まず対象機器が必要なDescriptorやコマンドをサポートしているか確認します。

型式名だけを見て「このデータは必ず1000 Hz」と固定せず、使用している機器・ファームウェアのProtocol Supportやデバイスからの応答を確認してください。

基準レートを取得したら、周期出力の基本関係は次のように考えます。

出力レート = 基準レート ÷ decimation

例えば基準レートが1000 Hzで、100 Hz出力にしたい場合は、decimation 10です。

希望レートが基準レートを整数で割り切れない場合は、使用可能なdecimationから実際の出力レートを決めます。


3. Message Formatで項目ごとのレートを設定する

Message Formatでは、同じDescriptor Set内でもデータ項目ごとに異なるdecimationを設定できます。

例えば、

  • Scaled Accel:100 Hz
  • Scaled Gyro:100 Hz
  • Timestamp:100 Hz
  • Magnetometer:10 Hz

のような構成が可能です。

低速の項目はすべてのパケットへ含まれるとは限りません。パーサ側では、「毎パケット同じフィールド数になる」ことを前提にしない設計が必要です。

設定後はMessage FormatをReadして、書き込んだDescriptorとdecimationを確認します。


4. ストリームの有効化を確認する

Message Formatを設定しただけでは、目的のデータが必ず送信されるとは限りません。

データストリームのEnable/Disableや、機器がIdle状態かStreaming状態かも確認します。

MIPを直接実装する場合は、

Message Formatの設定
Data Streamの有効化
機器の動作状態

を別々に確認してください。


5. SensorConnectでは項目ごとのレートを見る

SensorConnectを使う場合も、画面上部の代表的なレートだけでなく、各データ行の設定を確認します。

IMUデータのSampling設定
IMU側のSampling設定例。Timestampなど各項目のレートを個別に確認します。
Estimation FilterのSampling設定
Estimation Filter側の設定例。IMU側と異なるレートを設定できます。

画像内のレートは表示例です。用途に適した推奨値を示すものではありません。


6. UARTでは1秒あたりのバイト数を見積もる

UARTを使う場合は、データフィールドだけでなく、MIPパケットのヘッダー、フィールド長、Descriptor、チェックサムを含めて通信量を見積もります。

例えば、1パケット48 byteのデータを200 packet/sで送るとします。

48 × 200 = 9,600 byte/s

一般的な8N1のUARTでは1 byteの転送に10 bit必要なので、

9,600 × 10 = 96,000 bit/s

となります。

115200 baudに対して約83%です。

これは説明用の計算です。実際には、

  • 他のデータフィールド
  • コマンドとACK/NACK
  • パケット構成
  • ホスト側バッファ
  • ファイル書き込み
  • OSの処理

なども考慮する必要があります。

通信速度ぎりぎりを常用条件にせず、余裕を持たせます。


7. UARTのBaud RateとUSB帯域を混同しない

SensorConnectではUART Baud Rateの設定を確認できます。

UART Baud Rate設定欄
UART Baud Rateの表示例。画像の数値は設定例です。

この値はUART通信に関する設定です。

USB接続時の実効帯域を、UART Baud Rateの数値だけから計算することはできません。

使用するインターフェースに合わせて帯域を評価してください。


8. 設定したレートと「実際に受信できたレート」を分ける

設定後は、設定値を読み戻すだけでなく、実データでも確認します。

確認方法の例は、

  • 一定時間の受信パケット数を数える
  • Timestampの差を確認する
  • 期待するDescriptorが予定した周期で含まれているか確認する
  • 欠落や大きな時間間隔がないか確認する

です。

レートを上げたときだけ問題が発生する場合は、機器設定だけでなく、通信帯域、受信バッファ、解析処理、ディスク書き込みも確認します。


記録しておくとよい項目

  • 製品型式・ファームウェア
  • 接続方式:Serial / USBなど
  • UART Baud Rate
  • Descriptor Set / Field Descriptor
  • 基準レート
  • decimation
  • 設定上の出力レート
  • パケットサイズ概算
  • 1秒あたりの通信量
  • 実際の受信パケット数
  • Timestampから求めた実レート

参考資料

原典リンク

既存の関連ページもあわせて確認

既存の技術解説・ソフトウェア説明と相互に参照できるよう、本番反映時に現在のURLへ接続します。

技術相談
当サイトでは、サイトの利便性向上のため、クッキー(Cookie)を使用しています