センサーのページ
概要
このページでは、実際に取りつけたセンサーと、今後取りつけるかもしれない
センサーについて説明します。姿勢制御に関するセンサーフュージョンをじっくり試そうと思っています。
[角速度センサー]
[加速度センサー]
[関節角度センサー]
[足先タッチセンサー]
角速度センサー
ロボットの姿勢変化を知るためのセンサーです。GWSのPG-03という超小型RCプレーン(ヘリ)
用の圧電振動ジャイロを、マイコンの裏にあるスペースに3個積みました。
加速度センサー
ロボットの姿勢を知るために搭載している
センサーです。アナログデバイセズのADXL202という
2軸の加速度センサーを利用し、重力の方向からロボットの姿勢を計算します。
このセンサーは、転倒の判定にも使っています。プログラムは
「一定の傾斜のデータが来たら傾斜の方向を画面に表示してプログラム中断」としていますが
必ず転倒方向が反対に出てきます。このことから、地面と衝突した時、もしくは
転倒防止の紐が「ピンと張ったとき」の減速の加速度も測定出来ていると分かりました。
搭載の方法に関しては、
簡単に済ませるため、秋月のキットからPICのチップを外し、周波数も1kHzのまま使っています。
このセンサーにも「重力の加速度」と「自分で動いた加速度」の分離という
難しい?問題があります。
基板上で、黄色と白のコードの後ろに隠れているチップがADXL202で、空のICソケット
がPIC16F84を外した後です。
関節角度センサー
サーボモーターに内蔵されているポテンショメーターを利用するつもりで、
12個積んでいるサーボの内の1個だけに配線して試してみました。
きちんとポテンショメーターを読めば、現在の関節角度と負荷が分かるのですが、
H8/3048FのA/D入力ポートに、引き出した線をただつないだだけでは、
読み取り分解能が不十分でした。「負荷」まで知るには、プリアンプ等で
A/D変換の入力レンジ(キットのままだと0〜5V)を調節したり、ノイズ
対策をしたりと、ハードの付加が必要であると分かったため、v5で
簡単に試し後、v6ではこの線を撤去してしまいました。
v5では、サーボの動作範囲90度を8bitの分解能で位置指定していましたので、
負荷による定常偏差を知るためには、8bit以上の分解能が必要だと思いました。
(ここを書いている時点で思うに、よく考えたらあたりまえなことでした・・・)
読み取り精度が低いままでの使い道としては、電源投入後に
各関節位置を大雑把に読み取り、その状態からゆっくりと、両足を絡めないように、
中立位置まで動くような動作を発生するための入力としてならば使えそうだと思いました。
ちなみに、私の脚式ロボットの場合
、電源投入直後にロボットの関節の状態がどうあろうと、いきなり関節の中立位置まで
動くため、電源投入前に各関節を、中立位置に近い位置まで手で直し、
指を関節にはさんだりしないような状態で保持してから電源を
投入しないと破損の恐れがありますが、市販の(高級)ペットロボットはこの辺の考慮が
あるようです。
足先タッチセンサー
ジャイロの出力から脚が接地したタイミングは分かり易い(衝撃があるから)
のですが、離れた瞬間が分かりにくいので、「やはり必要かなのか」と
考えていました。しかし後のトライで接地のタイミングも歩き方によって
衝撃があったり無かったりがある上、「接地」タイミングがモード切替タイミングの
キーになるとの認識を持ったため「絶対必要」であると考えを変えました。
そんなわけで左右の「つまさき」と「かかと」に各1個ずつマイクロスイッチ(オムロン製 D2F-L)を付け、
足が地面から離れた
時刻と接地した時刻を計っています。スイッチのON/OFFストロークは1mm程度です。
一応役には立っていますが、足の裏の荷重分布が分かれば一番良いな〜と思います。
戻る
ホームへ戻る