新しく追加されたDeepRacerの報酬関数の入力を見てみよう #reInvent
re:Invent2019 ではDeepRacerの 決勝 含め 多くのイベントが開催されます。
やはり注目は DeepRacer Championship Cup Race です。
今までの AWS Summit や Virtual Circuitでの優勝者が集い決勝戦が行われます。
日本からも sola 選手(sola@DNP) 含め DNP(大日本印刷) の方々が出場されています。 皆さんも応援しましょう!
DeepRacer Evo と 新しいレース
re:Invent2019開催前の情報に 2台のカメラ、LIDARセンサー を搭載した DeepRacer Evo が発表されています。
来年の DeepRacer は新しいルールが追加されるみたいで、 現在のDeepRacerマネジメントコンソールの画面も少し変化が見られます。
- Time trial: 従来のタイムアタック
- Object avoidance: 障害物有りのレース
- Head-to-head racing: 他車(BOTカー)混在のレース
といったところでしょうか。
あわせて DeepRacer のドキュメント、報酬関数の入力パラメータ もアップデートされていました。 (2019/12/02現在 英語版のみ)
新しく追加された入力パラメータを見ていきます。
まとめ
Input Parameters of the AWS DeepRacer Reward Function に記載されているパラメータは以下のとおりです。 New! の部分が新規追加されているパラメータです。
New? | 項目 |
---|---|
"all_wheels_on_track": Boolean, | |
"x": float, | |
"y": float, | |
New! | "closest_objects": [int, int], |
"closest_waypoints": [int, int], | |
"distance_from_center": float, | |
New! | "is_crashed": Boolean, |
"is_left_of_center": Boolean, | |
New! | "is_offtrack": Boolean, |
New! | "is_reversed": Boolean, |
New! | "is_terminated": Boolean, |
"heading": float, | |
New! | "objects_distance": [float, ], |
New! | "objects_heading": [float, ], |
New! | "objects_left_of_center": [Boolean, ], |
New! | "objects_location": [(float, float),], |
New! | "objects_speed": [float, ], |
"progress": float, | |
"speed": float, | |
"steering": float, | |
"steps": int, | |
New! | "track_length": float, |
"track_width": float, | |
"waypoints": [(float, float), ] |
詳細
New! パラメータの内容を見ていきましょう。
objects_XXX
まず目につくのが objects_XXX
というパラメータたちです。
objects_location
objects_distance
objects_heading
objects_left_of_center
objects_speed
これら object
は新しいルール 「Object avoidance」、「Head-to-head racing」
における 定点の障害物、もしくは BOT カー です。
Note the object could be the stationary obstacles, moving bot vehicles
それら複数 object
に関する情報がパラメータとして利用できます。
▼ objects_distance
object
と agent
(レーシングカー)との距離のリストです。
[1.0, 2.0, 5.0]
といった値の場合
- 1つめの
object
とagent
との距離は 1.0 - 2つめの
object
とagent
との距離は 2.0 - 3つめの
object
とagent
との距離は 5.0
といった意味になります。
▼ objects_location
object
の位置情報 (x,y)
のリストです。
BOTカーの場合、この値は時間の経過で変動することになります。
▼ objects_heading
座標系の x
軸に対する object
の進行方向(度)のリストです。
従来の入力パラメータに レーシングカーの進行方向を表す heading
がありましたが、
それの object
版です。
BOTカーのためのパラメータです。
▼ objects_speed
object
の速度のリストです。定点の障害物の場合この値は 0
になります。
これも BOTカーのためのパラメータですね。
▼ objects_left_of_center
object
がトラックレーンの左サイド( True
) にいるか、
右サイド( False
) にいるかの真偽値のリストです。
closest_objects
こちらも object
関連の値で、レーシングカーに最も接近している
object
のインデックスを返します。
従来の入力パラメータに closest_waypoints
がありましたが、
それの object
版ですね。
is_crashed
レーシングカーが クラッシュしたら True になります。
A Boolean flag to indicate whether the agent has crashed into another object (True) or not (False) as a termination status.
と記載されています。 object
にぶつかってしまうと クラッシュ判定となるみたいですね。
is_offtrack
レーシングカーが off track 状態になっているかどうかの真偽値です。
all_wheels_on_track
と似たようなパラメータですが、
is_offtrack
は終了状態として使用される旨が書かれています。
A Boolean flag to indicate whether the agent has off track (True) or not (False) as a termination status.
is_reversed
レーシングカーが逆走しているか、していないかの真偽値です。
is_terminated
ある走行が終了したか、していないかの真偽値です。
上で出てきた is_crashed
、 is_offtrack
の値と関連性があるパラメータです。
- When the agent becomes crashed, the episode terminates and, hence, both is_terminated and is_crashed values are True .
- When the agent goes off track, the episode terminates, and, hence, both is_terminated and is_crashed values are set to True.
track_length
トラックの幅 track_witdh
に加えて、
トラックの全長 track_length
が追加されました。
おわりに
ざっと見てみました。
新しい DeepRacer Evo の 光検出/測距(LIDAR)センサー を活用した パラメータが登場した感じでしょうか。
これで報酬関数設計のバリエーションが更に増えました。
object
(障害物・BOTカー) を避けながら速いタイムを出すために
どう工夫できるか・・・考えるのが楽しみですね!