I modified AMD/docs/2DStadium.ipynb and tempted to simulate some lane change and lateral traverse behaviors. Here is my configuration of vehicles and driver models:
push!(scene,Vehicle(VehicleState(VecSE2(10.0,-DEFAULT_LANE_WIDTH,0.0), roadway, 29.0), VehicleDef(), 1))
push!(scene,Vehicle(VehicleState(VecSE2(20.0,-DEFAULT_LANE_WIDTH,0.0), roadway, 22.0), VehicleDef(), 2))
push!(scene,Vehicle(VehicleState(VecSE2(30.0,-DEFAULT_LANE_WIDTH,0.0), roadway, 27.0), VehicleDef(), 3))
...
models[1] = LatLonSeparableDriver( # produces LatLonAccels ProportionalLaneTracker(), # lateral model IntelligentDriverModel(), # longitudinal model )
models[2] = Tim2DDriver(timestep, mlane = MOBIL(timestep), )
models[3] = Tim2DDriver(timestep, mlane = MOBIL(timestep), )
...
set_desired_speed!(models[1], 10.0)
set_desired_speed!(models[2], 20.0)
set_desired_speed!(models[3], 30.0)
I've studied the parameters of MOBIL, but whatever parameters I input to MOBIL, for an example, politeness=0
, advantage_threshold=0
. Lane change and lateral traverse behaviors just simply did not happen. Every vehicle follow the front one tightly. And I log some outputs of MOBIL, namely accel_M_test
and accel_M_orig
. They are zero.
Is MOBIL working under some circumstances that I haven't know yet? Or, just something wrongs with my input parameters.
Thank you for your time.