Skip to content

Simple placer planner

SimplePlacerPlanner

SimplePlacerPlannerは、ロボットを特定のエリアに配置するためのプランナーです。

概要

このプランナーは、フィールドをいくつかのエリアに分割し、各ロボットを最も適切なエリアに割り当てることを目的としています。エリアの割り当ては、各エリアに存在する敵ロボットの数に基づいて動的に調整されます。

機能

  • エリア分割: フィールドをFW, MF, WG1, WG2などのエリアに分割します。
  • 動的割り当て: 各エリアに存在する敵ロボットの数に基づいて、ロボットをもっとも適切なエリアに割り当てます。
  • 再割り当て: ロボットが目標位置に到達すると、再割り当てのクールダウン期間を経て、再度最適なエリアを探索します。
  • 可視化: 各エリアとロボットの移動ラインを可視化します。

メンバ変数

  • defense_areas: AreaWithInfo構造体のベクター。各エリアの名前、自チームロボット数、敵チームロボット数、エリアのボックス情報を含みます。
  • assignment_map: ロボットIDからエリア名へのマッピングを保持するunordered_map。
  • target_positions: ロボットIDから目標位置へのマッピングを保持するunordered_map。
  • reassignment_cooldown: ロボットIDから再割り当てクールダウンカウンターへのマッピングを保持するunordered_map。
  • position_threshold: 移動が完了したと判断する距離しきい値。
  • cooldown_frames: エリア再割り当ての待機フレーム数。

メソッド

  • calculateRobotCommand: ロボットコマンドを計算し、各ロボットを最適なエリアに移動させるためのコマンドを生成します。
  • getSelectedRobots: ロボットを選択し、各ロボットに役割を割り当てます。

使用方法

SimplePlacerPlannerは、PlannerBaseクラスを継承し、calculateRobotCommandメソッドを実装することで、ロボットの配置を計画します。このプランナーは、ワールドモデルの情報に基づいて、各ロボットを最適なエリアに動的に割り当て、チーム全体の戦略的な配置を支援します。