Basically,
you have this:
getSecureGap = brakeGapEgo - brakeGapLeader
so if you plug in a leaderSpeed of 0 then the formula gives brakeGapLeader
= 0 and thus
getSecureGap = brakeGapEgo
However, the function MSCFModel::brakeGap includes a term of tau * speed.
So if you are interested in the brakeGap without this term,
you have to set tau=0 before calling the function

33m happens to be the brakeGap at 15m/s including tau

print(traci.vehicle.getSecureGap(veh, 15, 0, 4.5)) => 33
print(traci.vehicle.getSecureGap(veh, 20, 0, 4.5)) => 55
traci.vehicle.setTau(veh, 0.0)
print(traci.vehicle.getSecureGap(veh, 20, 0, 4.5)) => 35

Am Di., 21. Apr. 2020 um 00:44 Uhr schrieb Bae, Jong In <[email protected]>:

> Thank you so much for your help.
>
> I am terribly sorry to continue to bother you with this but could you
> please explain how the brakeGap of the ego vehicle came out to be 35m in
> the secureBackGap?
> I was able to get other values that you sent me but I'm getting the
> brakeGap of the ego vehicle as 33m, instead of 35m.
>
> Below are the settings on the vehicles.
>
> *Follower* *Ego* *Leader*
> *minGap* 0 0 2.5
> *Tau* 1 0.1 1
> *Speed* 15 20 15
> *Decel* 4.5 4.5 4.5
>
> I apologize for the inconvenience but this would greatly help.
>
> Thank you once again for your help.
>
> -James Bae
> ------------------------------
> *From:* [email protected] <[email protected]> on
> behalf of Jakob Erdmann <[email protected]>
> *Sent:* Monday, April 20, 2020 2:27 AM
> *To:* Sumo project User discussions <[email protected]>
> *Subject:* Re: [sumo-user] lcAssertive Behavior
>
> Hello,
> default step-length is 1s
> default action-step-length = step-length (i.e. if you only set
> step-length, then the action step length changes automatically unless
> configured differently)
>
> regarding your calculations: I cannot be bothered to wade through all the
> numbers but here are hints/suggestions:
> - follower minGap = 2.5 according to your table but in shows up as 0 in
> your last sum
> - the formula for steps in brakeGapEuler rounds 'steps' to the next lowest
> integer
> - the secureBackGap is 0 because the brakeGap of the ego vehicle (35m) is
> much larger than the brakeGap of the follower (18m)
> - the secureFrontGap is 19m (at default tau=1 it would be 37m)
>
> You can test all these numbers using traci (in the latest development
> version):
>
> import os,sys
> sys.path.append(os.path.join(os.environ['SUMO_HOME'], 'tools'))
> import traci
>
> traci.start(['sumo', '-n', 'net.net.xml', '--no-step-log'])
> veh = 'v0'
> traci.vehicle.add(veh, "")
> print(traci.vehicle.getSecureGap(veh, 15, 20, 4.5))
> print(traci.vehicle.getSecureGap(veh, 20, 15, 4.5))
> traci.vehicle.setTau(veh, 0.1)
> print(traci.vehicle.getSecureGap(veh, 20, 15, 4.5))
>
> # compute brakeGap for vehicle (leader brakeGap is 0 at speed 0)
> traci.vehicle.setTau(veh, 0.0)
> print(traci.vehicle.getSecureGap(veh, 20, 0, 4.45))
> print(traci.vehicle.getSecureGap(veh, 15, 0, 4.45))
>
> traci.close()
>
> Am Mo., 20. Apr. 2020 um 04:11 Uhr schrieb Bae, Jong In <[email protected]
> >:
>
> Jakob,
>
> Based on your helpful comments, I calculated 'Required Gap' using a simple
> scenario. However, when I ran the scenario with 'lcAssertive=2', the lane
> change was still successful when available gap < required gap /2. So it
> seems like I have some errors in my calculations.
>
> I've attached my calculation steps with scenario settings and the
> functions I used. Could you please take a look at it and see where I might
> have made a mistake?
>
> Also, if I didn't make any change on the time-step length or action step
> length, what are the default values of those two?
>
> Thank you so much for your help and your time.
> Have a great day.
>
> -James Bae
> ------------------------------
> *From:* [email protected] <[email protected]> on
> behalf of Jakob Erdmann <[email protected]>
> *Sent:* Wednesday, April 15, 2020 3:02 PM
> *To:* Sumo project User discussions <[email protected]>
> *Subject:* Re: [sumo-user] lcAssertive Behavior
>
> 1) the secureBackGap is computed by calling the carFollowModel of the
> follower vehicle (which is done to ensure traffic safety even though it's
> arguably unrealistic). Due to the high tau value of the follower a huge gap
> is required.
>
> 2) The decel argument for the brakeGap function holds the maximum
> (desired) deceleration rather than the current deceleration. The value
> should never be 0 (or the brake gap would be infinite)
>
> 3) the neighLead and neighFollow values are pairs of MSVehicle* and
> distance. Hence .second is the distance (Note, that minGap has already been
> subtracted)
>
> 4) Its not vehicle IDs but vehicle pointers, otherwise correct. (When
> vehicles have an actionStepLength > stepLength the vNext values include
> some extrapolation though).
>
> regards,
> Jakob
>
> Am Mi., 15. Apr. 2020 um 19:27 Uhr schrieb Bae, Jong In <[email protected]
> >:
>
> Jakob,
>
> Thank you so much for your reply. I have a few follow up questions.. The
> first 2 questions are referring to the attached images.
>
>
>    1. Merging Issues: Attached image (Merging Issues) shows the scenario
>    settings and parameter values of each vehicle. It shows a gap of roughly
>    150m but the subject vehicle fails to merge. I'm having trouble with
>    understanding why 'lcState right' says blocked when the gap between leader
>    and follower is about 150m.
>
>    2. If ACCEL2SPEED and SPEED2DIST are computing the change in speed ans
>    distance per timestep, would Follwer and Leader's ACCEL2SPEED be 0 (since
>    there is no change in speed between timesteps due to their constant speed)
>    and SPEED2DIST be 15 (constant speed at 15m/s)? And how does ACCEL2SPEED of
>    0 work in the brakeGap function shown in the attached image (brake gap
>    code)? This will make speedReduction = 0 and 'steps' undefined due to the
>    denominator of 0.
>
>    3. What do 'neighFollow.second' and 'neighLeadsecond' mean in the link
>    below?
>
>    
> https://github.com/eclipse/sumo/blob/1c5cd080e83c7cad30f96a6c6b70bb4d80478bdb/src/microsim/MSLaneChanger.cpp#L812
>
>    
> https://github.com/eclipse/sumo/blob/1c5cd080e83c7cad30f96a6c6b70bb4d80478bdb/src/microsim/MSLaneChanger.cpp#L781
>
>    4. In the 'SecureFrontGap' and 'secureBackGap' functions, could you
>    please verify what these arguments mean?
>
>    
> https://github.com/eclipse/sumo/blob/1c5cd080e83c7cad30f96a6c6b70bb4d80478bdb/src/microsim/MSLaneChanger.cpp#L798-L799
>
>    
> https://github.com/eclipse/sumo/blob/1c5cd080e83c7cad30f96a6c6b70bb4d80478bdb/src/microsim/MSLaneChanger.cpp#L767-L768
>    - vehicle: subject vehicle ID (vehicle that is merging)
>    - neighLead.first/neighFollow.first – Leader/Follower vehicle ID
>    - vNextFollower – Follower vehicle speed
>    - vNextLeader – Leader vehicle speed
>
>
> Thank you very much for your help!
> -James
>
> ------------------------------
> *From:* [email protected] <[email protected]> on
> behalf of Jakob Erdmann <[email protected]>
> *Sent:* Monday, April 13, 2020 3:27 AM
> *To:* Sumo project User discussions <[email protected]>
> *Subject:* Re: [sumo-user] lcAssertive Behavior
>
> Hello,
> 1) It really is a simple division. The formula is here:
>
> https://github.com/eclipse/sumo/blob/1c5cd080e83c7cad30f96a6c6b70bb4d80478bdb/src/microsim/MSLaneChanger.cpp#L781
>
> https://github.com/eclipse/sumo/blob/1c5cd080e83c7cad30f96a6c6b70bb4d80478bdb/src/microsim/MSLaneChanger.cpp#L812
>
> https://github.com/eclipse/sumo/blob/1c5cd080e83c7cad30f96a6c6b70bb4d80478bdb/src/microsim/lcmodels/MSLCM_LC2013.cpp#L2102-L2104
>
> 2) Yes. It contributes to the getSecureGap function of the carFollowModel.
>
> 3). With these parameters, lane changed most likely did not fail due to
> lack of gap. You can check the lane-change status in sumo-gui to learn more
> about the vehicle state (lcState right, lcState left in the vehicle
> parameter dialog). If you cannot figure it out, send me a sample scenario.
>
> 4). This is to be expected as you are dividing the secureGap by 200 which
> pretty much makes it vanish. The correct formula would be this however:
> requiredGap = secureBackGap + followerMinGap + subjectLength +
> subjectMinGap + secureFrontGap
> (When computing the remaining gap between vehicles the minGap is already
> subtracted. In a sense it acts like a fixed extension of the vehicle
> length.)
>
> regards,
> Jakob
>
>
>
>
>
> Am Sa., 11. Apr. 2020 um 00:32 Uhr schrieb Bae, Jong In <[email protected]
> >:
>
> Hi,
>
> My team is exploring on how 'lcAssertive' influences the gap accepted by
> the vehicle attempting to merge.
> The test scenario is a 2-lane road where two vehicles are traveling (at
> 15m/s) on the right lane and the merging vehicle is traveling (at a higher
> speed) on the left lane.
> Our experiments aim to find the minimum gap accepted at each lcAssertive
> value.
>
> My questions are as follows:
>
>
>    1. The SUMO vehicle definitions state that "the required gap is
>    divided by the value of lcAssertive". However based on our experiment
>    results, it seemed like the accepted gap is adjusted by some sort of a
>    function of lcAssertive instead of a simple division. How does lcAssertive
>    influence the accepted gap (required gap)? Is the function (or equation)
>    available somewhere in the source code?
>    2. Does the tau value play any role in the minimum accepted gap?
>    3. We observed lane change failure with the default value of
>    lcAssertive (lcAssertive="1") or lcAssertive = 2 even when the available
>    gap was very large. All the other values were kept as default as well
>    (minGap = 2.5, Tau = 1). The gap between the two vehicles in the target
>    lane was 300m. Is this a reasonable result?
>    4. Our results show that with MinGap = 0 and lcAssertive as high as
>    200~300, the minimum accepted gap was reduced to 0.1m + vehicle length. If
>    the required gap is determined by secureBackGap + subjectLength +
>    subjectMinGap + secureFrontGap, does SUMO let us ignore the secureBackGap
>    and secureFrontGap when MinGap is set as 0?
>
> Thank you,
>
> -James Bae
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to