メカトロニクスにうってつけの日

ロボット開発や研究活動に関するメモ

IMUの姿勢計算に便利なmadgwickフィルタ

ROSにはIMUのセンサフュージョン処理をするimu_toolsというパッケージがあります.この中にあるmadgwickフィルタというのが軽量で高精度でマイコンで使うのにとても良いのでメモ.

imu_filter_madgwick - ROS Wiki

 

大元?はこちら.

Open source IMU and AHRS algorithms – x-io Technologies

フィルタの内容については下記ブログでほどよくまとめられています.

qiita.com

 

フィルタのソースコードは上記大元のサイトや,imu_toolsのレポジトリから見ることができます.

imu_tools/imu_filter_madgwick at indigo · ccny-ros-pkg/imu_tools · GitHub

 

ここのimu_filter.hとimu_filter.cppがフィルタの本体です.下記データを入力するとIMUの姿勢をクォータニオンで算出してくれます.

・3軸の角速度

・3軸の加速度

・サンプリングタイム

・座標系の構成(nwuとかneuとか)

このフィルタの良いところは何より計算がかなり軽量なのに精度がいいこと.唯一重そうな平方根の計算も数値計算で高速化してあるので速いです.計算が軽いのでマイコン上で余裕で回せてありがたい.FPUのないSTM32F1のマイコン(クロック168MHz)で2000Hzで回しても余裕です(といいつつ,他のフィルタを知らないので比較的なことはわかってません).

 

僕の使い方は以下のようなもの.

  1. このフィルタのソースコードから必要な部分を取り出してマイコンに移植
  2. ロボットに搭載したマイコンでIMUから角速度と加速度データを取得
  3. マイコン内でフィルタ処理をして姿勢を計算
  4. 計算した姿勢データを制御PCに送信

というものです.imu_toolsを使いたいからといって生データをPCに送ってフィルタをかけると通信量を食うしサンプリング周期を上げられなかったりするので,マイコン上で計算できるならそうした方がいいです.

また,基本のドリフト対策として,最初に静止状態で角速度のゼロ点をサンプリングしておいて,その値を差し引いた角速度データをフィルタに入力しています.これをすると生データを入れるよりもかなりドリフトが軽減されます.静止することがあるロボットの場合は静止したタイミングでこのゼロ点を更新していくのは有効です.

このソースコード内ではクォータニオンはq0, q1, q2, q3と表記されています.これはwxyzの表記だとqw=q0, qx=q1, qy=q2, qz=q3という対応です.

 

僕が使用しているIMUはお馴染みのInvenSenseのMPU9250やMPU6000です.これらはIMU内部にフィルタ処理をしてくれるDMPなるものを書き込んで使えるそうで,これが使えるならそれで十分かも知れません.mbedやarduinoのライブラリだと簡単に使えるようで,それらから移植できればいいのでしょうが,僕は手っ取り早さとゲイン調整とかのわかりやすさでmadgwickフィルタを使っています.

そういえば最近マイクロマウス界では新たなIMUが使われ始めたという噂だけ聞いて型番を聞きそびれていましたが,調べるとICM-20602ですかね? 精度が上がってるみたいですね.こういうのはなるべく最新を追い続けておきたいです.

ImPACT TRC 第6回フィールド評価会

6月14日に福島ロボットテストフィールドにてImPACT タフ・ロボティクス・チャレンジの第6回フィールド評価会がありました.今回から会場が福島になり,いつもと違う環境での評価会になりました.

僕はヘビ型ロボットによるはしご昇降と,瓦礫フィールド探査のデモンストレーションを行いました.瓦礫フィールド探査の方は新たに開発した防水防塵カバーを装着したロボットを用いました.粉塵やとがったものがある場所でも動くことができます.

 

また,評価会の様子がNHKのニュースで取り上げられました.うちのヘビがサムネイルに使われています.

www3.nhk.or.jp

 

評価会は太索状グループは大成功,他のグループも含めて全体的に大成功でした.今回はそれほど新しい内容を見せられなかったので,次回はもっと頑張りたいです.

 

瓦礫フィールド

f:id:tattatatakemori:20180616142837j:plain

はしご登り

f:id:tattatatakemori:20180616142843j:plain

SCI'18

5月16~18日に京都で行われたSCI'18で発表しました.今回は自分が共著に入った発表がたくさんでした.

  • 〇竹森 達也, 田中 基康, 松野 文俊, "ヘビ型ロボットによる垂直はしご登りの歩容設計と実験"
  • 下郷 慎之介, 〇有泉 亮, 竹森 達也, 田中 基康, 浅井 徹, 東 俊一, "垂直配管を昇降するヘビ型ロボットの滑落検知"
  • 〇藤原 始史, 竹森 達也, 斉 偉, 亀川 哲志, 鈴木 陽介, 坂東 宜昭, 奥乃 博, 松野 文俊, "配管内検査のためのヘビ型ロボットの遠隔操作および情報提示インタフェース"
  • 〇平井 智章, 竹森 達也, Hosuk Yeon, 遠藤 孝浩, 水野 大輔, 森本 貴景, 松野 文俊, "リンク長が可変なワイヤ駆動式マニピュレータの開発と制御"
  • 〇松野 文俊, 亀川 哲志, 竹森 達也, 田中 基康, 多田隈 建二郎, 藤田 政宏, 鈴木 陽介, 坂東 宜昭, 糸山 克寿, 奥乃 博, 藤原 始史, 伊達 央, 有泉 亮, "ImPACT TRC 太索状ロボットの研究開発の現状と展望"

また,学生発表賞をいただきました.

f:id:tattatatakemori:20180616142224j:plain