こんにちは。
今回は行動プログラムについてお話しします。
ロボットの「行動」とは、ボールを取りに行ったり、シュートしたりすることを指します。
Hibikino-Musashiのプログラムでは、
1.行動選択
2.行動実行
3.下位制御
といった流れでロボットを動かしています。
1.行動選択では、「キックオフ」の信号が来たら何をする や、フォワードやディフェンダーといったロール(役割)を決める といった処理を行います。
2.行動実行では、具体的にどういう動きをすればよいかを計算して、目標速度や進行方向などを算出します。
3.下位制御では、モーターを回したり、方位センサやエンコーダからのデータを読み出します。
行動プログラムで重要なのが、「ボールを取る動作」と「ボールを運ぶ動作」です。これらに関しては、ポテンシャル関数を使って軌道生成をしたり、他チームの論文を参考にしてファジー制御を取り入れたりしています。
ちなみに、前回の動画ではポテンシャル法で動きを作っています。
ボールの相対距離・角度と、ゴールの相対角度を用いて、
↓このような式を作ります(aは正の定数、Vminはロボットの最低速度)。
Omegaが角速度、Angleが進行方向、Velocityが速度ですので、ロボットはゴールの方向を向きつつボールとゴールが一直線に並ぶような位置に緩やかに減速しながら移動します。
いかがでしたでしょうか?
行動プログラムでは、この他にも回転行列を使ったロボットのポジショニングなど、面白いコードを見ることが出来ます。
基本的に使われているのは高校レベルの数学ですので、そこまで難しくはありませんよ。
次回は「画像処理」についてお送りします。
1 件のコメント:
速度算出の式が間違っていました。
Velocity = Vmin + dball/|θgoal|
が正しい式です。
コメントを投稿