カメラを除いてロボットに搭載されるセンサは以下の通りです。
- 3軸加速度センサ(ADXL345, Analog Devices):姿勢の変化、進行方向の変化、衝突の検知
- ホール効果センサ(A1324, Allegro MicroSystems):接地の検知、衝突の検知
- サーボモータ(KRS-3301,Kondo Kagaku,目標角度との差):姿勢の変化、衝突の検知
3.のサーボモータは純粋なセンサではありませんが、モーター+センサという構成なのでセンサとして取り扱うことにします。先日投稿したブログでは加速度センサを障害物回避に利用する手順を示しましたが、そこで示したように加速度だけではなく、速度、変位も後付けで計算できるので非常に有用です。まずは加速度センサを姿勢変化の把握のために利用する場合の具体的な方法を以下に示します。
- 姿勢の変化は、現在の重力加速度ベクトル g_vecと水平時の重力加速度ベクトル g_initの内積をとってそれを1.0と比較することで判断できます。内積をとる前にはまず2つのベクトルを長さ1.0となるように正規化しておきます。水平に近い姿勢の場合は内積の値は1.0に近くなります。また、ロボットがひっくり返ると-1.0に近くなります。
- 今回はロボットに設置されたはさみ及びアームの重量によって常に前掛りの荷重がかかっています。そこで姿勢を補正して水平時の重力加速度ベクトルになるべく近づけるようにします。ロボットの姿勢が前掛りになっている場合、6本の脚部先端部に埋め込まれたホール効果センサを利用した圧力計測では前脚に最も荷重がかかり、次いで中脚、最も荷重が少ないのは後脚となります。さらにはさみ及びアームの重心は右に寄っているので、右前脚に最も荷重がかかり、対角線上の左後脚は最も荷重が軽くなります。
- 同時にサーボモータの目標角度からのずれは、前脚が最も大きく、次いで中脚、最も小さいのは後脚となります。さらにはさみ及びアームの重心は右に寄っているので、右前脚のずれが最も大きく、対角線上の左後脚は最もずれが小さくなります。
- このように加速度センサ、ホール効果センサ、サーボモータそれぞれの出力に関連性が出てきます。姿勢変化の補正はこれら3種類のセンサからの出力を総合的に見て判断します。こうして多角的に見ることで姿勢変化が本当に発生しているかどうかをより精緻に見極めることが可能になります。
- サーボモータの目標角度は、脚部先端部が予め設定された接地点に一致するように逆運動解析によって計算して求めます。
- まずはロボットが歩行を開始していない状態で姿勢の補正をおこない、その後リアルタイムでの補正に移行することにします。