【受付時間】 10:00〜18:00(土日祝日を除く)

本記事では、InertialSense社が開発しているRUGというセンサシリーズについて解説していきます。
「RUG-3-IMX-5-Dual」は、ベースとなるIMXというセンサモジュールにアルミ筐体のケースと産業向けインターフェース(RS232/RS485/CANなど)を足したシリーズで、型番によってはさらに高精度な衛星測位を内蔵しています。
今回はそもそもIMUやGNSS RTKとは何なのかから説明し、IMX-5-Dualシリーズの一つである、RUG-3-IMX-5-Dualを使って実際にデータ取得を行ってみます。

1. IMUとは?

IMUはInertial Measurement Unit(慣性計測ユニット)の略で、簡単に言うと
「自分がどれだけ回転して(角速度)、どれだけ加速したか(加速度)」を高速に計測するセンサです。
これによって、衝撃や回転を検知したり、それらの値を積分することで、位置や角度の検出も可能になります。
ただし、積分して位置や角度を求める場合、IMU単体だと時間とともにズレが増大していきます。
これはIMUは100〜1000Hzのような高レートで姿勢変化を追える一方、加速度や角速度を積分して位置や向きを求めると、誤差も一緒に積み上がっていくためです。

今回取り上げるRUG-3-IMX-5-DualのベースになっているIMX-5は、IMUに加えて磁気センサと気圧センサも含む10-DOFモジュールとなっています。
磁気センサは地球の磁場を観測することで方位を知ることができ、気圧センサは気圧の変化による高さを知ることができます。

2. GNSS RTKとは?

自分の位置や角度を知りたい場合、IMUだけだとズレが増大し難しいという話をしましたが、これを補うものの一つとしてGNSS(衛生測位)があります。
衛生測位ではGPSというのをよく聞くかと思いますが、GNSSはGPSを含む衛星測位システムの総称です。
GNSSを用いることで、地球上のどこでも衛星から測位対象の位置を求めることができますが、精度としてはおおよそ1m以上の誤差が発生します。ここからさらに誤差1cmレベルでの測位が可能なシステムがGNSS RTKになります。
GNSS RTK(Real Time Kinematic)は、衛星から測位対象だけでなく、測位対象に近い地上の基地局の位置も計測することで、その基地局の補正情報を使って、測位精度を大きく上げる方式です。

3. Dual GNSS RTKとは?

RUG-3-IMX-5-DualはさらにDual GNSS RTKを搭載しています。
これはその名の通り、2台のGNSS受信機と2本のアンテナを持っているということで、これによって機体の向きを出すことが可能になります。
IMX-5は磁気センサにより方位の計測も可能と言いましたが、磁気センサは、鉄(鋼材)やモータ/ドライバなどの電子機器からのノイズが強い環境で正確な計測が難しいです。
Dual GNSSはその代替として、磁気センサに頼らず向きを計測することができます。

このように(Dual)GNSS RTKは高精度に位置(や向き)を計測できる一方で、衛星から受信機へ電波が到達できない状態、例えば高層ビルの近くや建物内やトンネル内などでは位置を計測することができません。
また、更新の頻度も〜数十Hzくらいであるため、ドローンのように高速で空中を動くような機体をGNSS RTKのみで制御することも難しいです。

4. 改めてRUG-3-IMX-5-Dualについて

ここまでIMUやGNSS RTKなどについて説明しましたが、改めて、RUG-3-IMX-5-Dualで計測できるものについてまとめたいと思います。
まず、RUG-3-IMX-5-DualはIMU、磁気センサ、気圧センサ、Dual GNSS-RTKが搭載されており、それぞれ以下の計測を行なうことができます。

  • IMU: 角速度、加速度(積分することで角度と位置)
  • 磁気センサ: 磁気(磁場が分かることで方位が分かる)
  • 気圧センサ: 気圧(気圧が分かることで高さが分かる)
  • Dual GNSS RTK: 位置、向き

これらのセンサは相互に補完し合う関係になっています。
これまで話したように、IMUは速い周期で計測できる反面、長い時間で位置や姿勢を求めると誤差が増大します。一方で、Dual GNSS RTKは遅い周期での計測にはなりますが、正確な位置を取得することが可能です。
つまり、IMUが高速で直近の動きの計測を担当し、GNSS RTKが長期的にズレない基準としてIMUのズレを修正するという相互補完を行なうことで、高速かつ高精度な位置・姿勢の取得が可能になるというわけです。

RUG-3-IMX-5シリーズは、これらのセンサを1パックにして堅牢アルミ筐体内に設置し、インターフェースとしてはRS232 / RS485 / CANを搭載することで、高性能ながら小型で扱いやすいセンサになっています。

5. SDKを使ってみる

InertialSense社からSDKが提供されているので、それを用いて実際のセンサ出力をグラフで出力してみます。今回は屋内での使用で、GNSS RTKは使わずにIMUのみの出力を見ていきます。
https://github.com/inertialsense/inertial-sense-sdk
また、SDKにはROS2を用いて動かすコードも用意されているので、今回はROS2(jazzy)を用いて動かしてみます。
このページに沿って、インストールを進めることでROS2環境で動かすことができます。
インストールが完了したら、RUG-3-IMX-5-Dual-DKをPCとUSB接続し、inertial_sense_ros2_nodeを立ち上げます。

inertial_sense_ros2_nodeから/imuというトピックが配信されているので、これをプロットツールで描画してみます。
ここで、RUG-3-IMX-5-Dualは衛星通信によって時刻同期を行っているため、屋内だと時刻を取得できず、時刻が一定になってしまうという問題が発生します。これを回避するために、/imuトピックを受け取り、時刻情報を追加して配信し直すスクリプトを同時に実行するようにします。
以下のコードが、時刻情報を追加するスクリプトで、これをimu_stamp_fix.pyとして保存します。

保存したらターミナルからこのスクリプトを実行します。

次にプロットツールを立ち上げます。ROS2のプロットツールはいくつかあるのですが、今回は分割表示などの機能が豊富なplotjugglerを使用します。
plotjugglerをインストールし実行します。

plotjuggerが起動すると以下のような画面が立ち上がります。

サイドバーのスタートを押すと、現在流れているトピックの一覧が表示され、その中から/imu_fixedを選択し、OKボタンを押します。

選択したトピックがロードされ、サイドバーにトピック内のフィールドが表示されます。
この中から、anguler_velocityとliner_accelerationのそれぞれのxyzをグラフエリアにマウスドラッグして持ってくることでグラフの描画を行なうことができます。

グラフの分割などをうまく使うことで以下のように角速度のXYZの各値をリアルタイムで描画させることができます。

IMUを手に持って、画像のように左右に回転させてみてください。
以下のグラフのようにanguler_velocityのXの値が回転と同時に動くことが分かると思います。

同様に今度は加速度の方も見てみましょう。
先程と同じように今度は直線的にセンサをX方向に揺らしてみてください。
今度は以下のグラフのようにliner_accelerationのXの値が揺れと同時に動くことが分かると思います。

他のY軸やZ軸でも回転と加速度が反応することをセンサを動かして試してみてください。
このようにIMUを使えば3軸の回転と3軸の加速度を計測することができます。

6. まとめ

IMUとGNSS RTKを内蔵したInersial Sense社のRUGシリーズについて、IMUとGNSS RTKの基礎的なところから解説し、実際にSDKを使ってリアルタイムにセンサデータをプロットしながらセンサの動きを確認してみました。
非常に小型で高性能なセンサであるため、ドローンや小型のロボットへの搭載が期待されます。
この記事を読んで、このセンサ面白いなと感じていただけた方はぜひ下記リンクよりお問い合わせ下さい。

最後までお読み頂きありがとうございました。

お客様用ご相談/お問い合わせ

製品に関するご相談、デモ機器、お見積・納期などに関して お気軽に問い合わせ下さい

※は入力必須項目となります。

下記フォームにてお客様情報・問い合わせ内容をご記入の上、確認ボタンをお願いします

お問い合わせ内容必須
会社/団体名必須
所属/担当
お名前(漢字)必須
お名前(フリガナ)
電話番号必須

- -

〒 郵便番号(ハイフン無し)必須
住所(建物名まで記入)必須
メールアドレス(個人アドレス、フリーアドレス不可)必須
お問い合わせの製品名

ナノシード製品を知ったきっかけ (いくつでも可)

どういったジャンルの製品に関心がありますか(いくつでも可)

気になる海外メーカー/製品はありますか (自由記入)

お問い合わせの内容必須
個人情報の取り扱いに同意する