STRAW - STreet RAndom Waypoint - vehicular mobility model for network simulations
The Random Waypoint (RWP) mobility model, though popular, can lead to incredibly inaccurate results when evaluating the performance of wireless ad-hoc network protocols and applications. STRAW (STreetRAndom Waypoint) provides more accurate simulation results by using a vehicular mobility model on real US cities, based on the operation of real vehicular traffic. STRAW's current implementation is written for the highly efficient JiST/SWANS discrete-event simulator, and is open source and available for free.
STRAW is part of the C3 (Car-to-Car Cooperation) project.
To date, STRAW and SWANS++ have been downloaded 3509 times.
Screen shot of STRAW with the enhanced visualization tool.
The community is increasingly interested in developing network protocols and services for vehicular ad-hoc networks (VANETs). Due in part to the prohibitive cost of deploying and implementing such systems in the real world, most research in this area relies on simulation for evaluation. A key component of these simulations is a realistic vehicular mobility model that ensures conclusions drawn from such experiments will carry through to real deployments.
Unlike many other mobile ad-hoc environments where node movement occurs in an open field (such as conference rooms and cafés), vehicular nodes are constrained to streets often separated by buildings, trees or other objects. Street layouts and different obstructions increase the average distance between nodes and, in most cases, reduce the overall signal strength received at each node. We argue that a more realistic mobility model with the appropriate level of detail for vehicular networks is critical for accurate network simulation results. The STRAW (STreet RAndom Waypoint) mobility model addresses this issue by constraining node movement to streets defined by map data for real US cities and limit their mobility according to vehicular congestion and simplified traffic control mechanisms.
We have shown that the performance of wireless network protocols in urban environments is dramatically different than that in an open-field Random Waypoint model and, further, that the type of urban environment can significantly impact the performance of a protocol. We also argue that an integrated vehicular traffic and network traffic simulator is essential when VANET applications are expected to influence the mobility of participating vehicles.
- Fabian E. Bustamante, Faculty PI
- STRAW Installation Instructions
- TMRS: Tiger/LINE file conversion utility. Note: TMRS is currently unavailable from the original site, and is mirrored here.
- STRAW User's Guide (in progress)
- Video of STRAW using the Ceratias visualization tool
- Note: the videos below are from older versions of STRAW
- Video of STRAW (Simple model) in Chicago
- Video of STRAW (using shortest paths with origins and destinations) in Chicago
- Video of STRAW (Simple model) in Boston
- Video of STRAW (using shortest paths with origins and destinations) in Boston
- STRAW source: for the latest version, see the SWANS++ project.
We ask that you create an account on our website to access the software. Once you have created an account and logged in, download links will appear at the bottom of this page. Any paper that uses this software must refer to the publication above and you must send us a copy of the paper upon publication.
- 1.3 Added support for lane-changing, flows of traffic and repeatable routes.
Where is version 1.3? Version 1.3 is currently provided only through the SWANS++ project. I will "backpatch" the JiST/SWANS distribution and post it here at a later date.
- 1.2.1 Fixed patch compatibility with new version of Rewriter.java.
- 1.2 Released visualization tool, minor changes to StreetMobility.
- 1.1 Significantly improved A* search time, other minor changes.
- 1.0 First public release.
- Incorporating path loss models for buildings and other vehicles (Status: building phase)
- Interaction with real-time, real-world positional information (Status: planning phase)
- Support for additional map sources (Status: ongoing)
As of 2/21/2006, I have created a SourceForge project, SWANS++, to serve as a central access point for SWANS development and extensions. You will currently find files releases and anonymous CVS access to the Ceratias visualization tool and STRAW.
If you have developed extensions for SWANS or would like to extend STRAW or Ceratias, please use the SourceForge site and request to be added to the project. By working together and openly, we can improve SWANS and provide a much richer simulation environment for the community.
There are a number of projects related to this work that I would like to see happen, but I don't have the time to do myself. Please contact me with ideas to add to this list and/or links to projects that address any of these issues. This site has gotten over 1,000 hits in the first few months, so I'd like it to be a resource for all developers in the JiST/SWANS community.
- Improved MAC layer
- Support for and examples of real-world wireless and mobility trace data
- Support for and examples of real-world wireless trace data
- Support for Java 5.0
- David R. Choffnes and Fabián E. Bustamante. An Integrated Mobility and Traffic Model for Vehicular Wireless Networks. In Proc. of the 2nd ACM International Workshop on Vehicular Ad Hoc Networks (VANET), September 2005.
- David Choffnes and Fabián E. Bustamante. STRAW - An Integrated Mobility and Traffic Model for VANETs. In Proc. of the 10th International Command and Control Research and Technology Symposium (CCRTS), June 2005. (This is an early version of Tech. Report NWU-CS-05-03).
- David R. Choffnes and Fabián E. Bustamante. Modeling Vehicular Traffic and Mobility for Vehicular Wireless Networks. Tech. Report NWU-CS-05-03, Department of Computer Science, Northwestern University, 2005.
Frequently Asked Questions
- Q: I get the following error:
java.lang.IndexOutOfBoundsException: list maximum exceeded
at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
A: This is due to the default implementation of MessageQueues in SWANS. For whatever reason, the queue throws an exception instead of simply dropping the message. A workaround is to place a return statement at the line throwing the exception. A more advanced workaround will notify higher layers of the reason for the drop.