Thank you.
I'll keep working on the calculation part until I get those values.
Also, if the traci function 'traci.vehicle.getSecureGap' is in the latest development version, how can I update my current version to the latest version?
I'm running into errors saying that 'VehicleDomain' object has no attribute 'getSecureGap'.
And I can't find 'getSecureGap' function in the current version of the traci library that I have.
Thank you once again for all your help.
-James Bae
From: sumo-user-bounces@xxxxxxxxxxx <sumo-user-bounces@xxxxxxxxxxx> on behalf of Jakob Erdmann <namdre.sumo@xxxxxxxxx>
Sent: Monday, April 20, 2020 2:27 AM
To: Sumo project User discussions <sumo-user@xxxxxxxxxxx>
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()
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
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
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.
Thank you very much for your help!
-James
Hello,
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.)
regards,
Jakob
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:
- 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?
- Does the tau value play any role in the minimum accepted gap?
- 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?
- 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
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
|