-[rcssserver] 議論開始 (akiyama) 19:38:07

まずはファーストドラフトをTCメンバに送りつけてみた.
こんな感じ.
さて,今年の議論はどうなるかな.
早く終わればいいんだけど.

内容はこんな感じ.

 Summary:
  - New dash model
  - New stamina model
  - Heterogeneous player settings
  - Backward tackle
  - Foul
  - Protocol version 13
  - Log format
  - Package redesign
 
 
 ========================================
   New dash model
 ========================================
 
 - New parameters
 
  server::dash_rate_dec_per_angle = 0.006 (=0.54/90.0) // decrement per 1 degree
  server::min_dash_angle = -180
  server::max_dash_angle = +180
 
  server::back_dash_rate = 1.0 // rate for negative dash power
  server::back_dash_stamina_rate = -2.0 // stamina dec rate for negative dash power
 
 
 - New dash algorithm
 
 Player::dash( double power, double dir )
 
   power = NormalizeDashPower( power ); // [server::minpower, server::maxpower]
   bool back_dash = power < 0;
   double power_need = back_dash
                     ? power * server::back_dash_stamin_rate
                     : power );
   power_need = min( M_stamina + M_player_type->extraStamina(), power_need );
   M_stamina = max( 0.0, M_stamina - power_need );
   power = back_dash
           ? power_need / server::back_dash_stamina_rate
           : power_need;
 
   double power_rate = back_dash
                       ? M_player_type->dashPowerRate() * server::back_dash_rate
                       : M_player_type->dashPowerRate();
 
   dir = NormalizeDashAngle( dir ); // [server::min_dash_angle, server::max_dash_angle]
   double dir_rate = max( 0.0,
                          1.0 - server::dash_rate_dec_per_angle * fabs( dir ) );
 
   double effective_dash_power = fabs( M_effort * power * power_rate * dir_rate );
   M_accel += fromPolar( effective_dash_power,
                         body + ( back_dash ? dir + 180 : dir ) );
 
 
 - Description
 
 Players can add the dash angle as the second argument of dash
 command. The dash angle is relative to player's body angle (or reverse
 side angle if dash power is negative value).
 
 The dash angle is restricted within [server::min_dash_angle,
 server::max_dash_angle]. And, the effective dash power is influenced by
 the magnitude of dash angle.
 server::dash_rate_dec_per_rate defines the decrement value per 1
 degree of dash angle. If this value is 0.006 and the dash angle value
 is 90 degree, the effective dash power is multiplied by 0.54(=0.006*90).
 Of course, it is necessary to adjust this parameter through a lot of
 tests.
 
 
 server::back_dash_rate and server::back_dash_stamina_rate are
 introduced to generalize the backward dash model. The current backward
 dash setting is very unrealistic. I hope these parameters helps us to
 modify the backward dash model in future.
 
 
 
 ========================================
   New stamina model
 ========================================
 
 - New parametsr
 
  server::stamina_capacity = 150000
 
 
 - Changed parameters
 
  server::stamina_max = 8000
  server::recover_dec_thr = 0.1
  server::extra_stamina = 50  // extra stamina value for the default player type
  player::extra_stamina_delta_max = 50 // the range of extra stamina becomes [50,100].
 
 
 - New stamina update algorithm
 
 The new member variable, M_stamina_capacity, is added to the Player class
 and initialized by server::stamina_capacity.
 
 
 Player::updateStamina()
 
   double stamina_inc = min( M_recovery * M_player_type->staminaIncMax(),
                             server::stamina_max - M_stamina );
   if ( stamina_inc > M_stamina_capacity )
     stamin_inc = M_stamina_capacity
   M_stamina += stamina_inc;
   M_stamina_capacity -= stamina_inc;
 
 
 - Description
 
 The aim of this change is to encourage teams to consider a long-term
 strategy.
 
 The new parameter server::stamina_capacity defines the maximum
 recovery capacity for each player. If this capacity variable becomes
 zero, player's stamina is never recovered and he can use only his
 extra stamina.
 server::extra_stamina is set to 50 in order to guarantee
 that all players have enough extra stamina. Otherwise, if players
 consume all stamina capacity, they cannot dash anymore and this is
 unrealistic.
 
 
 server::stamina_max is increased to 8000. This change enable players
 to run 100m with their maximum power and encourges teams to introduce
 more dynamic positioning strategy. But, the stamina management will be
 still difficult because players must consider their stamina capacity.
 
 server::recover_dec_thr is decreased to 0.1. This is because
 server::stamina_max is increased and server::effort_dec_thr has not
 been considered in almost all cases.
 
 I prefer to change server::stamina_max and server::recover_dec_thr,
 but it may not be necessary to change them.
 
 
 
 ========================================
  Heterogeneous player settings
 ========================================
 
 I have no concrete proposal yet. But, I think the player's dash
 speed should become slower. In the current settings, the fastest
 player can run 100m in less than 9 seconds. This is very unrealistic.
 Now, I am investigating the proper parameters.
 
 
 In the last year's discussion, someone requested me to introduce the
 heterogeneous goalie. But, I have no strong opinion about this
 issue. So, if someone proposes the concrete and proper idea and it is
 possible to implement, I want to introduce it.
 
 
 
 ========================================
  Backward tackle
 ========================================
 
 - Changed parameter
 
 server::max_back_tackle_power = 0.0
 
 
 - Description
 
 The backward tackle should be forbidden completely.
 
 
 
 ========================================
   Foul
 ========================================
 
 This is also the topic raised in the last year's discussion.
 I have no concrete proposal yet. If someone proposes the concrete and
 proper idea and it is possible to implement, I want to introduce it.
 
 
 
 ========================================
   Protocol version 13
 ========================================
 
 - see message
 
 Since it is too difficult to determine the last ball kicker and to
 avoid the back pass situation, the player's kicking state should be
 observed by player's visual sensor as well as the tackling state.
 
 When players can see another player's team, they can also see if that
 player is kicking via a `k' flag as follows:
 
   `((p "<TEAMNAME>" <UNUM>) <DIST> <DIR> <DISTCHG> <DIRCHG>
                             <BDIR> <HDIR> [<POINTDIR>] [k])'
 
   `((p "<TEAMNAME>") <DIST> <DIR> [<POINTDIR>] [k])'
 
 
 - sense_body message
 
 If my stamina capacity model is accepted, the stamina capacity value
 should be added to sense_body message as follows:
 
   '(stamina <STAMINA> <EFFORT> <CAPACITY>)'
 
 
 
 ========================================
   Log format
 ========================================
 
 If my stamina capacity model is accepted, that value should be added
 to each player data in the game log file.
 
 
 The text log file should include the stoppage time information, in
 order to enable us to analyze the command log exactly.
 
   old:  "1020		  Recv Teamname_1: (turn 100)(turn_neck 10)"
 
   new:  "1020,2		  Recv Teamname_1: (turn 100)(turn_neck 10)"
 
 
 
 ========================================
   Package redesign
 ========================================
 
 I'd like to integrate rcssbase to rcssserver. This is because rcssbase
 causes several maintenance difficulties.  If rcssbase is removed, it
 becomes easier to maintain and distribute the packages and to port the
 simulator to other environments (e.g. Windows).

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