FAQ
General
What is SUMO?
- SUMO is a traffic simulation package. It is meant to be used to simulate networks of a city's size, but you can of course use it for smaller networks and larger, too, if your computer power is large enough.
What does "SUMO" mean?
- "SUMO" is an acronym for "Simulation of Urban MObility".
What kind of a traffic simulation is SUMO?
- SUMO is a microscopic, space-continuous road traffic simulation. In the next time it will be extended to be multi-modal.
How do I cite SUMO
- Cite using Krajzewicz_et_al2012.
How do I report Erroneous behavior of a SUMO-Application?
- If you suspect a bug in one of the applications you should report your findings by sending the following items to the mailing list or [by opening a ticket]:
- a description of the SUMO-version and the operating system you are using
- a screenshot or error output showing the unexpected behavior (this may allow us to diagnose the problem at a single glance)
- the complete input files for reproducing the error (i.e. a sumo.cfg and all files referenced therein). Please remove unnecessary inputs (i.e. only 2 vehicles instead of 2000) and try to find the minimum input example which still shows the problem.
- a description at which time step (for simulations) and on which edge/junction the problem occurs
What should I do to get helpful answers on the mailing list?
- Make your question specific (avoid vague terms).
- Phrase your question using familiar terms (not everyone is an expert in your domain).
- Don't ask for too many things in a single post.
- Do some research on your own before you post the question (otherwise you may appear to be lazy).
- read the FAQ
- read the documentation
- check out the Tutorials
- do a web search (past questions and answers from the mailing list can be found by google)
- Do not ask the same thing twice in a short span of time. If you are in a hurry and cannot get an answer, try to change your question according to the above suggestions.
How do I contribute to the wiki?
- Attempt to log in with a Google OpenID
- Send an email to [sumo-user@list.sourceforge.net] with your email adress
- Alternatively: Send an email stating your preferred user name to sumo-user@list.sourceforge.net]
- wait for our mail telling you that you have edit-permissions
Features
Does SUMO support traffic within the junctions?
- Yes, SUMO supports inner-junction traffic since version 0.9.5.
Is it possible to connect SUMO to an external application (f.e. ns-2)?
- There are several approaches to do this, see Topics/V2X
Can SUMO simulate lefthand traffic?
- No, although there is a NETCONVERT option --lefthand, the resulting networks simply do not work yet.
Is it planned to simulate lefthand traffic one day?
- Would be definitely a nice feature and we would support anyone who wants to implement it. We even have a ticket for it. As we are not involved in projects where lefthand traffic is wished, we do not have the resources to do this work by ourselves.
Can SUMO generate movement traces?
- Most of the C2C-extensions do this, see Topics/V2X
Building / Installation
How do I access the Subversion repository?
- There are plenty of subversion clients for all platforms. If you use the command line client, you can checkout sumo using the following command:
svn co https://svn.code.sf.net/p/sumo/code/trunk/sumo
- For later updates go inside the sumo directory, which has been created, and simply type svn up.
Is there further documentation on Subversion?
- There are the Sourceforge documentation and the Subversion book.
How to check out revision 5499 (or any other outdated sumo)?
- You can use the SVN option "-r <REVISION_NUMBER>" together with the checkout on the command line. You have to consult your client's documentation if you use a graphical interface. Please be aware of the fact that we can only give very limited support for older versions.
Which platforms are supported?
- We compile regularly under Windows XP using Visual Studio 2010 (32bit and 64bit) and have daily builds on Linux (CentOS 5 (64bit) and openSUSE 11.3 (32bit)). Furthermore there are nightly builds on the open build service. We would be happy to hear about successful builds on other platforms. We already heard about successful builds (without GUI) on MacOS X, Solaris and Cygwin.
Troubleshooting
Basic Usage
What measures are used/represented?
- All time values are given in seconds. All length values are given in meters. This means that speed should be given in m/s, etc.
- Currently, each simulation time step is one second long (to be exact: in each simulation step one second real time is simulated).
What does the following error mean?
- Warning: No types defined, using defaults... Error: An exception occurred! Type:RuntimeException, Message:The primary document entity could not be opened. Id=<PATH> Error: (At line/column 1/0). Error: Quitting (conversion failed).
- Answer: Simply that the file you try to use (<PATH>) does not exist. This is xerces' way to say "file not found".
How do I work around a file not found / command not found error?
- To run the command-line programs your operating system must be able to find them.
- If you are using Windows please consult Basics/Basic Computer Skills#running_programs_from_the_command_line
- If you are using Linux run
export PATH=$PATH:/path/to/sumo/bin(replace /path/to/sumo/bin with the path to the bin directory of your sumo installation)
How do I work around missing dll errors on windows?
- Install MSVC2010 Redistributable (Old versions of SUMO may also require the MSVC2008 Redistributable and MSVC2005 Redistributable)
What is the meaning of the different exit codes (linux command line)
- 0 is success, 1 is a recognized error and anything above is an unorderly termination (crash). If you see exit codes other than 0 or 1 please tell us about it
NETCONVERT
Segmentation Fault while building a Road Network
- It was reported that NETCONVERT breaks with a segmentation fault under Ubuntu Linux in step 12 "Computing node shapes". It seems that the reason is due to a broken (?) version of the GDAL library. You probably have to install your own one or try to build NETCONVERT with no GDAL support.
Can I import the free network of Osnabrück "Frida"?
- Yes and no. You can import it using NETCONVERT, a description is available at
Networks/Import/ArcView This may be a good gis-network but lacks some needed information in order to be usable for simulations (see discussion at the link above).
Are there any other free networks available I can use?
The application hangs after a while (few memory consumption, most of the system time) (Windows)
- You are propably running a program compiled in the debug-mode. This yields in at least the triple of normal memory usage and your system may not be able to solve. Try to use the normal version, build in Release-mode (or buy more RAM :-) ).
NETCONVERT aborts at step 12 (Computing node shapes)
- Please check whether the network you try to import is encoded in geocoordinates. If so, try to convert it with the option --proj.utm (for UTM projection which is the most widely used) or --proj.dhdn (for "old" german data) or if you are familiar with the proj utility with a properly defined projection using --proj <PROJ_DEF>.
Traffic Demand Generation
How do I generate random routes?
- First of all you should know that random routes are probably quite unrealistic.
- If you wish to use them anyway, use the script <SUMO_HOME>/tools/trip/randomTrips.py to generate random trips as explained here Tools/Trip#randomTrips.py.
- You can also call the script without options to get additional help.
- See Demand/Shortest or Optimal Path Routing#Usage_Examples for more information on turning trips into routes.
How do I maintain the same number of vehicles in the net?
- You will need to use rerouters in the simulation. For an example with a simple circle see http://sumo-sim.org/trac.wsgi/browser/trunk/sumo/tests/sumo/model/drive_in_circles
Simulation
How to simulate an accident
- Currently, there are the following possibilities to simulate something like an 'accident':
- Let a vehicle halt on the lane for some time (see Definition of Vehicles, Vehicle Types, and Routes#Stops). This works quite nice for simulating accidents.
- Put a variable speed sign of the lane where the accident is meant to be and let it reduce the speed (see Simulation/Variable Speed Signs). This method will reduce the throughput on the lane, but further dynamics will rather not fit to what one would expect from an accident situation.
- You may of course combine both approaches. Within TrafficOnline, we simulated traffic incidents by letting vehicles stop on one lane and reducing the speed on the other lanes.
I have changed my network and now SUMO does not load it.
- Actually, SUMO-networks are not meant to be edited by hand. You have to describe everything within your input properly and let NETCONVERT build your network. Editing networks by hand is very complicated and error-prone.
No vehicle appears / Roads are drawn on top of vehicles
- This problem may occur when using outdated/wrong openGL drivers. Please try to update the drivers for you graphics hardware.
Vehicle jumps backward
- When I try to evaluate my vehicle dump, sometimes vehicle seem to jump backward (their position is smaller than in the previous step)
- To avoid jams due to an inappropriate lane changing behavior, vehicles may swap their lanes. In this case each vehicle obtains the position and speed of the other vehicle. As the position of the vehicles may differ a bit, one of the vehicles may seem to jump backwards.
- This should not happen from Version0.8 on.
How do I change the duration of cycles and phases?
- If you have a network that contains traffic lights, you can open it with a text editor. Then search for "tlLogic". You will find the definition(s) of your traffic light(s). Now, you can see a set of "phase"-definitions within each of the traffic lights definitions. You can change the time for each phase directly in here.
- See also the documentation on traffic light (Traffic Lights) and (SUMO - More on... Traffic Lights).
I can not see a vehicle moving in my simulation
- There may be two reasons why you do not see the cars.
- 1. If your simulation area is too big, cars will not be displayed unless you zoom into the net. The reason is that cars are displayed if their visible size is larger than 1 pixel in order to improve the visualization speed by avoiding drawing all the streets and cars even if the cars would not be visible. You may also change the settings by clicking to the color wheel in SUMO-GUI, selecting the "vehicles" panel and changing the value of "minimum size to show" to zero.
- 2. The simulation is too fast so that all vehicles disappear before being seen. To avoid this, you may increase the "Delay"-value what makes the simulation wait between simulation steps.
Different departure times with different time step size
- Vehicles are entering the network earlier with decreasing time step lengths.
- The reason for this behaviour is that a vehicle is emitted at the end of a time step. For one second time steps, this means that a vehicle which has the depart time of 0 will be inserted into the network at the end of the time step between 0 and 1, this means almost on second 1 (0.99...). If time steps of 0.1 seconds are used, the same vehicle is inserted into the network at the end of the time step between 0 and 0.1, this means almost on 0.1 (0.099...).
Save a simulation state and proceed later and/or differently
- SUMO offers the possibility to save and load a complete simulation state since verion 0.18.0).
- On earlier versions a possible workaround is to run SUMO within a virtual machine (VM) as the state of a VM can be saved at any time. Tests with VirtualBox on Linux have shown that SUMO does not run significantly slower in a VM as directly on the host if enough hardware resources are assigned to the VM (for example if you run another program simultaneously to communicate to SUMO via TraCI you should assign enough CPU-cores to the VM).
I want to use SUMO gui with the command line options from SUMO
- Up to (and including) version 0.13.1 the SUMO-GUI accepted only very few command line options. But it understands all options sumo understands, if they are read from a config file. So if you want to use these options for example to use TraCI with remote port, you can simply write them into the config file.
Vehicles do not drive on the last edge of their route
- Up to (and including) version 0.13.1 a vehicle finished its route (per default) on position 0 of the last edge. You can change this by setting the attribute departPos in the vehicle definition (see Definition_of_Vehicles,_Vehicle_Types,_and_Routes). Negative values count backwards from the end of the edge, thus setting departPos="-1" will make the vehicle drive (almost) to the end of the last edge. The new default in more recent versions is the end of the edge, which should disable this behavior.
The simulation gets slow with many vehicles waiting for insertion
- SUMO keeps checking continuously for possible vehicle insertions. If the network is jammed the number of necessary checks grows quickly. The option --max-depart-delay <TIME> may be used to discard vehicles which could not be inserted within <TIME> seconds.
The simulation has lots of jams/deadlocks. What can I do?
Deadlocks in a scenario can have many causes:
- invalid network (missing/wrong connections)
- invalid traffic lights
- invalid demand (too many vehicles overall, too many vehicles starting on the same edge, vehicles starting on inappropriate lanes)
- invalid routing (only shortest path were used, gawrons algorithm was used but did not converge)
The best course of action typically is to observe the simulation using SUMO-GUI and figure out where the first jam develops.
Visualisation
SUMO-GUI breaks
- Sometimes SUMO-GUI terminates with no reason. In most cases, an update of the opengl-driver solves this problem.
Display flickers in the area of the mouse pointer (Windows)
- Newer Windows-Versions seem to cache the area under the mouse to apply the mouse shadow afterwards. To avoid this, go to your Systemmenu, then Mouse->Pointers and disable the mouse shadows. That's the only solution so far. (Origin: Till Oliver Knoll, via QT Interest List)
Loading of a jpeg/png fails
- Currently (version 0.9.7), SUMO-GUI is not capable to load jpegs and pngs. We will try to add a support for these formats in the next time.
SUMO-GUI finishes with: FATAL: exception not rethrown (Linux)
- This is a known bug in the pthreads library. The last link also shows how to patch fox in order to avoid this.
SUMO-GUI windows and buttons appear but no net/cars are visible
- You have most definitely an opengl problem. Even recent (as of 01/2009) software implementations (for instance mesa together with the radeon driver on X) are buggy. Some workarounds are mentioned at the end of this thread.
Building videos from SUMO-GUI
There are several ways to build videos from your SUMO simulation. You can use screen capturing tools like VLC Player [1] or CamStudio [2]. The disadvantage of this approach is the requirement of a (very) fast CPU to capture the video in real time, it depends on the chosen resolution and screen size of the simulation.
Another approach is the use of single images for every simulation timestep. This can be done with an additional traci command for building screenshots. A small python snippet shows the usage of this TraCI command to get a new image for each new timestep.
for i in range(duration):
traci.simulationStep()
traci.gui.screenshot("View #0", "images/"+str(i)+".png")
Next you have to glue the images together. This job can be done graphically with virtualdub [3] or via commandline with ffmpeg [4]. An example command for ffmpeg is shown below.
ffmpeg -r 10 -i images/%d.png -b:v 1500k -vcodec wmv2 sumo.wmv
The parameters -r set the value for the fps and -b:v the bitrate for the video.
Upgrading
SUMO warns about deprecated networks or fails to load them
- In major versions (whenever the 1st or 2nd digit of the version number changes) there may be changes to the network format. In this case we provide scripts in <SUMO_HOME> /tools/net which can be used to upgrade your networks automatically. The current version of NETCONVERT can also be used to upgrade most network files to the current version. Simply call
netconvert -s old.net.xml -o new.net.xml
Python tools
tools fail with a SyntaxError or ImportError or some TypeError concerning ">>"
- The python tools require python version 2.6 or 2.7. Please do not use Python 3.x!
tools fail with an ImportError
- Make sure to set the environment variable SUMO_HOME to point at the base directory of your SUMO installation (the directory that contains tools and bin).
traceExporter.py fails to work properly in verson 0.19.0
- traceExporter has several known bugs in version 0.19.0. Please use a later release as soon as possible. Until then, use the latest svn revision of the SUMO tools by downloading
[5] extracting it somewhere on your computer and then copying the sumo-svn/tools folder on top of your existing sumo/tools folder.