• [rcssmonitor] std::min の引数の型を修正 (akiyama) 02:32:56

std::strlenの返り値と16uをstd::minの引数に与えていたら,Macのgcc-4.0.1でコンパイルエラー.gcc-4.0.1では,size_tとunsigned intは別物だったのか.仕方ないので、size_t( 16 ) として回避.

  • [rcssserver] キャッチモデル再考 (akiyama) 19:57:48

反論メールを書いてたら一日が潰れた…

反論メールにも書いたが,広いキャッチエリアがキーパーのジャンプを想定してるんだったらキャッチが100%成功するのはおかしいだろうよというわけで,キャッチモデルについてはちょっと考え直してみることにした.

とりあえず,現在の案はこんな感じ. ボールが一定距離以上離れていた場合は,確率的に弾くようになっている. 弾く確率と弾いた後のボールの速度についてはまだまだ調整が必要だが,方向性としてはそんなに間違ってないと思う.

 server::catchable_area_l = 2.0
 server::reliable_catchable_area_l = 1.2
 server::catchable_area_w = 1.0
 server::catch_ban_cycle = 10

 catch_area = catchable_area_l x catchable_area_w
 reliable_catch_area = reliable_catchable_area_l x catchable_area_w

 if ( catch_area does not contain the ball )
   return

 fail_prob = 0.0
 if ( reliable_catch_area does not contain the ball )
 {
     reliable_dist = sqrt( (catchable_area_l*0.5)^2 + catchable_area_w^2 )
     catchable_dist = sqrt( catchable_area_l^2 + catchable_area_w^2 )
     dist_rate = 0.5
               + 0.5*(ball_dist - reliable_dist)/(catchable_dist - reliable_dist)
     speed_rate = ball_speed / (ball_speed_max*ball_decay)
     fail_prob = bound( 0, dist_rate * speed_rate, 1 )
 }

 if ( fail_prob == 0.0 || random( 0, 1 ) > fail_prob )
 {
     same as the current catch model procedure
 }
 else
 {
     new_ball_vel = current_ball_vel * random( 0.1, 0.9 );
     new_ball_vel.rotate( random( -PI/2, PI/2 ) );

     ball.setAccel( new_ball_vel - current_ball_vel );
 }

 goalie_catch_ban = catch_ban_cycle
  • [librcsc][agent2d][helios] 新タックルモデル対応 (akiyama) 21:53:40

トーマス提案の方向を引数に取る新タックルモデルをテストするために,対応. まだ確定では無いのでコミットはしないが,この新モデルは採用されるだろう. かなり妥当だし,何たって,僕が納得してるし.

  • [rcssmonitor] スコア管理 (akiyama) 23:11:34

std::mapで以下のようにする.

std::map< int, Score, std::greater< int > >

キーはサイクル,値はスコア情報をまとめた構造体. 比較演算子がstd::greaterになっているのは,lower_boundで直前の更新情報を適切に検索できるようにするため.


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