ホビーユーザのためのIMUリスト

加速度計やジャイロといった慣性センサがあると、物の動きがわかって面白いです。ところが半田付けが難しかったり、入手が困難であったり、といった理由で、センサを選んで基板を起こして組み上げる、というのはホビーユーザには非常に敷居が高い状態です。最近はそのような事情に配慮して、センサをある程度くみ上げた状態のIMU(Inertial Measurement Unit)で販売しているのを結構見かけるようになりました。ここではそのようなIMUの中から魅力的なものを集めて、紹介したいと思います。随時更新しますので、素敵なものが漏れている場合は教えていただけると、僕が狂喜乱舞します。

なお条件ですが、あまり高くないこと(200ドル以下)が第一です。あと6自由度(各速度計の加速度XYZとジャイロによる角速度XYZ)計測できることも基本的な条件にしたいと思います。そして半田付けが大変でないことも重要です。

sparkfunで売っているSensor Stick

加速度3軸、ジャイロ3軸に加えて地磁気3軸の計測ができるものです。i2c接続で簡単に使えること、値段が100ドル以下というのが魅力的です。さらにAVRが搭載されたRazor IMUというのもあります。

Atmelの評価基板用センサ拡張ボード Inertial One Sensor Board

上のSensor Stickと似たコンセプトですが、こちらはさらに安いです。Atmelの直販サイトで送料抜きで54ドル。日本で買うならDigiKeyMouser経由のほうが安いです。センサの構成が違うInertial Two Sensor Boardというのもあります。

ebayで見つけた全部載せセンサユニット

6自由度のIMUに地磁気3軸を載せるだけでは飽き足らず、絶対センサ(気圧高度計が作れる)とGPSを押し込んだユニット。これをモニョモニョすればINS/GPSになりますね。上記は3.3V版ですが、5V版もあります。

Mongoose IMU

Razor IMU (6DOF + 地磁気3軸 + AVR)に対して、さらに気圧高度計を載せたようなものです。

PSoC3の評価ボード MHB-P3

評価ボード本体とオプションボードとで、6軸IMUと3軸地磁気のセンサユニットとなります。価格は現時点ではわからないのですが、PSoC3は中のコアが僕のの大好きな8051なので載せることにしました。

Paparazzi製のIMU

一般的なUAV(無人航空機)の草分け的存在であるPaparazziが開発しているIMUユニットがあります。その他のIMUも紹介されています。購入できるものもあります。 Paparazziのようなオープンソース系のIMUとしては、FreeFlight IMUCortex IMUがありますが、販売はされていないようです。

Cortex-M3付AHRS

6自由度IMU+地磁気3軸+ARM Cortex-M3のAHRS(Attitude and Heading Reference System) CHR-6dmがあります。中のソフトも公開されており、アプリケーションに応じて書き換えることができます。地磁気抜きのCHR-6dもあります。はじめはロボット用の部品が多く扱われているPololuで見つけました。

(基準外) アナデバの3軸加速度/1軸ジャイロ(Z) ユニット

半田付けがしにくいジャイロや、高性能つまりは高価なIMUユニットを製造しているAnalog Devicesですが、そのような中でも1万円台で購入できるIMUのADIS16300があります。ただし残念ながらジャイロは1軸です。

まだまだあると思います。

July 21, 2011 22:55 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

いつも刺激を受けながらblogを拝見しております。
わたしは視力0の視覚障害者なのですが、この1年ほど室内用ラジコンヘリコプターの操縦を楽しんできました。
しかしヘリが向いている方向を音だけで聞き分けることはできず、水平面の移動(前進・後進、左右旋回)を適切にコントロールできないという限界に突き当たりました。
上昇下降の制御だけでもエキサイティングなのですが、やはりもっと自由に操縦したいと思っていたところ各種センサを搭載したAR. Droneが発売され購入したしだいです。
python-ardrone
http://blog.venthur.de/2011/04/20/introducing-python-ardrone/
を用いてAR. Droneを点字ディスプレイ
http://www.baum.de/en/products/brailledisplay/vconnect12.php
で操縦するアプリの基礎が一通りできた段階です。
しかしながらAR. Droneに搭載されているセンサーが出力する水平面上の方向(psi)誤差が大きく補助センサーの搭載が必要と考えています。
前振りが長くなってしまいましたが、この補助センサ(地磁気センサを想定しています)について、助言をいただきたいと考えています。
話はもう少し込み入っているので、できましたらメールにてやりとりさせていただきたいです。
AR. Droneをあえてプロポで操縦してしまうFenrirさんからすればずいぶん軟弱な相談になってしまいますが、よろしければメールに返信ください。

Posted by: Nameless Pipe : September 6, 2011 06:23 PM

> Nameless Pipe さん
コメントありがとうございます。他の方にも参考になるかもしれませんので、コメントベースで返答したいと思います。また以下、時間不足で雑な返答で申し訳ありません。

まずですが、AR.Droneの拡張コネクタにはシリアルやUSBがでているのをご存知でしょうか。趣味な人たちはここにGPSやUSBメモリなどをつけて遊ぼうとしているようです。しかしこの拡張ポートは、API経由では接続不能で、自分でAR.Drone側のソースをいじるなどしないとアクセスできなかったと記憶しています。
http://www.ardrone-flyers.com/forum/viewtopic.php?f=8&t=829&start=15

僕が簡単にやるとするならばArduino互換機のYellow Jacketで操縦する方法を拡張するのがよいのではないかと思います。磁気センサをつけて、操縦入力が方位に対応するように変換すればよいのではないでしょうか。
Yellow Jacketの話 => https://fenrir.naruoka.org/archives/000803.html

Posted by: fenrir : September 7, 2011 11:43 PM

> fenrir さん
コメント返していただいていたことに気付きませんでした。失礼しました。

さて、目下の課題をもう少し詳しく説明してみたいと思います。なおわたし航空工学はずぶの素人ですので、基本的理解が間違っているかもしれません。

当然のことですが、前後・左右、左右旋回の操作は、機体が向いている方向によって実際に動く方向が変わります。
機体が向いている方向は視認することで確認できますが、モーター音だけを頼りにしていると分かりません。
結果、前後・左右、左右旋回の操作が実際にどのような移動をもたらすかも分かりません。
何らかの手段で機体が向いている方向を知る必要があります。
今回は、点字ディスプレイ上に点字のaaで矢印みたいなものをレンダリングすることで機体が向いている方向をリアルタイムに示そうと考えました。
点字は指で触って読むものなので、プロポを握った操縦は断念し、点字表示部に近接した点字ディスプレイのボタン群で疑似アナログ入力を行って操縦することを考えてました。
機体が向いている方向はAR. Droneから読み出せるpsiの値をそのまま使おうとしました。
しかし、この値、誤差が蓄積されるようで同じ方向を向いていても時間が経過すると異なる値を返します。
そこでより正確なセンサーを追加することを考えました。手法としては大きく二つ

1. AR. Droneの拡張コネクタに追加
2. 単体動作するセンサーユニットを追加

を考えましたが、1.はご指摘のとおり、ファームの書き換えが必要でシェルスクリプトの導入程度ならまだしもちょっと手に負えないかなあと感じています。
2. については、バッテリを内蔵しワイヤレス(無線lanかBluetooth)でデータ送信が可能で、軽量であることが条件となります。
わたしが見つけたものとしては
IMU-Z
http://www.zmp.co.jp/e-nuvo/jp/imu-z.html
WAA-010
http://www.wireless-t.jp/support.html
がありますが、いずれも高額です。またいずれもBluetoothなので送信範囲がかなり制約されることも残念です。
結局最近は、上記2製品のようなものを安価に自作する方法や作例はないか探していたしだいです。
一応ここまでがこれまでの思考の経過です。
いただいたコメントをもう少し消化して考えてみたいと思います。

Posted by: Nameless Pipe : September 12, 2011 12:30 PM

コメントする