背景・概要
この記事は,AI Challengeのシミュレーション大会に関連する記事です.この大会は,カーレース環境のシミュレーション上で順位を競うもので,基本的にAutowareを使って車両の制御プログラムを記述します.
この記事では,Autowareのbehavior_path_plannerにプログラム(module)を追加して前方車両を追い越すようなPathを作るといった内容になっています.
目的
本記事の目的は,前の車両をうまく追い越すようなPlanningをすることです.現在のAutowareではavoidance_moduleのような障害物を避けるmoduleは存在しますが,前方車両を積極的に追い越すようにPlanningするようにはなっていない(はず)です.
しかし,レースにおいては前方車両を積極的に追い越して順位を上げなくてはなりません.レースにおける追い越し(Overtake)には,いくつかのルールが存在します.
例えば,
- 繰り返し追い越しが起きないように,進路変更の回数制限
- コーナーへ進入するときには,並走する相手のために1台分以上のスペースを空ける必要がある
- 追い越し禁止区間が存在する場合がある
などです.また,レースなので,相手車両に追い越されないように出来るだけ相手車両の前に出ることも重要です.
ただ,これらすべてのコンセプトを実現するmoduleを作成することは難しいため,基本的な追い越しの機能のみを実装しようと思います.
BehaviorPathPlanner
(以下の説明には誤りがある可能性が高いので,詳しくはDocumentやプログラムを直接参照してください)
上記のような目的を達成するためには,BehaviorPathPlannerのmoduleを作る必要があります.このmoduleでやるべきことのザックリとしたイメージは"ある程度決められたPathを障害物回避や車線変更などの要求に沿うように修正する"といったものです.
続き
