Intel Edisonを使ったIMU(慣性計測装置)の作成
はじめに
クレーン模型の揺れ止め制御のため、IMUモジュールを作成しました。クレーンで吊られている貨物の中に入れて、揺れを止めるように自動制御させるために利用します。最初はマーカーを複数のUSBカメラで撮影して画像認識によって貨物の揺れを検出しようとしましたが、画像認識アルゴを作る手間とロバスト性、特に遅延の問題が懸念されたため断念し、代わりにMEMSジャイロを用いることにしました。
MEMSジャイロを用いる際に必要となった制限事項は、吊られている貨物に載せるわけですから、(1)無線通信かつ電源はバッテリー(2)通信量を減らすため、加速度から位置を算出する積分またはカルマンフィルター的な信号処理は、吊られているCPUモジュール内で行う、ということが必要となります。作るのは面倒になるかと思いきや、調べてみるとIntel EdisonにSparkFun Electronicsで販売されているモジュールを繋げるだけで、簡単にできてしまうことが分かりました。信号処理も自分で作るとけっこう面倒だなと思っていましたが、RTIMULibというライブラリをインストールするだけで簡単にできてしまうようです。ドローンやロボット関連で必要なのだと思いますが、慣性計測関連は機器・ソフトウェア共に充実していて助かります。
購入したもの
- Intel Edison
- SparkFun Block for Intel® Edison - 9 Degrees of Freedom
- SparkFun Block for Intel® Edison - Battery
- スチロールケース SK-2
- M2 黄銅スペーサー メネジオネジ 3mm <pps-537>
SparkFun社のものは、日本からはスイッチサイエンス社から購入できます。
組み立て
組み立ては非常に簡単です。Edisonと9DoFモジュールとバッテリーモジュールを順に繋げるだけです。ただ、コネクタで繋げただけだと衝撃で外れそうですから、ネジで固定します。Edisonと9DoFモジュール間は、Edison BreakoutBoard Kitに付属してきたネジを使って固定しました。9DoFモジュールとバッテリーとケース間は、M2の3mmスペーサーを利用します。(このネジはSparkFunでも売っていますが、Amazonで上記リンクのものを買ったほうが安いのでお勧めです)
ケースは秋月電子で売っている小さいものに穴を開けて利用します。ただし、バッテリーをケースに入れるとフタが閉まらなかったので、バッテリーだけ外に出しました。バッテリーは交換可能なようにコネクタをつけておきます。
使ってみて分かったのですが、このバッテリーモジュールは、USBからの電源供給時においてもバッテリーを繋いでおかないと Edisonに電源が供給されないようです。つまり、USBから給電するつもりでもバッテリーは常に取り付けておかなければ動作しません。
ソフトウェア
以下のサイトに書かれている通りにして、RTIMULibをインストールします。
つぎに、キャリブレーションを行います。
※今年以内にキャリブレーションの詳細を書く予定
現在、この程度のIMUの精度では滑車の揺れ止め制御はできないのではないか、という疑問が湧いてきているため、使えるかどうか検討中です
更新履歴
2016/10/18 初版