2009/12/02

Hibikino-Musashiのプログラム(2)

こんにちは。

今回は行動プログラムについてお話しします。

ロボットの「行動」とは、ボールを取りに行ったり、シュートしたりすることを指します。

Hibikino-Musashiのプログラムでは、
 1.行動選択
 2.行動実行
 3.下位制御
といった流れでロボットを動かしています。

1.行動選択では、「キックオフ」の信号が来たら何をする や、フォワードやディフェンダーといったロール(役割)を決める といった処理を行います。

2.行動実行では、具体的にどういう動きをすればよいかを計算して、目標速度や進行方向などを算出します。

3.下位制御では、モーターを回したり、方位センサやエンコーダからのデータを読み出します。

行動プログラムで重要なのが、「ボールを取る動作」と「ボールを運ぶ動作」です。これらに関しては、ポテンシャル関数を使って軌道生成をしたり、他チームの論文を参考にしてファジー制御を取り入れたりしています。

ちなみに、前回の動画ではポテンシャル法で動きを作っています。

ボールの相対距離・角度と、ゴールの相対角度を用いて、


↓このような式を作ります(aは正の定数、Vminはロボットの最低速度)。

Omegaが角速度、Angleが進行方向、Velocityが速度ですので、ロボットはゴールの方向を向きつつボールとゴールが一直線に並ぶような位置に緩やかに減速しながら移動します。

いかがでしたでしょうか?

行動プログラムでは、この他にも回転行列を使ったロボットのポジショニングなど、面白いコードを見ることが出来ます。

基本的に使われているのは高校レベルの数学ですので、そこまで難しくはありませんよ。

次回は「画像処理」についてお送りします。

1 件のコメント:

hibikino-musashi さんのコメント...

速度算出の式が間違っていました。
Velocity = Vmin + dball/|θgoal|
が正しい式です。