Hello Jakob,

Do I still have to get the nightly version, or can I use the "main" branch
version?

Thank you.

Sincerely,
Hriday

On Wed, 23 Feb 2022 at 13:14, Jakob Erdmann <[email protected]> wrote:

> I think your video was running with an older version of sumo. The likely
> reason for this is that our night-build failed for several days in a row.
> Running your setup with laneChangeMode=0 now runs to completion without
> blockage.
>
>
> Am Mo., 21. Feb. 2022 um 16:11 Uhr schrieb Hriday Sanghvi via sumo-user <
> [email protected]>:
>
>> I am attaching the other relevant files associated with the above Python
>> code!
>>
>> Thank you.
>>
>> Sincerely,
>> Hriday
>>
>>
>> On Mon, 21 Feb 2022 at 12:26, Jakob Erdmann <[email protected]>
>> wrote:
>>
>>> 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
>>>
>> _______________________________________________
>> 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

Reply via email to