Looks buggy. Please provide all relevant files for reproducing your scenario.
Am Fr., 18. Feb. 2022 um 14:31 Uhr schrieb Hriday Sanghvi via sumo-user < [email protected]>: > Hello, > > As per my understanding, the "duration" argument in the change lane > command would keep attempting to change lane to the target lane until the > end of that duration or if another TraCI change lane command overrides it. > If I set my Lane change mode to 0 (all safety checks and any control by > SUMO is gone), then I would expect the below code to get all the vehicles > to the end (with collisions). > > I have *attached a short video* to show the behaviour that is observed. > Not sure why the vehicles closest to the blockage do not turn to the free > lane? (even though their indicator is yellow and shows that they want to > change lane?) > > My TraCI code: > >> >> step = 0 >> GHOST_POS = 750.0 >> >> *END = 86400.0*BLOCK_LENGTH = 300 >> >> traci.vehicle.add(vehID='ghost', routeID='r0', typeID='veh', depart=0, >> departLane=0, departPos=GHOST_POS, departSpeed='random', >> arrivalLane='current', arrivalPos=GHOST_POS) >> traci.vehicle.setColor(vehID='ghost',color=(255,0,0)) >> traci.vehicle.setLength(vehID='ghost',length=BLOCK_LENGTH) >> >> traci.vehicle.setStop(vehID='ghost', edgeID='1f2', pos=GHOST_POS, >> duration=10, until=END)# flags=0, startPos=0, until=120) >> >> # duration - min duration for stopping >> # until - timestep at which the route continues >> >> lane_ids = list(traci.lane.getIDList()) >> >> BLOCKED_LANE = 0 >> FREE_LANE = 1 >> LC_MODE = 0 # 512 # 1621 # 0 # 512 # 256 # 1109 # >> S_MODE = 0 >> NUMBER_OF_VEH = 100 >> >> *LC_MAX_DURATION = END* >> def take_step(step=1): >> >> lane_info = dict() >> for li in lane_ids: >> >> lane_info[li] = { >> 'mean_speed' : traci.lane.getLastStepMeanSpeed(laneID=li), >> 'vehicle_ids' : traci.lane.getLastStepVehicleIDs(laneID=li), >> } >> >> for vh in lane_info['1f2_1']['vehicle_ids']: # *free lane* >> if vh == 'ghost': >> continue >> traci.vehicle.setLaneChangeMode(vehID=vh, lcm=LC_MODE) >> >> * traci.vehicle.changeLane(vehID=vh, laneIndex=BLOCKED_LANE, >> duration=LC_MAX_DURATION)* > > print('Vehicle {} will try to move to BLOCKED lane'.format(vh)) > > >> >> for vh in lane_info['1f2_0']['vehicle_ids']: # *blocked lane* >> if vh == 'ghost': >> continue >> >> traci.vehicle.setLaneChangeMode(vehID=vh, lcm=LC_MODE) >> >> * traci.vehicle.changeLane(vehID=vh, laneIndex=FREE_LANE, >> duration=LC_MAX_DURATION)* print('Vehicle {} will try to move to >> FREE lane'.format(vh)) >> >> >> arrived = 0 >> while arrived < NUMBER_OF_VEH: >> >> print('################ SIM TIME: {} >> ##################'.format(traci.simulation.getTime())) >> print('################ SIM STEP COUNT: {} >> ################'.format(step)) >> step+=1 >> print('\n') >> >> take_step(step) >> >> print('Arrived: {}'.format(arrived)) >> traci.simulationStep() >> >> traci.close() >> > > 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
