検出誤差

どうも,赤外線LED2つで頭の位置を調べるとノイズが入ったかのようにガタガタとよく揺れる.
原因は複数あるのだろうと思う.ひとつは実際に頭の揺れ.メガネをつけていると良く揺れるけど,置くとかなり安定する.

もうひとつは検出の精度の問題.Wiiリモコンについてる赤外線カメラは横方向に45度の視野角を持っていて1024*768の解像度を持っているらしい.この解像度は横方向に1024段階で位置を調べられるということになる.これはカメラから離れるほど,検出できる位置が粗くなる.

近づければ精度は高くなるけど,そうすると今度は頭を動かせる範囲が狭くなる.このあたりはやりたいことを考慮してちょうど良い位置にカメラを配置しないといけない.

また,赤外線の光点の動きが1ドット刻みになるのでカメラから見て斜めに動いたりするとドットに合わせてジグザグ動いたことになってしまう.
このジグザグな動きを何とかしようと思うと,検出できる解像度より細かく頭の位置を知らないといけないということになる.

今回のプログラムでは過去数回の検出した位置から現在の光点の位置を推定する計算(最小二乗法)を挟んでる.斜めにジグザグ動いているなら光点はその間をまっすぐ移動しているだろうということにしてる.