michaelfeil / commonroad_motionplaner_michaelf

Winning 2020 solution for the commonroad.io contest
12 stars 1 forks source link

A motion planner blueprint for Commonroad

Important notes:

Performance:

Property number of scenarios
Total number of scenarios: 2077
Solution found: 1588
Solution found but invalid: 6
Solution not found: 70
Exception occurred: 2
Time out: 407

Visualizaton

For the USA_US101-21_1_T-1 scanario, we extract the relevant part (from start of the ego vehicle to goal) of the reference path. Since the interval of time_steps of arrival is 70-80, it is a good assumption the relevant reference path can be completed in ~75 steps. Given the closest position towards the reference path and time_step at any giiven time of the ego vehicle, an estimate of the average speed needed and the progess of the reference path that should be achieved at this time_step, can be returned. Also distance and orientation towards the reference path help to guide the low level search.

Extracted part of reference_route from start to finish of the USA_US101-21_1_T-1 Scenario:

Image of the USA_US101 Planned Route. Now we "only" need to guide the search along the reference path in time and in space. This how the solution looks in Action.

USA_US101 GIF

(until 18.Jan 2020, 3 out of ~300 users found a solution for this scenario )

Motion Primitives

If you plan to follow the reference path, you might require a denser set of motion primitives to solve some scenarios. There are also effects on changing the duration of the motion primitive on the turning radius, as shown below.

motion primitive with a duration of 0.5 seconds / 5 steps in commonroad Axes in m/0.5s: (avg. branching factor 9.35) motion_primitves_0_5_second.jpg motion primitive with a duration of 1 second / 10 steps in commonroad. Axes in m/1s: (avg. branching factor 23.20) motion_primitves_1_second.jpg

A couple of generated solutions:

USA_US101-2_1_T-1:

USA_Lanker-2_10_T-1:

KS2-SM1-ZAM_Zip-1_16_T-1-2020a

Answers to Infrequently asked questions (IAQ):