• [rcssserver] モニタプロトコルv3 & ログフォーマットv4

叩き台を考えてみる. 基本的に,ログフォーマットv3に含まれる情報をテキスト(S式)で表現することを想定.

ディスク効率を優先すればもっと情報を省くことは可能だが,拡張性を残しておくことも必要なので,多少冗長な表現にしておく. 圧縮すれば原理的には既存のログとほぼ同じ容量になるはずだし.

*ヘッダ
既存のヘッダフォーマットをそのまま使用.
  ULG4

*パラメータ
通常のクライアントと同じ
  (server_param ...)
  (player_param ...)
  (player_type ...)

*プレイモード
  (referee <PlayModeString>)
   or (playmode <PlayModeString>)

*チーム情報
  (team <LeftTeamName> <RightTeamName>
             <LeftScore> <RightScore>
             [ <LeftPenScore> <RightPenScore>])

*各サイクルの情報
  (show <Time> <Ball> <Players>)

    <Ball> : (b <Pos> <Vel>)

    <Players> : <Player> <Players>

    <Player> : ((<Side> <Unum>)
                        (type <Type>)
                        (mode <Mode>)
                        (pos <Pos> <Vel> <Body> <Head>)
                        (view <ViewWidth> <ViewQuality>)
                        (stamina <Stamina> <Effort> <Recovery>)
                        [ (point <PointDist> <PointDir>)]
                        (command <Command>))

    <Pos> : <Real> <Real>

    <Vel> : <Real> <Real>

    <Side> : l | r

    <Unum> : <Integer>   // [1,11]

    <Type> : <Integer>   // [0,player_types-1]

    <Mode> : <Integer>   // 32bit integer

    <Body> : <Real>      // degree

    <Head> : <Real>      // degree

    <ViewWidth> : <Real>   // degree

    <ViewQuality> : high | low
 
    <Command> : <Integer> // 32bit integer

各コマンドの実行回数を含めるべきか?
  (count <KickCount> <DashCount> <TurnCount> <SayCount>
  <TurnNeckCount> <CatchCount> <MoveCount> <ChangeViewCount>
  <TackleCount> <PointtoCount> <AttentiontoCount>)

* その他
  (msg <Message>)

      <Message> : <String>

  (draw <DrawObject>)

      <DrawObject> : <Point> | <Circle> | <Line>

      <Point> : (pt <Real> <Real> <Color>)

      <Circle> : (circle <Real> <Real> <Real> <Color>)

      <Line> : (line <Real> <Real> <Real> <Real> <Color>)
  • [rcssserver] バックパスとキャッチ違反をFIFAルールに準拠 (akiyama) 16:44:27

キーパにバックパスした場合に間接フリーキックを取るようにして,キャッチした場所でフリーキックが行われるようにした. すなわち,ゴールまで至近距離の位置からでもフリーキックが行われるようになった. そのような場合,単純に9.15mの円の範囲で守備側プレイヤを弾くわけにはいかないので,守備側プレイヤがゴールマウス内のゴールライン上に限って(実装上はピッチの外に)存在出来るようにした.

キャッチ違反は直接フリーキックになるようにした.

これまで,バックパスとキャッチ違反の扱いが逆で,しかも間接フリーキックが正しい位置で行われていなかったので,それらを修正したことになる.しかし,正規のルールとして許可されたわけでは無いので,まだコミットはしない.


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