はじめに
ロータリエンコーダ(Rotary Encoder)は、入力軸の回転の変位を内蔵した格子円盤を基準としてデジタル信号として出力する角位置センサである。回転を測定するセンサではもっとも一般的である。同様の仕組みで直線変位を検出するものをリニアエンコーダという。そもそもは回転角測定用検出器としての考案であるが、ロボットや情報機器のサーボ系統の位置決めなど、新たな使用用途が確立されてきている。とwikiよりそのまま引用する。
光学式LEDセンサまたは非接触型磁気センサ(ホールセンサ)を使用したロータリエンコーダ(エンコーダと略す)により、回転速度と方向が検出可能とするエンコーダがインクリメンタル・ロータリー・エンコーダと呼ばれる。光学式LEDセンサとホールセンサの原理は類似しているが、光を検出するための感光素子を使用するのと、磁界の脈動を検出するためのホール素子を使用するセンサである。
以下のように、インクリメンタル・ロータリー・エンコーダを使用した車輪の直線速度を計算してみる。他に、回転角度の絶対値を出力するアブソリュート・ロータリー・エンコーダがあるが、ここで割愛とする。
エンコーダ分解能
エンコーダ分解能を表すには、PPR LPR CPRとの指標またパラメータがある。PPRあるいはLPRは、Pulses or Lines Per Revolution即ち、車輪1回転あたりのパルス数である。CPRは、Counts Per Revolution 即ち、車輪1回転あたりのカウント数である。PPR CPRの換算について、位相Aと位相Bパルスの状態0/1を組み合わせて、00、01、11、10の4パタンがあり、ついては「4倍速周波数」CPR = PPR * 4 の関係がある。
ギアボックス(減速機)つきDCモータ、エンコーダの回転軸がモータシャフトに取り付けたの場合、エンコーダ分解能 = 車輪1回転(即ちギアボックス出力シャフト1回転)当たり、エンコーダが出力するパルス数 = 基礎パルス数(モータシャフト1回転当たりのエンコーダが出力するパルス数) * 減速比。ここの減速比は虫眼鏡のズーム倍率と例えることができる。
上図のようなロータリエンコーダの分解能が、以下のように計算される。
基礎パルス数 = 8(p)
減速比 = モータ回転速度 / モータシャフト回転速度 = 100
車輪1回転につき、エンコーダ位相AのPPRあるいはLPR = 800(p)
車輪1回転につき、エンコーダ位相BのPPRあるいはLPR = 800(p)
位相Aと位相Bの位相差 = 90°(センサAとセンサBの位相差)から、車輪1回転あたりのカウント数CPR = 800(p)(PPR) * 4 = 3200(c)
状態カウント数
状態カウント数は、状態(時計まわりの回転か反時計まわりの回転か静止)の変化をカウントしたパルス数である。もし時計まわりの回転で状態カウント数が増えると、以下の擬似コードで記述される。
if 時計まわりの回転
then 状態カウント数(c) = 状態カウント数(c) + 1(c)
else if 反時計まわりの回転
then 状態カウント数(c) = 状態カウント数(c) – 1(c)
else if 静止
then 状態カウント数(c) = 状態カウント数(c) + 0(c)
end if
車輪の直線速度m/s
車輪の直線速度は、以下の式より計算される。
車輪の直線速度(m/s) = 車輪の円周の長さ(m) * 状態カウント数(c) / [エンコーダ分解能CPR(c) * パルスをカウントした時間(s)]
車輪の回転速度(角速度)rad/s
車輪の回転速度(角速度)は、以下の式より計算される。
車輪の角速度(rad/s) = 2π * 状態カウント数(c) / [エンコーダ分解能CPR(c) * パルスをカウントした時間(s)]
関連記事
9軸IMU 6軸/9軸フュージョン 低遅延 USB出力 補正済み ROS対応
エンコーダ付きDCモータPID制御の実験-haya_imu応用例
エンコーダ付きDCモータPID制御の実験-hayate_imu応用例
点検向け自律移動ロボットRED(薄型・小型)
研究開発用 台車型ロボット キット
SLAM~拡張カルマンフィルタ