エヌがのロボット製作日記

どうも「エヌがの」です。主にマイクロマウスのことばかり書いているぶろぐです。とあるuniqueでexcitingな大学に在学中です。

自作光学式エンコーダ1

こんにちは。エヌがのです。
 
 ついに今年もマウスシーズン突入ですね。予定ならもうそこそこ迷路走っているはずなんですが、まだハード部分で苦戦中......
 とりあえず、自作の光学式エンコーダで距離と速度が取れるようになったのでブログに書くことにしました。とりあえず今の進捗報告ということですかね
 
 話の構成は以下になります
・ハードウェアの構成
・距離と速度取得
・速度補間

◯ハードウェアの構成
 手法は、穴の空いたホイールにフォトリフレクタで反射光を読む単純な方法です

f:id:megato:20160711011815p:plain:h200 f:id:megato:20160711011817p:plain:h200
ホイールの穴は10つ。穴数は特によく考えず決めた。きっとなんとかなるだろう

ホイール自体は分厚い歯車を購入してNC切削で追加工しました

◯距離と速度取得
 0.1ms毎にAD変換を行った時の波形が下のグラフの青線になります。光学式のエンコーダは通常、閾値を設けてこれを矩形波に変換しますが、見ての通り波形の平均値がぶれているためその方法は難しそう...ということで、波形のピークを検出することにしました。下のグラフの黄線はピーク検出時のものです

 f:id:megato:20160711012603p:plain:w400
そこそこ良い感じにとれている

 このピーク検出により距離が取得でき、さらにピーク検出間の時間を用いれば速度が取得できました

 これでエンコーダとしては十分なはずですが、実際の速度値が下のような波形となっており実用にはだいぶ厳しい
f:id:megato:20160711014608p:plain:w400

◯速度補間
 エンコーダから取得した速度情報だけではノイズがひどく更新も遅いため、加速度センサを用いてカルマンフィルタで補間してみました

f:id:megato:20160711015739p:plain:w400
黄線:エンコーダ速度 青線:補間後の速度

 やはりカルマンフィルタは強いですね。真値が出ているかどうかは別として。


まとめ
・フォトリフレクタでホイールの凹凸を読む
・ピーク検出で距離・速度を計測
・加速度を用いてカルマンフィルタ補間

を行いました。

 ここまで結構苦戦しましたがなんとか形になりました。迷路走りだすのはまだかかりそうです