> Is it possible to know when the ego vehicle may choose to overtake a blocking leader, or is there a 50% chance it may do one of the two? The decision to do either is based on the speed difference and the assumed remaining time to complete the lane change. See https://github.com/eclipse/sumo/blob/d281eb25cb633cfb3b226c2e41e8aaa4eb6fee0c/src/microsim/lcmodels/MSLCM_LC2013.cpp#L454-L628
> is it possible to get the vehicles that are being blocked by a specified ego vehicle? Only by retrieving the laneChange state of surrounding vehicles and noting whether they are 'blocked' and whether the ego vehicle is their target lane leader/follower Am So., 24. Apr. 2022 um 17:37 Uhr schrieb Hriday Sanghvi via sumo-user < [email protected]>: > Hello Jakob, thank you again for the explanation. Is it possible to know > when the ego vehicle may choose to overtake a blocking leader, or is there > a 50% chance it may do one of the two? > > Also, I just realized I can use TraCI's openGap() function ( > https://sumo.dlr.de/daily/pydoc/traci._vehicle.html#VehicleDomain-openGap > ) to try and define my custom "cooperate" function as I am not able to > point the cases where setting lcCooperative to 1 would fail to act as a > "cooperate" function. I know that there is a way to get the vehicles that > block a certain ego vehicle for any lateral and longitudinal direction > using getNeighbors(self, vehID, mode) function, but is it possible to get > the vehicles that are *being blocked* by a specified ego vehicle? For > example, ego vehicle "f1" is blocking vehicles "f2" and "f3" from > completing a lane change action into the ego vehicle's lane? > > Thank you. > > Sincerely, > Hriday > > > On Thu, 21 Apr 2022 at 08:03, Jakob Erdmann <[email protected]> wrote: > >> 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 < >> [email protected]>: >> >>> 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 <[email protected]> >>> 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 >>>> <[email protected]>: >>>> >>>>> 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 <[email protected]> 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 >>>>> [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 >
_______________________________________________ sumo-user mailing list [email protected] To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user
