BasicPlayerについて


河原林研究室 >> マイクロロボットサッカー日本一への道 >> 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未満)停止。