lcCooperative=1 (or rather lcCooperativeSpeed=1 which takes lcCooperative as it's default) is mainly responsible for slowing down to open gaps: - ego slows down if it is the follower - the blocker slows down if it is the follower Either slowing down is hindered if the vehicle to slow down has lcCooperativeSpeed < 1 Note, that sometimes, the ego vehicle may elect to overtake a blocking leader rather than to slow down and merge behind.
Am Do., 21. Apr. 2022 um 00:08 Uhr schrieb Hriday Sanghvi via sumo-user < sumo-user@eclipse.org>: > Hello Jakob, > > Thank you for your reply. > > Regarding 2., Is this the only "speed adjustment" that setting > lcCooperative to 1 for a particular vehicle would do - it would change the > speed of the blocking vehicle(s) such that the condition for the secure gap > between leader and follower holds true? Or it doesn't work that way because > of the referenced bug previously - a bug where "the ego may ignore advice > that it gives to itself (i.e. slow down to merge behind the leader) because > it currently does not distinguish who is helped by any given speed advice"? > > Sincerely, > Hriday > > On Tue, 19 Apr 2022 at 19:38, Jakob Erdmann <namdre.s...@gmail.com> wrote: > >> 1. >> a) wantsAndCouldChangeLane always returns false for direction=0 at the >> moment >> b) Yes. the lane change state is only stored for "legal" targets >> >> 2. for any vehicle that will have lateral overlap with ego (during or at >> the end of the maneuver) the distance between the follower and the leader >> must be at least as big as the value of >> traci.vehicle.getSecureGap(followerID, followerSpeed, leaderSpeed, >> leaderMaxDecel, leaderID) >> >> regards, >> Jakob >> >> Am Di., 19. Apr. 2022 um 00:10 Uhr schrieb Hriday Sanghvi via sumo-user < >> sumo-user@eclipse.org>: >> >>> Hello, if this question needs more information / screenshots - I could >>> try and modify it if it's not clear. >>> >>> Thank you. >>> >>> Sincerely, >>> Hriday >>> >>> >>> On Wed, 13 Apr 2022 at 19:58, Hriday Sanghvi <sangh...@tcd.ie> wrote: >>> >>>> Hello, >>>> >>>> Lane change mode: 1621 (default) >>>> Lane change model: SL2015 >>>> Max. duration given for a vehicle to perform a lane change: 10 s >>>> (arbitrary) >>>> >>>> 1. I am trying to discourage lane changes enforced by TraCI that are >>>> not valid, i.e., >>>> >>>> A vehicle trying to move to the right or the left from the rightmost or >>>> leftmost lane in the network respectively, or a vehicle that cannot perform >>>> a certain lane change operation within the given time due to other vehicles >>>> blocking it. >>>> >>>> For a lane change operation initiated on a vehicle by >>>> >>>> traci.vehicle.*changeLaneRelative*(vehID=*veh_id*, indexOffset=*dr*, >>>>> duration=*lc_max_duration*) >>>> >>>> >>>> The following code should tell me if the lane change will be a success: >>>> >>>> *lcs* = traci.vehicle.*getLaneChangeState*(vehID=*veh_id*, direction= >>>>> *dr*)[1] # index 1 for TraCI >>>>> *lc_success* = traci.vehicle.*wantsAndCouldChangeLane*(vehID=*veh_id*, >>>>> direction=*dr*, state=*lcs*) >>>> >>>> >>>> However, in the particular case where direction=0 (stay in the same >>>> lane), it still returns false. This made sense in a situation where the >>>> vehicle was still in the middle of a previous lane change from another lane >>>> (where it was between two lanes, and hence cannot "stay" in the same lane). >>>> >>>> a. But it also happened to a vehicle that had departed from the >>>> rightmost lane and chose to "stay". I could not understand it even with the >>>> help of the console output's 'pretty' version of the Lane change state for >>>> the TraCI command as shown: >>>> >>>> veh id: f.2 (currently on lane 0) >>>>> lc success: False >>>>> lcs pretty: ['stay', 'TraCI', 'sublane'] >>>>> Direction: 0 >>>> >>>> >>>> b. On a side note, the pretty version of the lane change state seems to >>>> be empty when it encounters a situation where the TraCI command tries to >>>> move the vehicle to a lane that doesn't exist, i.e. "move right" on the >>>> rightmost lane - just looking for confirmation? >>>> >>>> veh id: f.0 (currently on lane 0) >>>>> lc success: False >>>>> lcs pretty: [] >>>>> Direction: -1 >>>> >>>> >>>> 2. I am trying to program an action that translates to "cooperate" with >>>> another vehicle. For this, I need to know what needs to be done in a >>>> situation where a leader/follower vehicle on the same or a different lane >>>> is blocking another vehicle from changing lanes. So if I can figure out the >>>> minimum changes that need to be made to resolve this situation - for >>>> example, the lateral distance between the ego vehicle and blocking vehicle >>>> has to be at least *X *m and the longitudinal distance between ego and >>>> blocking vehicle has to be at least *Y *m or maybe the relative speed >>>> difference has to be at least *S *m/s, then the lane change can go >>>> ahead. >>>> >>>> As I understand it, my question would be answered from this: >>>> >>>> https://github.com/eclipse/sumo/blob/f71860fb1b15868e0be63338bfcbd3fc05b08451/src/microsim/lcmodels/MSLCM_SL2015.cpp#L2190 >>>> >>>> but there are many components like the TraCI constant tc.LC_BLOCKED and >>>> how/when it is set that I don't fully understand. >>>> >>>> Please advise. Thank you. >>>> >>>> Sincerely, >>>> Hriday >>>> >>> _______________________________________________ >>> sumo-user mailing list >>> sumo-user@eclipse.org >>> To unsubscribe from this list, visit >>> https://www.eclipse.org/mailman/listinfo/sumo-user >>> >> _______________________________________________ >> sumo-user mailing list >> sumo-user@eclipse.org >> To unsubscribe from this list, visit >> https://www.eclipse.org/mailman/listinfo/sumo-user >> > _______________________________________________ > sumo-user mailing list > sumo-user@eclipse.org > To unsubscribe from this list, visit > https://www.eclipse.org/mailman/listinfo/sumo-user >
_______________________________________________ sumo-user mailing list sumo-user@eclipse.org To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user