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
