SparkFun ICM-20948 Arduino で、 DMP Fusion 9軸 がやっとOKになった。
今まで、SparkFun ICM-20948 Arduino で、 DMP Fusion 9軸 がうまく動作しなかったが、
再度チャレンジしてやっと動き出した。
開発環境
Board: ESP32
Platform I/O IDE
IMU: SparkFun ICM-20948
Arduino Library: SparkFun_ICM-20948_ArduinoLibrary
Sample Program: Example6_DMP_Quat9_Orientation
Interface: SPI
1. Sample & 修正箇所。
Example6_DMP_Quat9_Orientation.ino の抜粋。
上記修正で、多分動くと思う。
あとは、Sampling Rate を、適切に調整すれば、OK だと思う。
DMP is running at 55Hz
とコメントがあるが、おんちゃんは、とりあえず、34[Hz] 辺りで試しています。
実際の動作確認は、ROS2 を使って、Rviz2 で、TF を表示させた状態で、
IMUを回転させて、動きが正常かチェックしないと、判らないぞね。
これで、やっと、自作 Turtlebot3 の IMU で、DMP 9軸 フュージョンが使えるか?
やれやれ。 by nishi 2024.2.19
2. 参照。
ROS2 で試すなら。
humble 版で、
micro-ROS/micro_ros_arduino を使って、PC で、/tf topic を拾う。
サンプルは、同じく、humble版で下記にあるので、実際に、IMU.h のところに、
Example6_DMP_Quat9_Orientation.ino を組み込む。
micro_ros_arduino/tree/humble/examples/micro-ros_tf_publisher
注) IMU.cpp、IMU.h は、無いので、使わずに、Example6_DMP_Quat9_Orientation.ino の内容を組み込む。
または、Example6_DMP_Quat9_Orientation.ino を、IMU.cpp として組み込む。
3. その後。
ROS2 Turtlebot3 自作 に、組み込んで、試しています。
問題なさそう。こちらのほうが、地球の地磁気が使えるので、安心感があるぞね。