□■歩行検討メモ■□
<2005.10.22>
■左右同調検出
急に横に吹っ飛ぶのは遊脚が持ち上がり、スタンスが変わることでタイミングが大きく変わるのが原因のようだ。
足首へ荷重がかかるタイミングを調整しようと思っていたが、その点だけを考えると遊脚を上げられないようになる可能性もあるかも。
⇒そういうわけでもないらしい。こけない状態でも負荷は抜けているので遊脚は浮いているのと同じ状態のようである。
動かし始めた時はあまり発生しないが、一度発生すると発生しやすくなる。機械的な問題が絡んでいる?
遊脚が浮いたかどうかの判別に膝関節の角度を利用できないか膝関節の指定角度と現在角度を比較して角度が小さいようなら浮いていると判断できるはず。
⇒膝の角度を採取してみた。
(Excel)
どうも、膝関節で遊脚の判定はできそうにない。
左右往復動作の安定性を上げるには(重心(ZMP)が支持脚の外側に行ってしまわないようにするには)股関節の角度を監視した方がよいか?
⇒遊脚が着地した時の位置が股関節のガタによって予定より近くなるのが元凶。
⇒股関節のデータを採取。
(Excel)
股関節データを見れば遊脚が浮いているかどうかは判断できそう。ただ、振幅が大きな時は良いが、振幅が小さいと判断できないだろう。
これらによると、遊脚が上がる=バランスを崩す(支持脚側に吹っ飛ぶ)わけではないようだ。
脚上げ動作を伴った左右往復動作なら脚下ろし時の位置指定で融通が利くかも。
2005.10.23
足首負荷の大きさやタイミングから歩行(左右往復動作)を「待つ」事も必要か。 左右往復動作、特に振幅を大きくして足首に荷重を乗せているタイミングの時は外力に弱い。ちょっとした接触で転倒してしまう。待ったり受身を取ったりという処理も必要かも。
荷重のタイミング取得が安定しない。荷重の最大値も合わせて追いかけた方がいいかも。荷重がかかるタイミングも最大値もリストをとって長いスパンでの変化をフィードバックした方がいいかもしれない。
<結果>
左右往復動作を左端姿勢と右端姿勢を往復するようなデータを生成していたが、ニュートラルポジションの姿勢を経由するようにした。足首や股関節の左右角度についてはまた違った見方があるが、足首の前後角度や膝の角度についてはニュートラル⇒支持脚とニュートラル⇒遊脚では角度の移動量が大幅に違う。これをニュートラルポジションを経由せずに再生すると、関節角度の移動速度にひずみが生じて不安定になるようである。具体的にはニュートラル⇒支持脚の速度が速くなるため不安定になる。
最大負荷と負荷立ち上がり時間については最近5回分の平均を基準値とするようにした。ただし、負荷立ち上がりがなかった場合は平均値計算に加えない。
負荷立ち上がりのレベルは基準最大値の70%とした。データを見る限り50%負荷くらいになったあと、1タイミング置いて、最大になる。ここをチェックポイントとした。
基準の負荷立ち上がり時間との差で、左右往復動作の振幅を増減した。左右それぞれの補正値を持ったので、補正が働くのは1周期あととなる。結果としては補正なしなら3周期くらいで転倒する70/28のパターンでも自然に転倒することはなかった。
足首のデータ
(Excel)
■左右往復動作時の外力への耐性
左右往復動作時は外力に対する耐性が非常に低い。振幅補正では(効力が遅いため)外乱には効果が期待できない。
外力により支持脚の外側のZMPが行ってしまった場合は回復の手立てがないが、外力により揺り戻しのタイミングが遅くなってしまった場合は足首負荷の大きさと立ち下がりタイミングで感知できる可能性がある。
⇒負荷の積分値で判断できるかも?
⇒立下り時点ではすでに次のモーションが仕込まれたあと。もっと早く判断する方法を考える必要がある。
もしくは仕込んだモーションを修正する方法を考える?
<2005.10.30>
■左右往復動作
左右往復動作に上体の傾き(ピッチ角)を加える。動作の安定性を狙ってのこと。
左右のシフト動作に加えて同方向にピッチ角を加えると猿的な胴体を揺さぶりながら歩く動作となり、逆方向にピッチ角を加えると腰を振るモンローウォーク的な動作となる。
猿的動作では腰の位置があまり動かなくて良いのではあるが、上体の動きが大きすぎる感じがある。
モンローウォークは動作により目(カメラ)の位置が動かない(ロールはするが)という利点もあるが、腰部分のシフト動作を速くする割に上体が逆方向に動くことで反動を殺すことが出来る。 部分的な加速度を得ることができるかもしれない。(動作部分の質量が十分である必要が有る)
■足上げ
左右往復動作にて遊脚側の負荷が抜けるタイミングで足を持ち上げる。 負荷が抜けるタイミングを取得する。
それをモーションにどうやって折り込むか。
左右往復動作は3つのキーフレームしかない。微妙なタイミングを追加できる?
データを見ると、左右にシフトするタイプでは負荷が抜けるのは遊脚がニュートラルポジションに戻るタイミング。
これに対してモンローウォークタイプでは遊脚最移動時からニュートラルポジションまでの期間で負荷を抜くことが出来そう。
腰部分の移動距離を大きくする割りに質量の移動が小さいからか?モンローウォークが結構有力な感じだ。
猿型でも同様に負荷が抜けるタイミングがやや早い。
(Excel) 猿型
(Excel) モンローウォーク型
足を上げるのは負荷がしっかりと抜けたことを認識してからとすべきだろう。
上のサンプルデータでは左または右端での「ため」のタイミングの途中から負荷が抜けるようだ。
つまり、足を上げるのは「ため」の途中からとすべき。データでは支持脚側に切り替わって、反対側での「ため」期間に突入する辺りまで負荷が抜けている。足を下げるタイミングはそれより前ということになる。
この負荷が抜ける期間については動作速度も大きく関わっているのでサンプルデータにて考え方を決定してしまってはまずい。
手段
@足上げを行わない動作により遊脚の負荷が抜けることを確認する。同時に負荷が発生するタイミングについても測定しておく。
A足上げを行わないモーションを実行する。
B負荷が抜けた事を確認したら、足上げ動作へ移行。足を下げるタイミングはあらかじめ測定したデータを利用する。
C支持脚の負荷を監視し、負荷が減り始めるタイミングを見る。足を下げるタイミングに間に合いそうになければ、支持脚に動作を加え、支持脚の切り替わり時間を遅らせる。
■データベース
歩行データ(指示データや負荷データ・ジャイロデータ)などを統合的に管理・監視する手段が欲しい。時系列データをリアルタイムに比較照合する。
与えられた歩行パラメータから適切なその他のデータを与える。
歩行した結果で補正を行った内容をフィードバックし、次回の歩行へ反映する。など。。。