考察:「小脳型行動制御」

by ご近所のきよきよ


 
 竹馬にも乗れるロボットはどんな制御方法を取らねばいけないかな、とフト思いました。運動学的行動制御ではどうしてもいかんなと感じたわけです。竹馬まで精確な動力学を解かねばいけなくなるからです。
 
 小脳型行動制御といいますと、センサーベースな制御なわけです。センサーからのデータが目標にフィットしているかどうかということで、最適制御をしていく。そんな基本的な技術です。竹馬ですと、ロボットの体重と竹馬の体重を・・・合成重心を竹馬と地面との接点の上に来るように制御し、全体が動かなくすることです。それがフィットネスパラメータになるわけです。竹馬で移動するのも、重心の移動を安定的に維持できるように予測制御するのです。もちろんフィットネス制御ですから、学習によってセンサーとアクチュエータ制御のパラメータの間の関係を得ていく必要があります。
 
 ロボットの体のモデルというものを作れます。しかし、手の長さとか、足の長さ、体重・・・重心といったパラメータは実際のロボット毎に違います。モデルをこのような現実に適応させることは、ロボットが竹馬に乗るのと同じ原理になると思います。汎用的なモデルによって、予測制御していくには、小脳型行動制御を始めから想定していく必要があるのです。もちろん、ロボットは人体と違い、アクチュエータを運動学モデルであるレベルまで記述できます。記述すべきなのです。コアとなる制御機構は運動学を使った方が有理ですし。ということで、小脳型行動制御ではセンサーデータのパターンと体の状態、運動の状態のパターンの間の対応を学習する必要があって、その学習の方向はセンサーのフィットネスパラメータとなるのです。
 
 実際にロボットが行動していくときには、実際のセンサーデータとモデルのセンサーパラメータデータとの間に誤差が生じてきます。この誤差で、アクチュエータの行動コマンド(神経パルスの強さ、頻度)を修飾します。修飾パラメータも学習によって得ていきます。ここがモデル予測制御のキーポイントとなる技術です。誤差が修復できないとき、異なる行動・・・緊急行動を選択していきます。ここは行動のプランニングで、汎用の行動制御システムとして、ここで述べた技術で学習していくものです。
 
 もう少し詳しく論じてみましょう。
【身体の形状】
 [BodyStay]=A・[SensorBodyStay]
             [BodyStay]:身体の形状を表現するベクトル
[SensorBodyStay]:身体の形状を表現するセンサーデータベク        トル(皮膚を表現するネットとか間接角度        とかの信号)
A:変換マトリクス(学習によって、あるいは作り込みによっ        て決定する)
【行動の形状】
 [BodyMove_k]={[BodyMove_k_i]=B_k_i・[SensorBodyMove_k_i] (i=0..m) }(k=0..n)
[BodyMove_k]:k番目の身体の動きを表現するベクトル
[BodyMove_k_i]:i番目の行動要素ベクトル
[SensorBodyMove_k_i]:身体の運動形状を表現するセンサーデ        ータベクトルのk,i要素
            B_k_i:変換マトリクス
【行動モデル】
 Model={BodyMove_k (k=0..n)}
            Model:モデル予測制御の身体行動モデル
とすると、Model(k)={B_k_i・[SensorBodyMove_k_i]}となります。
【モデル予測制御】
 Modify_t=C_t・E_t 
ここに、行動誤差E_t=RealBodyMove_t-ModelBodyMove_t
もし、RealBodyMove_tをModelの要素を検索して、適当なセンサーベクトル表現を得ることができれば、次のように、センサーデータによって、誤差を低減すべく修飾すべき自律行動が次のように表現されます。
 Modify_t=C_t・(B_r_s・[RealSensorBodyMove_i_t]-B_i_t・[SensorBodyMove_i_t])
RealSensorBodyMove_i_t:実際の身体の動きに対するセンサーからのデータ
ここに、(r,s)はRelaSensorBodyMove_i_tでModelの検索結果、マッチする変換マトリクス点です。
 
 
 こうして、小脳のモデルができました。
 
 

おわり