[rc-simjp 543] Re: 2D librcscのボールトラップについて‏

Back to archive index

Hidehisa Akiyama hideh****@aist*****
2008年 12月 10日 (水) 18:43:45 JST


秋山@産総研です.

伊佐野 勝人 wrote:
> ご返信していただきありがとうございます。
> ボールの速度ですが、5m以下では最高速度の3ではなく、2.5とすることで4mのと
> き以外はほぼ100%の確率でパスが成功することを確認して実装しています。
> (4mのときは何故か90%です。)
> なので、ボールの速度については問題ないと思うので、トラップに十分な時間を
> 確保できるようにしてみます。

その設定だと,やはりボール速度が問題だと思います.
2.5で蹴り出すと,ノイズ無しの場合のボールスピードは

 2.5 -> 2.35 -> 2.209 ...

と変化するので,ボールの総移動距離は

 2.5 -> 4.85 -> 7.059 ...

となります.
よって,現在のボール位置から4m離れた位置にいるレシーバに向かって
初速2.5でボールを蹴ると,ボールが蹴られてから2サイクル後にトラップ
することになります.しかし,ボールの移動距離が4.85であるのに対して
プレイヤのキッカブルエリアが約1mなので,ノイズの影響でキッカブルエリア
のすり抜けが比較的高確率で発生することが予想できます.

5mくらいの近距離からのパスを成功させるには,レシーバの現在位置に
きっちりとボールが到達するようにボールの初速を調節した方が良いです.
例えば,4m先へ2サイクル後に到達させるなら,

 4 * ( 1 - 0.94 ) / ( 1 - 0.94^2 ) = 2.06185567

がベストですね.
ちなみに,この計算をする関数はlibrcscのライブラリに入っていて,

#include <rcsc/math_util.h>

 double receiver_dist = 4.0;
 int cycle = 2;
 int first_speed = rcsc::calc_first_term_geom_series( receiver_dist,
                                                      rcsc::ServerParam::i().ballDecay(),
                                                      cycle );


こんな感じで使えます.



>> Date: Wed, 10 Dec 2008 17:27:45 +0900
>> From: hideh****@aist*****
>> To: rctoo****@lists*****
>> CC: rc-oz****@lists*****
>> Subject: [rc-simjp 541] Re: 2D librcscのボールトラップについて‏
>>
>> 秋山@産総研です.
>>
>> 伊佐野 勝人 wrote:
>> > 現在HELIOSベースでKeepawayの実験を行っています。
>> > full_stateを使っているのですが、エージェントのボールトラップミスが起こっ
>> > てしまいます。
>> > 体の向き(黄色)はボールの方向を向いている場合でも、ボールが身体を通り抜
>> > けてしまいます。
>> > ボールトラップにはBody_Intercept()を実行してます。
>> > より確実にボールをトラップするためにはどのようにすればよいでしょうか?
>> > ご存知の方がいらっしゃいましたら、よろしくお願いいたします。
>>
>> fullstateを使っていてもトラップをミスすることはあります.ボールの動きに
>> 乗るノイズが余りに大きいと,どう頑張っても失敗します.
>> ボールトラップのアクションは奥が深いので,十分な時間を確保出来ない限り
>> 手を出さない方が無難です.
>>
>> 今回の場合,ボールがすり抜けてしまうということはトラップしようとした
>> 時点のボールスピードが速すぎるのではないかと思います.例えば,パサー
>> とレシーバが5mくらいしか離れていないのにball_speed_maxの初速でボールを
>> 蹴り出したりしていませんか?
>> Keepawayの実験ならば味方からのパスをトラップする状況しか無いでしょうから,
>> レシーバがトラップしやすいようにパスの出し手がボールスピードを調節する
>> のがもっとも確実でしょう.(というよりも,Keepawayに限らずレシーバの
>> ことを考えたパスを出していないとパスの成功率は上がらない)
>>
>> ただし,パスのスピードを落とすと今度はtaker側にボールを取られやすくなる
>> ので,実験結果がこれまでと相当変わってしまう可能性があります.厳密にパスの
>> 予測計算をすればほぼ問題無くなるはずですが,これもまたきちんとやろうと
> すると
>> それなりに手間がかかるので,短期間でどうにかするのはちょっと難しいかも
>> しれません.

-- 
 Hidehisa Akiyama
 hideh****@aist*****



Rc-oz-simjp メーリングリストの案内
Back to archive index