Skip to content

2023-05-03

インプレイ判定のチェック(ルール5.4)

  • 以下のコマンド送信後にボールが少なくとも0.05m動く
    • キックオフ
    • フリーキック
    • ペナルティーキック
  • キックオフから10秒経過
  • FORCE_STARTコマンド送信後

開発環境整備

  • pre-commit導入
  • include文の呼び分け
  • boostの警告文抑制

GUIへの現状の表示

  • play_switcher.launchへのGUI追加

動作がおかしい?

ログ

[crane_play_switcher]: last 4, THEIR_KICKOFF_PREPARATION : 2.025060
[crane_play_switcher]: last 4, THEIR_KICKOFF_PREPARATION : 2.049855
[crane_play_switcher]: コマンド変化!
[crane_play_switcher]: THEIR_KICKOFF_START
[crane_play_switcher]: inplay cmd : 22
[crane_play_switcher]: CMD : 2
[crane_play_switcher]: last 2, THEIR_KICKOFF_START : 0.000022
[crane_play_switcher]: コマンド変化!
[crane_play_switcher]:
[crane_play_switcher]: inplay cmd : 0
[crane_play_switcher]: CMD : 2
[crane_play_switcher]: last 2,  : 0.000019
[crane_play_switcher]: last 2,  : 0.024619

COMMAND_PREPARE_KICKOFF_YELLOWが来て2秒後に NORMAL_STARTが来ている
その後,

参考情報

  • COMMAND_NORMAL_START = 2
  • COMMAND_PREPARE_KICKOFF_YELLOW = 4
  • inplay/halt = 0
  • inplay/their_kickoff_start = 22

RAWコマンドの移り変わりとその解釈

  1. 2:NORMAL_START,前回のコマンドが残っている?
  2. 0:HALT,試合開始
  3. 1:STOP,RESUMEを押した
  4. 4:PREPARE_KICKOFF_YELLOW,KICKOFFした
  5. 2:NORMAL_START, 2秒経って勝手に始まる
  6. 2:NORMAL_START, 10秒たってINPLAYに入った

結局直った気がする

⇒色々あって結局デバッグしやすいLOGを整えたら直った気がする こんな感じ

[crane_play_switcher]: ---
[crane_play_switcher]: RAW_CMD      : COMMAND_STOP
[crane_play_switcher]: INPLAY_CMD   : STOP
[crane_play_switcher]: REASON       : RAWコマンド変化:コマンド転送
[crane_play_switcher]: PREV_CMD_TIME: 12.505770
[crane_play_switcher]: ---
[crane_play_switcher]: RAW_CMD      : COMMAND_PREPARE_KICKOFF_YELLOW
[crane_play_switcher]: INPLAY_CMD   : THEIR_KICKOFF_PREPARATION
[crane_play_switcher]: REASON       : RAWコマンド変化:コマンド転送
[crane_play_switcher]: PREV_CMD_TIME: 15.174960
[crane_play_switcher]: ---
[crane_play_switcher]: RAW_CMD      : COMMAND_NORMAL_START
[crane_play_switcher]: INPLAY_CMD   :
[crane_play_switcher]: REASON       : RAWコマンド変化&NORMAL_START:KICKOFF/PENALTYはPREPARATIONからSTARTに移行
[crane_play_switcher]: PREV_CMD_TIME: 19.425025
[crane_play_switcher]: ---
[crane_play_switcher]: RAW_CMD      : COMMAND_NORMAL_START
[crane_play_switcher]: INPLAY_CMD   : INPLAY
[crane_play_switcher]: REASON       : INPLAY判定:キックオフから10秒経過
[crane_play_switcher]: PREV_CMD_TIME: 10.024822

コマンド更新通知

PlaySituation.msgcommand_updatedを追加した.

INPLAYのコマンド更新時にcommand_updatedtrueにする処理を実装した

次回

PlaySituationを受け取って行う処理の実装

  • session_controllerの実装
    • 主に,コマンドを受け取ってセッションを組む部分の実装(ここも泥臭そう...)
  • session_controllerで使う上で足りないプランナのリストアップ