河原林研究室 >> マイクロロボットサッカー日本一への道 >> BasicPiayerとWarldDataについて >> BasicPlayer?について
プログラム冒頭訳 †
Written by Juliana Fajardini <jufajardini@gmail.com>
ジュリアナ・ファジャルジニ 著
This program is free software; you can redistribute it and/or
このプログラムは配布可能なフリーソフトです。
modify it under the terms of the GNU Lesser General Public
GUNのLGPL にのっとって修正してください。
License as published by the Free Software Foundation; either
フリーソフトウエアーによって公表されたライセンス;
version 2.1 of the License, or (at your option) any later version.
ライセンスのバージョン2.1もしくは(あなたの選んだ)最新バージョンのどちらか。
This program is distributed in the hope that it will be useful,
このプログラムはあなたが使いやすいように分配されています。
but WITHOUT ANY WARRANTY; without even the implied warranty of
しかし、品質の保証はありません。
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
また、市場の黙視の保障や特定目的への適合性は除外されています。
Lesser General Public License for more details.
LGPL の詳細
You should have received a copy of the GNU Lesser General Public
プログラムとともにGUNのLGPLについてのコピーをとってください。
License along with this program; if not, write to the Free Software
もし、そうでなければ、フリーソフトウェアの基礎を書いてください。
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
・・・
ATENTION!
注意!!
This class uses some methods early defined in Rodrigo Guerra's pv-soccer-client.
このクラスは、ロドリゴ・グェルラが初期に作成したサッカークライアントプログラムビジョンのめそっとを使用しています。
The reason to use them is provide an already known interface to the teams,
それを使用する理由は、準備された衆知のインターフェイスのチームで、
and also make good use of what already existed of ealier work in MR-league.
そして、
The main idea of this class is provide the basic methods that an agent
このクラスのメインアイディアはエージェントがプレイを可能にできる
must have, in order to be able to play. To get information about
最低限の十分な準備がなされています。チームとスタッフについての情報は
、
opponents, teammates and stuff, the agent would use "WorldData?" methods.
"WorldData?"より 引用しています。
プログラム(BasicPlayer?)
†
- BasicPlayer?::BasicPlayer? (mrTeam myTeam)
コンストラクタ。mTeamにmyTeamの値を入れる。
引数;mrTeam , myTeam
- virtual BasicPlayer?::~BasicPlayer?()
デストラクタ。特になし。
引数;なし
- void BasicPlayer?::setConnection(Connection* newConnection)
pConnectionにnewConnectionの値を入れる。(set)
引数;Connection*(アドレス), newConnection
- void BasicPlayer?::setWorldData?(WorldData?* newWorldData?)
mWorldData?にnewWorldData?の値を入れる。(set)
引数;WorldData?*(アドレス), newWorldData?
- void BasicPlayer? :: pv_flush()
サッカーサーバーのcmdに蓄えられているデータが送られる。1サイクルにつき、1度呼び出さなければいけない。
引数;なし
- mrTeam BasicPlayer? :: getAgentTeam?()
エージェントチームの値を返す。
引数;なし
- bool BasicPlayer? :: pv_can_kick()
ボールがけれるかけれないかを判断する関数。
WorldData?::pv_ballの距離(mm)が設定した値(MR_TOKICK_MAX_DISTANCE)より小さければtrue、それ以上ならばfalseを返す。
引数;なし
- void BasicPlayer? :: pv_kick(double angle, double strength)
ロボットにキックさせる関数。
アングルによって、キックの方向と強さを指示する。
引数;double angle , double strength
- void BasicPlayer? :: pv_set_velocity(double left, double right)
車輪の速度を設定する。
引数;double left, double right
- void BasicPlayer? :: pv_go_straight(double speed)
ロボットが直進する(左右の車輪が同じスピードで動く)速度を設定する。(↑に同じ速度を入れる。)
引数;double speed
- void BasicPlayer? :: pv_stop()
ロボットが止まる。
引数;なし
- void BasicPlayer? :: pv_quick_turn_left()
設定された速さ(MR_FASTEST_WHEEL_SPEED)(の2倍)で、プレイヤーが左へ早く向きを変える命令をする。
引数;なし
- void BasicPlayer? :: pv_quick_turn_right()
設定された速さ(MR_FASTEST_WHEEL_SPEED)(の2倍)で、プレイヤーが右へ早く向きを変える命令をする。
引数;なし
- void BasicPlayer? :: pv_turn_left()
設定された速さ(MR_NORMAL_WHEEL_SPEED)(の2倍)で、プレイヤーが左へ向きを変える命令をする。
引数;なし
- void BasicPlayer? :: pv_turn_right()
設定された速さ(MR_NORMAL_WHEEL_SPEED)(の2倍)で、プレイヤーが右へ向きを変える命令をする。
引数;なし
- void BasicPlayer? :: pv_slow_turn_left()
設定された速さ(MR_SLOW_WHEEL_SPEED)(の2倍)で、プレイヤーが左へゆっくり向きを変える命令をする。
引数;なし
- void BasicPlayer? :: pv_slow_turn_right()
設定された速さ(MR_SLOW_WHEEL_SPEED)(の2倍)で、プレイヤーが右へゆっくり向きを変える命令をする。
引数;なし
- void BasicPlayer? :: pv_curve_left()
ロボットが、進みながら左へ曲がる命令をする。(左;MR_SLOW_WHEEL_SPEED, 右
;MR_FASTEST_WHEEL_SPEED)
引数;なし
- void BasicPlayer? :: pv_curve_right()
ロボットが、進みながら右へ曲がる命令をする。(左;MR_FASTEST_WHEEL_SPEED, 右
;MR_SLOW_WHEEL_SPEED)
引数;なし
- void BasicPlayer? :: pv_curve_left2(int back)
back=1のとき、設定された方向の逆方向に進行しながら進行方向に対して左(設定方向に対して右)にゆっくり曲がる。(左;-MR_NORMAL_WHEEL_SPEED, 右;-MR_SLOW_WHEEL_SPEED)
back=0のとき、設定された方向に進行しながら左にゆっくり曲がる。
引数;int back
- void BasicPlayer? :: pv_curve_right2(int back)
back=1のとき、設定された方向の逆方向に進行しながら進行方向に対して右(設定方向に対して左)にゆっくり曲がる。(左;-MR_SLOW_WHEEL_SPEED, 右;-MR_NORMAL_WHEEL_SPEED)
back=0のとき、設定された方向に進行しながら右にゆっくり曲がる。
- void BasicPlayer? :: pv_chase(vector_t v)
WorldData?のpv_go_to(v)を実行する。
引数;vector_t v
- void BasicPlayer? :: pv_escape_from(vector_t v)
vector_tの角度を反転してからWorldData?のpv_go_to(v)を実行する。
引数;vector_t v
- void BasicPlayer? :: pv_go_to_original(vector_t v)
指定した極座標へ向かう関数。
vector_tを設定して、その角度を-180~180とする。
境界が90度より上のとき右へ、-90度未満のとき左へ向きを変える。
それ以外の距離が150を超えるのとき、
角度が20度より上で左に曲がり、-20度未満で左に曲がる。
さらにそれ以外、MR_FASTEST_WHEEL_SPEEDで直進する。
それ以外で距離が50〜150のとき、
角度が10度より上で左に曲がり、-10度未満で左に曲がる。
さらにそれ以外、MR_SLOW_WHEEL_SPEEDで直進する。
それ以外で、距離が10〜50のとき、
角度が5度より上で左に曲がり、-5度未満で左に曲がる。
さらにそれ以外、MR_SLOW_WHEEL_SPEEDで直進する。
上記以外の場合(距離10未満)、停止。
引数;vector_t v
- void BasicPlayer? :: pv_go_to(vector_t v)
指定した座標へ向かう関数。(上記の改良版)
back=1を定義
角度が-120度〜-60度もしくは60度〜120度のとき、pv_go_to_originalを実行する。
それ以外で、角度の絶対値がが90度よりも大きいとき、角度を反転させて(正のときπを引き、負のときπを足す)、back=1とする。
それ以外で、距離が150より上のとき、
角度が20度より上で、pv_curve_right2(back)を実行。
20度未満で、pv_curve_left2(back)を実行。
それ以外の距離が120より上で、
back=1のとき、MR_FASTEST_WHEEL_SPEEDのスピードで後退。
back=0のとき、MR_FASTEST_WHEEL_SPEEDのスピードで前進。
それ以外で、距離が50〜150のとき、
角度が10度より上で、pv_curve_right2(back)を実行。
-10度未満でpv_curve_left2(back)を実行。
それ以外で、
back=1のとき、MR_SLOW_WHEEL_SPEEDのスピードで後退。
back=0のとき、MR_SLOW_WHEEL_SPEEDのスピードで進行。
それ以外で、距離が10〜50のとき、
角度が5度より上で、
back=1のとき、左;0, 右;-MR_SLOW_WHEEL_SPEEDの速度で曲がる。(逆方向向きに右へ)
back=0のとき、左;MR_SLOW_WHEEL_SPEED, 右;0の速度で曲がる(順方向向きに右へ)
角度が-5度未満で、
back=1のとき、左;-MR_SLOW_WHEEL_SPEED, 右;0の速度で曲がる。(逆方向向きに左へ)
back=0のとき、左0;, 右;MR_SLOW_WHEEL_SPEEDの速度で曲がる(順方向向きに左へ)
それ以外で、
back=1のとき、MR_NORMAL_WHEEL_SPEEDのスピードで後退。
back=0のとき、MR_NORMAL_WHEEL_SPEEDのスピードで進行。
それ以外で(距離10未満)停止。
最新の10件
2011-03-03
2010-11-08
2010-10-08
2010-10-29
2010-11-25
2010-10-22
2010-11-22
2013-02-12
2011-05-13
2011-04-20
今日の10件
- counter: 1106
- today: 1
- yesterday: 0
- online: 1