SUMO
Simulation of Urban MObility

- Home
- Download
- Documentation
- Wiki
- Trac
- Blog
- Contact
- SF-Project

# 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 Behrisch_et_al2011.

## 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.

### 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. As we are not involved in projects were lefthand traffic is wished, we are not capable 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://sumo.svn.sourceforge.net/svnroot/sumo/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

  See Installing/Linux Build or Installing/Windows Build.

## 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)

## 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 import it using NETCONVERT, a description is available at http://sumo.sourceforge.net/docs/gen/sumo_moreon_arcview.shtml#more_arcview-frida. Still, 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?

  Actually, we have not yet spent so much time for finding open source networks. Take a look at http://sumo.sourceforge.net/docs/gen/sumo_moreon_arcview.shtml in order to find some further information. That's all we know by now.

### 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://sourceforge.net/apps/trac/sumo/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':
  1. 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.
  2. 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.
  3. 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

  This problem may occur when using outdated/wrong openGL drivers. Please try to update the drivers for you graphics hardware.

  We also encountered this problem under the following circumstances: As we imported a network where the maximum speed allowed on was given in km/h instead of the supposed m/s, no vehicle could be inserted due to a too large space needed for oncoming traffic. Check whether your network description also defines speed in km/h. If so, use the SUMO-NETCONVERT - switch "speed-in-kmh" to recompute the speed limits. If this does not help, contact us.

### 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

  Currently (version 0.12) SUMO doesn't offer a possibility to save a complete simulation state and proceed later or several times eventually differently.
  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

  At the moment sumo checks for every vehicle in every time step whether it may be inserted because one may have individual vehicle and depart parameters. In order to speed up this checking, the option --sloppy-insert may be specified which induces checks only once for each edge. If all waiting vehicles are identical concerning type and depart parameters (and none of the depart parameters involves randomness) the behavior is equivalent.

## 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 finishs 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.

## 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

  The python tools require python version 2.6 or 2.7.

This page was last modified on 23 April 2013, at 14:12.