Hi Vaibhav Rungta, using setSpeed(veh_id, speed) kind of disables the default car following model for the given vehicle. If you want the simulation to take over control again, -1 is your choice to do so.
For breaking down a vehicle you may use slowDown(vehicle_id, 0., duration=3). By the way, while the wiki documentation on Traci is sometimes a bit cryptic, the doc-strings in the Traci-client are an excellent resource of information. e.g.: in your sumo-folder simply check: sumo/tools/traci/_vehicle.py Best regards Marek Heinrich simoserv GmbH Am 11.11.2016 um 18:07 schrieb Vaibhav Rungta: > Hello Marek, > Thanks for your feedback on my attempt. > Yes writing the vehicle IDs as text files isn't required. I wasn't > acquainted to sets() until now. > > I have changed vehicle speed as per your recommendation from > /setSpeed(veh_id, 20)/ to /setSpeed(veh_id, -1)/. When I observe the > simulation now it looks more realistic. > But I have doubt with this command /setSpeed(veh_id, -1)/ > - Does it set the acceleration value or is it some default value which > causes the vehicle to behave in a particular way? > - On a similar note is there a similar way to make the vehicle come to > a slow stop as well or /setSpeed(veh_id, 0)/ doing the same? > > The next step for me is to get signal times, phase and position of > vehicle to make decisions and generate optimal profile. I'll share my > code with comments once I am done. > > I really appreciate the prompt response of SUMO team. > > > > Regards, > Vaibhav Rungta > Graduate Student - Industrial and Systems Engineering > Graduate Assistant - Toyota Production Systems Lab > Research Assistant - University Transport Research Center > 585-754-7133 > > > On Thu, Nov 10, 2016 at 9:16 AM, sumo.mahei <[email protected] > <mailto:[email protected]>> wrote: > > Dear Vaibhav Rungta, > > just a some short comments on your code: > > * why do you take the extra loop writing and reading a file? > you can easily keep record of vehicles by putting their id into > a list or even better a set if the order is not of interest: > > all_vehicles_ever_arrived = set() > for vv in traci.simulation.getArrivedIDList(): > all_vehicles_ever_arrived.add(vv) > ... > if 'v1' not in all_vehicles_ever_arrived: > do_something_cool() #.... > > > * speeding up vehicles, which have been stop with > setSpeed(veh_id, speed=0.) can be resumed more > realistically by setSpeed(veh_id, speed=-1) > This causes the vehicle to speed up, according to its > physics, whereas setSpeed(veh_id, speed=20.) > sets the vehicle speed to 20. (m/s) right in the next simulation > step and the speed will be unchanged, until you change it to > something else. > > * you may write and read a trip file to get info's about the > arrived vehicles. > just run sumo with the option --tripinfo-output . The file can > be processed in > python by using the sumolib. > > Best Marek Heinrich > simoserv GmbH > > > Am 09.11.2016 um 19:40 schrieb Vaibhav Rungta: > > #First interfacing program > #TraCI > > import os #OS module which provides function for > interacting with > OS > import sys #to communicate with other software > import optparse #a python module to write command line tools > import subprocess #allows to communicate b/w pyhton script > and cmd.exe > import random > > #check for environment variables > ''' > if 'sumo-0.27.1' in os.environ: > tools = os.path.join(os.environ['sumo-0.27.1'], 'tools') > sys.path.append(tools) > else: > sys.exit("please declare environment variables > 'sumo-0.27.1'") > ''' > try: > sys.path.append(os.path.join(os.path.dirname( > __file__), '..', '..', '..', '..', "tools")) # > tutorial in tests > > sys.path.append(os.path.join(os.environ.get("sumo-0.27.1", > os.path.join( > os.path.dirname(__file__), "..", "..", "..")), > "tools")) # > tutorial in docs > from sumolib import checkBinary > except ImportError: > sys.exit( > "please declare environment variable 'SUMO_HOME' as > the root > directory of your sumo installation (it should contain folders > 'bin', > 'tools' and 'docs')") > > PORT = 8813 #port used for communicating with sumo instance > > #sumo is started as a subprocess > sumoBinary = > > "C:/Users/vr2002/Downloads/sumo-win64-0.27.1/sumo-0.27.1/bin/sumo-gui.exe" > #sumoBinary is a variable which holds the path to sumo-gui, > you can any > name for this variable > sumoProcess = subprocess.Popen([sumoBinary, "-c", "att2.sumo.cfg", > "--remote-port", str(PORT)], stdout=sys.stdout, stderr=sys.stderr) > > #For any time step I am saving all the vehicle IDs in a text > file and then > verifying if the vehicle v1 is in the text file (i.e; exited > system). > #If it's in the system it's stopped irrespective of it's > position depending > on state of signal at node B2. > > import traci > traci.init(PORT) > step = 0 > while traci.simulation.getMinExpectedNumber() > 0: > traci.simulationStep() > get_id = traci.simulation.getArrivedIDList() #list > of vehicles > exited the system in current time step > > with open ("vid3.txt", "a") as vehicle_id: #opened a text > file > named vid3 located in same folder, using with closes it > automatically once > writing work is done > vehicle_id.write (str(get_id) + '\n') #stored all > the vehicle > IDs as a string > > with open ("vid3.txt", "r") as read_vehicle_id: > #opened a text file > named vid3 located in same folder, > veh_id = read_vehicle_id.read() #reading the data > stored in text file > > if 'v1' in veh_id: #to verify if > string 'v1' is present in list veh_id > continue > else: > if traci.trafficlights.getPhase("B2") == 0: > #signal at B2 in > state GGrr > traci.vehicle.setSpeed("v1", 0) #stops the > vehicle > 'v1' > else: > traci.vehicle.setSpeed("v1", 20) #sets the > speed of > 'v1' to 20 units > > step = step + 1 > traci.close() > > Regards, > Vaibhav Rungta > Graduate Student - Industrial and Systems Engineering > Graduate Assistant - Toyota Production Systems Lab > Research Assistant - University Transport Research Center > 585-754-7133 <tel:585-754-7133> > > ------------------------------------------------------------------------------ > Developer Access Program for Intel Xeon Phi Processors > Access to Intel Xeon Phi processor-based developer platforms. > With one year of Intel Parallel Studio XE. > Training and support from Colfax. > Order your platform today. http://sdm.link/xeonphi > _______________________________________________ > sumo-user mailing list > [email protected] > <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/sumo-user > <https://lists.sourceforge.net/lists/listinfo/sumo-user> > > > ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi _______________________________________________ sumo-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sumo-user
