Seminar at UniRC – Jul 2012
Tutorial:
Simulating VANET and ITS
(using OMNeT++ and SUMO)
MJ (Thinus) Booysen
mjbooysen at sun dot ac dot za
Department of Electrical and Electronic Engineering
Faculty of Engineering
Presentation Overview
History and background
Why is VANET special?
Vehicular networking vs. ITS
What is required for simulation?
Existing approaches
Simulation packages
Veins (OMNeT++ & SUMO)
SUMO demo
OMNeT++ demo
Veins demo
Remaining challenges
2
History and Background
Traditional traffic simulations:
Civil worked with vehicular traffic
Road design
Intersection
E&E worked with network traffic
Computer networks
Mobile networks
Recent developments:
Vehicular Ad-hoc NETworks (VANET)
Intelligent Transportation Systems (ITS)
3
Intra-car Inter-car Extra-car Networks Servers and
V2V V2I Consumers
Navigation
CAN bus
traffic management
ITS network
WAVE WAVE
Safety and
RSU
OBU
Emergency
detectors
Operators and end users
Servers and
databases
Audio-visual
Cellular
Wi-Fi
WIMAX
sources
Internet connectivity
Entertainment and
Internet
MOST
MM
ring
Displays
CAN Controller Area Network OBU On Board Unit
ISP Internet Service Provision RSU Road Side Unit (WAVE)
ITS Intelligent Transportation Systems V2I Vehicle to Infrastructure
MM MOST Master V2V Vehicle to vehicle
MOST Media Oriented Systems Transport Wi-Fi Wireless Fidelity
WIMAX Worldwide Interoperability for Microwave Access
WAVE Wireless Access in Vehicular Environments
4
Vehicular simulation: challenges, what’s different?
V2I and V2V
Mobility patterns
Fast
Unpredictable, but constrained.
Broad range of applications
Safety critical
Infotainment
Power usage
5
What is required for simulation?
VANET:
Accurate simulation of communications
signal propagation
networking
Accurate simulation of vehicle mobility
Comms simulation use mobility info
ITS:
Same as VANET
More applications support
Comms simulation (application) affects mobility
6
Some approaches
Mobility
Fixed number of vehicles at constant speed in straight
line in the same direction
Proprietary simulators (simple following, no overtaking)
Generate traces with a proper simulator, save to file
Limited scenarios and densities
Highway
Urban
Communications
Fixed range, if within range communications successful.
Taking into account radio properties
Interference
Obstacles 7
VANET simulation packages
Tool Advantages Disadvantages
Trafic and Network Simulator Flexibility and real world maps. No feedback is provided
(TraNs) (SUMO and ns-2). Integrated solution. from ns-2 to SUMO.
Development suspended
recently.
National Chiao Tung Single application with integrated NCTUns is UNIX-based
University network simulator GUI. Popular for VANET and only runs on Fedora.
(NCTUns) is a proprietary research. Limited support.
mobility and communications
simulator.
VanetMobiSim with ns-2. Flexible mobility models with No feedback is provided
micro-mobility and macro-mobility from ns-2 to
models. Maps can be imported VanetMobiSim.
from TIGER database. Separate simulators.
Vehicles in Network Flexibility and real world maps.
Simulation Active community with support.
(Veins), which integrates Full IEEE 802.11p
SUMO and OMNeT++ implementation. Integrated
solution.
8
Veins (SUMO & OMNeT) Simulation model
Highway routes OMNeT++ Metrics
OpenStreetMap
Highway map
Urban routes
Urban map
Application
MiXiM
HD traffic flows MAC layer
LD traffic flows PHY layer
SUMO TraCI Veins Mobility
Veins : veins.car2x.org/ (easy installation here)
OMNeT++ : www.omnetpp.org/ (easy thorough tutorial here)
MiXiM : mixim.sourceforge.net/
SUMO : sumo.sourceforge.net/
OpenStreetMap : www.openstreetmap.org/
9
SUMO Setup: Map: www.OpenStreetMap.org
rc.osm
net.net.xml
Road sections are called edges
Export map from web site, and convert to XML with SUMO’s netconvert
10
netconvert --osm rc.osm
SUMO setup: trips
Generate random trips (from A to B) from the road network (net.net.xml)
randomTrips.py -n net.net.xml -l -e 600 -o trips.trips.xml
trips.trips.xml
routes.routes.xml
Convert the trips to routes (what is between A and B) and traffic flow
duarouter -n net.net.xml –t trips.trips.xml -o routes.rou.xml
--ignore-errors 11
SUMO setup: simulation
Can also specify flows (in stead of single vehicles), vehicle types, different
following models, etc.
<vType id="vtype0" accel="2.6" decel="4.5" sigma="0.5" length="2.5"
minGap="2.5" maxSpeed="35" color="1,1,0"/>
<flow id="flow0" type="vtype" route="route0" begin="0" period="5"
number="200" departlane="random" departpos="base"/>
Configure the simulation by specifying the network, the routes, and the
duration in a config file.
sumo.sumo.cfg
12
SUMO simulation
13
OMNeT++ Setup
OMNeT provides the messaging platform for simulation.
OMNeT is a modular discrete event simulation environment that can
be used to simulate nearly anything.
All events in OMNeT are encapsulated as messages (simulation
events and simulation-control events).
Modules are in C++ and configuration in NED files and an .ini file.
Various frameworks exist to simulate networks on the OMNeT
platform. Two main frameworks:
INET (more for higher layer protocols and applications)
contains models for several wired and wireless networking protocols,
including UDP, TCP, SCTP, IP, IPv6, Ethernet, PPP, 802.11, MPLS, OSPF
MiXiM (more for PHY and MAC simulation)
radio wave propagation, interference estimation, radio transceiver power
consumption and wireless MAC protocols
14
OMNeT++ setup
Connections between layers are done using “gates”.
C++ files specify the behaviour of the modules
The NED files specify how gates are connected.
In the .ini file specifies parameters
Transmitter power, receiver sensitivity, thermal noise, slot durations, etc.
15
C++ module file: TraCIDemo.cc (application)
16
NED files (there are many)
In TraCIDemo.NED (application layer)
In Car.NED:
17
Initialization file
In config.ini:
For each node, you can also specify location and speed, managed
by the mobility module.
18
OMNeT++ simple mobility demo
BaseNetwork example that ships with MiXiM installation, just run the
config.ini file (right click, run as OMNeT simulation)
19
Veins setup
Veins connects SUMO and OMNeT++
Veins uses a TCP connection and Python scripts to enable
SUMO to act as a mobility model in OMNeT++
Python set up to wait for Veins (module in OMNeT++)
sumo-launchd.py -p 9999 -vv -c /c/user/src/sumo/bin/sumo.exe
And OMNeT is configured to look for mobility module
20
Veins (OMNeT++ & SUMO) demo
Demo that ships with Veins installation, just run the config.ini file
(Traci launch demo) (right click, run as OMNeT simulation)
Only thing replaced are the SUMO net.net.xml and routes.rou.xml
files.
21
Remaining challenges
Data dissemination
Signal propagation with obstacles
Multichannel management in IEEE 802.11p
22
Questions or comments?
23