> have pasted the TraCI code in the message body: When running your code with the latest dev version (as well as 91fbec4ce), I do not observe any lane changes (--lanechange-output stays empty).
> How far ahead into the future does it make these adaptations? The time horizon for deciding on a necessary change is roughly 10 * lcStrategic seconds but the speed is computed anew in each step. Am Do., 19. Mai 2022 um 13:43 Uhr schrieb Hriday Sanghvi via sumo-user < [email protected]>: > Hello, > > I have pasted the TraCI code in the message body: > > import os > import sys > > if 'SUMO_HOME' in os.environ: > sys.path.append(os.path.join(os.environ['SUMO_HOME'], 'tools')) > from traci.exceptions import TraCIException > import traci.constants as tc > import libsumo as traci > else: > sys.exit("please declare environment variable 'SUMO_HOME'") > > sumo_cfg = './scenario_sublane/sumo.cfg.xml' > #.format(pathlib.Path(__file__).parent.absolute()) > sumo_parameters = ['sumo', '-c', sumo_cfg] > > # traci.start(sumo_parameters) # without GUI > > traci.init(9999) # with GUI > > END = 86400.0 > NUMBER_OF_VEH = 100 > LC_MODE = 1557 # everything except drive right changes; 512 to disable ALL > > GHOST_POS = 750.0 > BLOCK_LENGTH = 250.0 > BLOCK_LANE = 0 > > type_id = 'ghost' > traci.vehicletype.copy('DEFAULT_VEHTYPE', type_id) > > traci.vehicle.add(vehID='ghost1', routeID='r0', typeID='ghost', depart=0, > departLane=BLOCK_LANE, departPos=GHOST_POS, departSpeed='random', > arrivalLane='current', arrivalPos=GHOST_POS) > > traci.vehicle.setColor(typeID='ghost1',color=(255,0,0)) > traci.vehicle.setLength(typeID='ghost1',length=BLOCK_LENGTH) > traci.vehicle.setStop(vehID='ghost1', edgeID='1f2', pos=GHOST_POS, > laneIndex=BLOCK_LANE, duration=10, until=END) > > STEP = 0 > arrived = 0 > while arrived < NUMBER_OF_VEH: > > print('################ SIM TIME: {} ##################'.format(traci > .simulation.getTime())) > print('################ SIM STEP COUNT: {} ################'.format(STEP)) > print('\n') > > for vh in traci.vehicle.getIDList(): > if 'ghost' not in vh: > traci.vehicle.setLaneChangeMode(vh, LC_MODE) > else: > continue > > STEP+=1 > > arrived += traci.simulation.getArrivedNumber() > traci.simulationStep() > traci.close() > > print('ARRIVED: {}'.format(arrived)) > > >>The ego vehicle computes speed adaptations for itself and the > surrounding vehicles that would help in completing the lane change in > future steps. > Optimal adaptation means that all vehicles use these exact speeds (whereas > the adaptations are reduced at lower levels of cooperation). > > How far ahead into the future does it make these adaptations? (in steps, I > presume?) > > Thank you. > > Sincerely, > Hriday > > > On Thu, 19 May 2022 at 11:57, Jakob Erdmann <[email protected]> wrote: > >> I'm assuming your scenario uses traci to create the blockage but the >> relevant code is missing from your zip archive. Possibly there is some sort >> of filtering going on so you might want to try renaming your python files >> to .txt. >> >> >> lcCooperative="0" prevents cooperative changing if there is any >> inconvenience. >> > What would be considered an 'inconvenient' speed adaptation for a lane >> change when setting lcCooperative to 0 instead of -1? >> >> if the vehicle expects to travel slower on the target lane, this is an >> inconvenience. >> >> >> if you set lcCooperative to 1 then "optimal" speed adaptations will >> take place >> > What would be considered an 'optimal' speed adaptation? >> >> The ego vehicle computes speed adaptations for itself and the surrounding >> vehicles that would help in completing the lane change in future steps. >> Optimal adaptation means that all vehicles use these exact speeds >> (whereas the adaptations are reduced at lower levels of cooperation). >> >> Am Mi., 18. Mai 2022 um 10:07 Uhr schrieb Hriday Sanghvi via sumo-user < >> [email protected]>: >> >>> Hello, >>> >>> >> lcCooperative="0" prevents cooperative changing if there is any >>> inconvenience. >>> >>> What would be considered an 'inconvenient' speed adaptation for a lane >>> change when setting lcCooperative to 0 instead of -1? >>> >>> >> if you set lcCooperative to 1 then "optimal" speed adaptations will >>> take place >>> >>> What would be considered an 'optimal' speed adaptation? >>> >>> Thank you. >>> >>> Sincerely, >>> Hriday >>> >>> >>> On Wed, 18 May 2022 at 08:13, Jakob Erdmann <[email protected]> >>> wrote: >>> >>>> In a simulation where you do not send any traci commands, the behavior >>>> should be the same in both cases (and this was the situation I had in mind >>>> for my previous explanation). >>>> >>>> If you are requesting lane changes, than vehicles will still perform >>>> some amount of speed adaptation to resolve blockings and this adaptation is >>>> subject to >>>> lcCooperativeSpeed (which defaults to the value of lcCooperative). >>>> >>>> - if you set lcCooperative to 0 (or -1) then no speed adaptations will >>>> ever take place (this holds for all sumo version) >>>> - if you set lcCooperative to 1 then "optimal" speed adaptations will >>>> take place >>>> >>>> The difference in speed adaption should be fully responsible for the >>>> changes you are seeing. >>>> >>>> Am Mi., 18. Mai 2022 um 08:43 Uhr schrieb Hriday Sanghvi via sumo-user < >>>> [email protected]>: >>>> >>>>> >>>>> Hello again, >>>>> >>>>> What I have observed is that even after setting the laneChangeMode to >>>>> 512, setting the parameters lcStrategic, lcSpeedGain, lcCooperative to >>>>> different values have different effects. That is what is being captured by >>>>> the table: >>>>> >>>>> +-----------------+---------+------+ >>>>> | *lc_params* | *lc_mode* | *Time* | >>>>> +-----------------+---------+------+ >>>>> | Set to 1 | 512 | *241* | >>>>> +-----------------+---------+------+ >>>>> | Unset (default) | 512 | *241* | >>>>> +-----------------+---------+------+ >>>>> | Set to 0 | 512 | 172 | >>>>> +-----------------+---------+------+ >>>>> >>>>> As you can see, keeping the lane change mode fixed in all cases (at >>>>> 512), if I either set the parameters to 1 or let them inherit the default >>>>> value (of 1), the time taken for the simulation is 241 steps. However, >>>>> with >>>>> the parameters set to 0, the time taken for the same simulation with the >>>>> same lane change mode is 172 steps. This is the part I don't understand. >>>>> Please advise. >>>>> >>>>> Thank you. >>>>> >>>>> Sincerely, >>>>> Hriday >>>>> >>>>> On Wed, 18 May 2022 at 07:21, Jakob Erdmann <[email protected]> >>>>> wrote: >>>>> >>>>>> >>>>>>> So what I now understand is: >>>>>>> >>>>>>> *Only* in the development version, if I set lane change mode to 512 >>>>>>> (it disables everything else apart from safety), now it will behave as >>>>>>> expected - that is, no strategic, speed gain or cooperative changes. >>>>>>> But if I use an older version before the changes have been >>>>>>> implemented, I should also set lcStrategic to -1 and lcCooperative to >>>>>>> -1. >>>>>>> >>>>>>> Please confirm. Thank you. >>>>>>> >>>>>>> >>>>>> >>>>>> a) In all sumo versions, setting laneChangeMode to 0 or 512 disables >>>>>> all autonomous changing. In this mode, cars only change if you tell them >>>>>> to >>>>>> change (i.e. with traci.vehicle.changeLane) >>>>>> >>>>>> Only in the development version: >>>>>> b) If you do not set laneChangeMode but instead set lcStrategic=-1, >>>>>> lcSpeedGain=0 and lcCooperative=-1 lcKeepRight=0 , you will achieve the >>>>>> same effect: cars only change if you tell them to change (i.e. with >>>>>> traci.vehicle.changeLane) >>>>>> >>>>>> Thus, in the development version combining both settings (a + b) has >>>>>> no additional effect over only doing a) or b) alone. >>>>>> >>>>>> in older versions, b) still permits some autonomous changes to happen >>>>>> so if you want to disable all changes, you have to use a) >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> Sincerely, >>>>>>> Hriday >>>>>>> >>>>>>> On Tue, 17 May 2022 at 08:34, Jakob Erdmann <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> No. >>>>>>>> To disable strategic laneChanging completely, you can either >>>>>>>> - set laneChangeMode >>>>>>>> - or set lcStrategic="-1" >>>>>>>> >>>>>>>> because only setting lcStrategic="0" still allows changing at the >>>>>>>> end of the lane. >>>>>>>> >>>>>>>> b) >>>>>>>> lcSpeedGain="0" still is equivalent to lcSpeedGain="0.001" in >>>>>>>> version 1.13.0 but disables changing for speedGain completely in the >>>>>>>> development version (https://github.com/eclipse/sumo/issues/10709) >>>>>>>> >>>>>>>> c) >>>>>>>> lcCooperative="0" prevents cooperative changing if there is any >>>>>>>> inconvenience. However, if you set lcSpeedGain="0" lcCooperative="0" a >>>>>>>> vehicle might still perform a cooperative change if the target lane >>>>>>>> affords >>>>>>>> higher speed. To achieve the same affect as >>>>>>>> disabled-via-lane-change-mode >>>>>>>> you can set lcCooperative="-1" (again, this requires the dev version) >>>>>>>> >>>>>>>> regards, >>>>>>>> Jakob >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Am Do., 12. Mai 2022 um 08:49 Uhr schrieb Hriday Sanghvi via >>>>>>>> sumo-user <[email protected]>: >>>>>>>> >>>>>>>>> Hello Jakob, >>>>>>>>> >>>>>>>>> Thank you for the update. So if I understand correctly: to >>>>>>>>> completely disable strategic lane changing by SUMO, I have to >>>>>>>>> 1. set the laneChangeMode bits 0 and 1 (for strategic lane >>>>>>>>> changes) to 0 >>>>>>>>> AND also >>>>>>>>> 2. set lcStrategic to -1 in my routes files for the vType >>>>>>>>> Because only setting relevant laneChangeMode bits and then setting >>>>>>>>> lcStrategic=1 may still allow strategic lane changes at the end of >>>>>>>>> the lane? >>>>>>>>> >>>>>>>>> Is this also true for lcSpeedGain and lcCooperative? Since there >>>>>>>>> are also changes in behaviour when I isolate lcCooperative >>>>>>>>> parameter (keeping lcStrategic and lcSpeedGain fixed at 1), i.e., >>>>>>>>> a. when I set laneChangeMode bits 2 and 3 to 0, and set >>>>>>>>> lcCooperative to 1, >>>>>>>>> vs. >>>>>>>>> b. when I set laneChangeMode bits 2 and 3 to 0, and set >>>>>>>>> lcCooperative to 0, >>>>>>>>> >>>>>>>>> I would have expected a. and b. to give me the same behaviour/time >>>>>>>>> to complete the simulation, since I believe laneChangeMode completely >>>>>>>>> disabled certain types of lane changes - but it seems that the >>>>>>>>> lcParams >>>>>>>>> still have some effect. Please advise. >>>>>>>>> >>>>>>>>> Thank you. >>>>>>>>> >>>>>>>>> Sincerely, >>>>>>>>> Hriday >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, 12 May 2022 at 06:36, Jakob Erdmann <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> The key difference is that the laneChangeMode completely disables >>>>>>>>>> strategic lane changing whereas lcStrategic="0" only sets the >>>>>>>>>> strategic >>>>>>>>>> lookahead distance to the minimum possible value. Vehicles will still >>>>>>>>>> perform a strategic laneChange when reaching the very end of their >>>>>>>>>> lane. >>>>>>>>>> You can set lcStrategic to a negative value to disable strategic >>>>>>>>>> lane changing completely but this was (until now) undocumented. >>>>>>>>>> >>>>>>>>>> regards, >>>>>>>>>> Jakob >>>>>>>>>> >>>>>>>>>> Am Di., 10. Mai 2022 um 19:11 Uhr schrieb Hriday Sanghvi via >>>>>>>>>> sumo-user <[email protected]>: >>>>>>>>>> >>>>>>>>>>> Hello again, >>>>>>>>>>> >>>>>>>>>>> I use *lc_params* to refer to the 3 parameters lcStrategic, >>>>>>>>>>> lcCooperative, and lcSpeedGain in the previous email, and >>>>>>>>>>> *lc_mode *to refer to the lane changing mode. To clarify, here >>>>>>>>>>> are some experimental results for each case for 100 vehicles on a >>>>>>>>>>> 1000 m >>>>>>>>>>> road with 2 free lanes (NO blockages): >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> | *lc_params* | *lc_mode* | *Time* | >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> | Set to 1 | 512 | *241* | >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> | Unset (default) | 512 | *241* | >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> | Set to 0 | 512 | 172 | >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> | Set to 1 | 1621 | *204* | >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> | Unset (default) | 1621 | *204* | >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> | Set to 0 | 1621 | 218 | >>>>>>>>>>> +-----------------+---------+------+ >>>>>>>>>>> >>>>>>>>>>> As seen from the table, Regardless of whether the lc_params are >>>>>>>>>>> set to their default value (1) explicitly, or if they are unset >>>>>>>>>>> (default >>>>>>>>>>> value is used), the result (time in steps) of the simulation stays >>>>>>>>>>> the same >>>>>>>>>>> in both cases of the lc_mode (512 and 1621). This is in line with my >>>>>>>>>>> understanding. However, when the lc_mode is set to 512, lc_params >>>>>>>>>>> should in >>>>>>>>>>> fact make no difference since the behaviour controlled by these >>>>>>>>>>> lc_params >>>>>>>>>>> were already deactivated - namely, do no strategic changes, do no >>>>>>>>>>> cooperative changes and do no speed gain changes. >>>>>>>>>>> >>>>>>>>>>> So what I gather is that there is some form of hierarchy - Which >>>>>>>>>>> parameter do I set to overwrite the other no matter what? Or why >>>>>>>>>>> would >>>>>>>>>>> setting lc_params to 0 in the case of lc_mode = 512 make a >>>>>>>>>>> difference? >>>>>>>>>>> >>>>>>>>>>> Thank you. >>>>>>>>>>> >>>>>>>>>>> Sincerely, >>>>>>>>>>> Hriday >>>>>>>>>>> >>>>>>>>>>> On Tue, 10 May 2022 at 14:01, Hriday Sanghvi <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hello, >>>>>>>>>>>> >>>>>>>>>>>> *My belief*: The lane change mode 512 is supposed to disable >>>>>>>>>>>> all autonomous lane-changing except for safety-gap enforcement and >>>>>>>>>>>> collision avoidance. So setting lcSpeedGain=0 or lcStrategic=0 >>>>>>>>>>>> should be >>>>>>>>>>>> pointless, since that is the same effect achieved by setting lane >>>>>>>>>>>> change >>>>>>>>>>>> mode to 512, since bits 0 through 6 are all set to 0 : do no >>>>>>>>>>>> strategic >>>>>>>>>>>> changes, do no cooperative changes, do no speed gain changes, do >>>>>>>>>>>> no right >>>>>>>>>>>> drive changes; >>>>>>>>>>>> >>>>>>>>>>>> *Discovery*: When I set *lcStrategic=0, lcCooperative=0, and >>>>>>>>>>>> lcSpeedGain=0* on my vType anyway as such: >>>>>>>>>>>> <vType lcStrategic="0" lcCooperative="0" lcSpeedGain="0" >>>>>>>>>>>> carFollowModel="Krauss" color="0,1,0" id="veh" latAlignment= >>>>>>>>>>>> "center" lcKeepRight="0" lcLookaheadLeft="1" lcOvertakeRight= >>>>>>>>>>>> "1" lcSpeedGainRight="1" length="5" sigma="0" speedDev="0" >>>>>>>>>>>> speedFactor="1.0" /> >>>>>>>>>>>> The behaviour seems to have changed drastically. >>>>>>>>>>>> >>>>>>>>>>>> With an LC mode of 512, >>>>>>>>>>>> *1. Without setting the 3 lcParams*, it takes 100 vehicles *477s >>>>>>>>>>>> *to reach the end of a 1000m road with 2 lanes, with a small >>>>>>>>>>>> blockage from (500 - 750m) on one of the lanes. >>>>>>>>>>>> *2.* *Setting the 3 lcParams, *it takes the same only *262s* >>>>>>>>>>>> >>>>>>>>>>>> *Doubt:* Am I misunderstanding what autonomous lane-changing >>>>>>>>>>>> means? Or are the two: lcParams and lane change mode not >>>>>>>>>>>> equivalent in the >>>>>>>>>>>> way I have mentioned? >>>>>>>>>>>> >>>>>>>>>>>> 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 >>>>>> >>>>> _______________________________________________ >>>>> 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
