CPG解説


この解説を書いてあるのは、明らかに知識不足の大学生なので間違いが多数ある可能性があります。
遠慮なく指摘してください。それがこちら側からしたら勉強になります。

まず、CPGとはセントラル・パターン・ジェネレータの略です。
人間でも言えることですけど、歩くときにいちいち右足を出してとか考えてないわけですよ。
人間が歩くのも、鳥が羽ばたくのも、周期運動になるはずです。
ただ、右足と左足が別々の周期で動いたり、一緒に出してしまったりしては歩けません。
つまり、両方の足が協調して、ある一定のパターンで動くために必要なのがCPG・・・・・だと思います。

CPGは、単にリズムを生成するだけではなく、例えば地面に足が当たった、鳥なら風が吹いたなど外乱をフィードバックします。それによってパターンを修正します。

式で表すと以下のようになります。は、この式で番目の足への出力を求めていて、番目の足への出力()が抑制しますよという意味だと思う。つまり、右足が出ているときに左足への出力は抑制して左足は出さないようにする・・・・という意味だろうか。

まず、は状態変数、は入力変数、は外乱などのフィードバック、は出力変数です。

この式によってを求めて一番下の式で求めるのだと思います。

人間なら、が足の関節の角度とかの目標値(これも多分)になります。

この非線形方程式の数値解(オイラー法とかで)求めるとは周期的な出力になるはずです。
は正の一定値です。が同じ時は0、それ以外のときは正の値になります。

は以下の式を変形するととなる(多分)ように出力が大きいほどが時間がたつにつれて大きくなりその結果が小さくなりが小さくなる、疲労特性が得られます。

が0以下のときは0、0以上のときはになります。

 東京大学の松下光次郎氏のサイト(これを見てCPGとかに興味を持った。)にあったプログラムでは、フィードバックを求める関数を遺伝的アルゴリズム(SimE?)で調整している・・・・・・・みたいですが(多分。間違ってたら指摘してください。)。

でも、僕、入力を設定する方法もわからないんですよ。はこっちで勝手に設定してもよいと思うのですが、はわかりません。
このサイトのトップページにある蛇型ロボットはのある値を100とかにしたらうまく動きました。
これについては調べときます。これも学習できないのかなあ。


活動の報告に戻る

トップページに戻る