9軸IMU ICM-20948をロボットに組み込もう

はじめに

TDK Invensense製9軸IMUのICM20948は、TDK MPU-9250の後継機種で、MPU-9250のVDDは2.4V~3.6V、VDDIOは1.71V~VDDに対して、ICM-20948のVDDは1.71V~3.6V、VDDIOは1.71V~1.95Vに低めに設定して、省電力となった。また、デジタルモーションプロセッサDMPによるデータフュージョン(FPGAによるFusion)の特長が継承して、MPU-9250 DMPの増強版となったと、詳細まで公開されていないが以下参考文献を読むと分かる。

環境

・Ubuntu 18.04
・ROS Melodic
・MCU: SAMD21G18A
・IMU: ICM-20948

DMP3の出力確認

以下のように、出力周波数50Hz、加速度Ax Ay Az、角速度Gx Gy Gz、磁場Mx My Mz、4元数Qw Qx Qy Qzの順に出力させる。

imu-icm20948-output
imu-icm20948-output

4時間+にわたる連続動作して出力を確かめる。完全静止状態でもないので、ドリフトは納得いく範囲内にとどまっている。rvizで確かめてもドリフトが多少あって肉眼では見えないほど。

imu-icm20948-output-4hours
imu-icm20948-output-4hours

出力確認動画は以下イメージをクリックすると、youtubeへジャンプする。

icm20948_imu_ros
icm20948_imu_ros

感想

MPUシリーズと比べて、ユーザの事前校正いらず、長時間(実験は4時間程度まで)においても、ドリフトとくにヨウ角(Yaw、方向角)のドリフトは目立たないほどとなった。また、1.71Vの低電圧でも動作可能なのでスマートデバイスや、ロボットの長時間電池駆動が可能になる。なお、出力周波数はMax 200Hzと確認できた。Icm-20948 DMP3(IMU内蔵FPGA)から出力した、Accel/Gyro/Mag計9軸データ出力にQuaternionの4元数データがそのまま利用可能で、遅延もソフト・カルマンフィルタなどより少なく他社IMUより優れるため、ロボットの精度向上に利用可能。1.8V VDDIO対応、DMP3の出力に手間かかった末、コンパス単体は評価できなくて残念だったが、総じて優秀としか思わないこのICM-20948をロボット装置に組み込もうと決めた。

参考文献

Migrating from MPU-9250 to ICM-20948-InvenSense
DS-000189-ICM-20948-v1.3.pdf

関連記事

9軸IMU MPU-9250をロボットに組み込もう
6軸IMU MPU-6050をロボットに組み込もう

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア