agent2d

概要

このページでは,librcsc 1.1.x から 1.2.x に加えられた変更に追従するための手順を説明します.

このページに書かれている手順によってagent2d-0.1.0からの手作業によるアップデートは可能ですが,出来る限り,agent2d-0.2.0のパッケージを使用することを推奨します.

手順

関数名の変更

agent2d-0.1.0/src/ ディレクトリ以下で,以下のスクリプトを実行してください.

#!/bin/sh

for i in *.cpp;
do
        echo $i

        sed -e 's/getInterceptTable/interceptTable/g' \
            -e 's/getSelfReachCycle/selfReachCycle/g' \
            -e 's/getTeammateReachCycle/teammateReachCycle/g' \
            -e 's/getOpponentReachCycle/opponentReachCycle/g' \
            -e 's/getSelfInterceptPoint/selfInterceptPoint/g' \
            -e 's/getSetPlayCount/setplayCount/g' \
            -e 's/getHeardPassTime/heardPassTime/g' \
            -e 's/getHeardReceiverNumber/heardReceiverNumber/g' \
            -e 's/getHeardReceivePos/heardReceivePos/g' \
            -e 's/getTime/time/g' \
            -e 's/getOurSide/ourSide/g' \
            -e 's/getGameMode/gameMode/g' \
            -e 's/getOnfieldSide/onfieldSide/g' \
            -e 's/getPenaltyKickState/penaltyKickState/g' \
            -e 's/getOurTakerCounter/ourTakerCounter/g' \
            -e 's/getCurrentTakerSide/currentTakerSide/g' \
            -e 's/getFastestOpponent/fastestOpponent/g' \
            -e 's/getFastestTeammate/fastestTeammate/g' \
            -e 's/getDashDistanceTable/dashDistanceTable/g' \
            -e 's/getDummyType/dummyType/g' \
            -e 's/getDefenseLineX/defenseLineX/g' \
            -e 's/getOffsideLineX/offsideLineX/g' \
            -e 's/getOpponentsFromSelf/opponentsFromSelf/g' \
            -e 's/getOpponentsFromBall/opponentsFromBall/g' \
            -e 's/getSeeUpdateTime/seeTime/g' \
            -e 's/getTeammatesFromSelf/teammatesFromSelf/g' \
            -e 's/getTeammatesFromBall/teammatesFromBall/g' \
            -e 's/getPlayerTypeMap/playerTypeMap/g' $i > tmp

        mv tmp $i
done

完全に置換するファイル

0.2.0のパッケージから同名のものをコピーしてきて上書きしてください.

  • src/Makefile.am
  • src/start.sh.in
  • src/train.sh.in
  • src/startegy.{h,cpp}
  • src/soccer_role.h
  • src/role_*.h

ソースファイルを独自に追加してMakefile.amを編集していた場合は,新しいMakefile.amにその変更を反映してください.

削除するファイル/ディレクトリ

  • src/formation.{h,cpp}
  • src/formation_uva.{h,cpp}
  • src/formation.conf
  • src/formations/ ディレクトリ

追加するディレクトリ

0.2.0のパッケージから同名のものをコピーしてきてください.

  • src/formations-bpn/
  • src/formations-dt/
  • src/formations-uva/

編集が必要なファイル

以下,'-'が頭に付いている行は0.1.xで既に記述されている内容です. それらを,'+'が頭に付いている行の内容に修正します.

bhv_penalty_kick.cpp

523行目付近:

-  rcsc::Vector2D ball_vel( rcsc::Vector2D::POLE, tmp_first_speed, angle );

+  rcsc::Vector2D ball_vel
+      = rcsc::Vector2D::polar2vector( tmp_first_speed, angle );

1065行目付近

 -  rcsc::Vector2D intersection;
 -  if ( goal_line.intersection( line_m, &intersection ) )
 -   {

+  rcsc::Vector2D intersection = goal_line.intersection( line_m );
+  if ( intersection )
+   {

1187行目付近

-    rcsc::Vector2D intersection;
-    if ( ! my_line.intersection( ball_line, &intersection )
-         || ! ball_ray.inRightDir( intersection ) )
-    {

+    rcsc::Vector2D intersection = my_line.intersection( ball_line );
+    if ( ! intersection
+         || ! ball_ray.inRightDir( intersection ) )
+    {

sample_coach.cpp, sample_player.cpp, sample_trainer.cpp

doInit()の定義を,0.2.0のソースに書かれている内容で完全に置換してください.

sample_coach.h, sample_player.h, sample_trainer.h

doInit()の宣言で,引数を変更.

-    virtual
-    bool doInit( const int argc,
-                 const char * const * argv );

+    virtual
+    bool doInit( rcsc::CmdLineParser & cmd_parser );

各、role_*.cpp, sample_player.cpp

インクルードの変更.

- #include "formation.h"
- #include "formation_uva.h"

+ #include <rcsc/formation/formation.h>

以下のようなuva::Formations::instance()を使用している箇所を削除します. ソース中にも delete here と書いています.

 if ( uva::Formations::instance().valid() )
 {
  ...
 }

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (1285d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.