[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
[sumo-dev] Fwd: Vehicle stuck in roundabout
 | 
Hello,
I am trying to do a traffic light simulation for a roundabout. The model is such that vehicles that want to turn right are on right lane, vehicles those want to go straight are on middle lane and those who want to turn left are on left lane. All the vehicles who want to turn right are working properly. But vehicles which want to go straight or turn left are stuck in the roundabout even when the traffic light is green. I am using plexe.setFixedLane to keep vehicles in a fixed lane.
Here is the simulation screenshot.

I have also attached the python script that I am using.
Thank You
Regards,
Ankit Jatiya
 
 
 
#!/usr/bin/env python
import os
import sys
from math import sqrt
import random
import traci
from plexe import Plexe, ACC, CACC
if 'SUMO_HOME' in os.environ:
    tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
    sys.path.append(tools)
else:
    sys.exit("Environment variable 'SUMO_HOME' not declared.")
 
ADD_VEHICLE_STEP = 500
LANE_NUM = 12
SPEED = 16.6 
DISTANCE = 6  # inter-vehicle distance
def main():
    sumo_cmd = ['sumo-gui', '--duration-log.statistics','--log', 'logfile.txt', '--tripinfo-output', 'output_file.xml', '-c', 'traditional_traffic.sumo.cfg']
    
    traci.start(sumo_cmd)
    plexe = Plexe()
    traci.addStepListener(plexe)
    step = 0
    while step < 30000: #360000:  # 1 hour       
        
        traci.simulationStep()
        if step % ADD_VEHICLE_STEP == 0:  # add new platoon every 500 steps
            for lane in range(LANE_NUM):
                if random.random() < 0.3:
                    vid = "v.%d.%d" %(step/ADD_VEHICLE_STEP, lane)
                    routeID = "route_%d" %lane   # route 0~11, one-to-one map with lane
                    traci.vehicle.add(vid, routeID, departPos=str(0), departSpeed=str(5), departLane=str(lane%3), typeID="vtypeauto")        
                    plexe.set_path_cacc_parameters(vid, DISTANCE, 2, 1, 0.5) #cacc: cooperative adaptive cruise control
                    plexe.set_cc_desired_speed(vid, SPEED) #cc: cruise control
                    plexe.set_acc_headway_time(vid, 1.5) #adaptive cruise control
                    plexe.use_controller_acceleration(vid, False)
                    traci.vehicle.setSpeedMode(vid, 31)      #Sets how the values set by speed and slowdown shall be treated.
                    plexe.set_active_controller(vid, ACC)
                    #traci.vehicle.setLaneChangeMode(vid,lcm=1621)
                    plexe.set_fixed_lane(vid,lane%3, False)
                    traci.vehicle.setColor(vid, (255,255,255, 255))
       
        step += 1
    traci.close()
if __name__ == "__main__":
    main()