Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
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).


Am Mi., 15. Apr. 2020 um 19:27 Uhr schrieb Bae, Jong In <jbae42@xxxxxxxxxx>:

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?

  4. In the 'SecureFrontGap' and 'secureBackGap' functions, could you please verify what these arguments mean?
    - 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!

From: sumo-user-bounces@xxxxxxxxxxx <sumo-user-bounces@xxxxxxxxxxx> on behalf of Jakob Erdmann <namdre.sumo@xxxxxxxxx>
Sent: Monday, April 13, 2020 3:27 AM
To: Sumo project User discussions <sumo-user@xxxxxxxxxxx>
Subject: Re: [sumo-user] lcAssertive Behavior
1) It really is a simple division. The formula is here:

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.)


Am Sa., 11. Apr. 2020 um 00:32 Uhr schrieb Bae, Jong In <jbae42@xxxxxxxxxx>:

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
To unsubscribe from this list, visit
sumo-user mailing list
To unsubscribe from this list, visit

Back to the top