I am trying to learn how to use Veins and Omnet++, so forgive any glaringly obvious oversights. I was able to successfully run the example program, and I managed to create a custom SUMO vehicle simulation, but I cannot figure out how to incorporate messages between cars and/or the RSU. Basically, I want to just create a simple network between a couple of vehicles and an RSU that can send/receive messages. Nothing fancy.
I am using omnet++ 5.5.1, sumo 0.32.0, and veins 4.7.1. I already worked through the Tic-Toc tutorial and ran the example scenario provided with Veins. Over the past week, I have spent hours digging through online forums and youtube tutorials, but I have yet to find a single clear example of how to establish a simple connection and send messages between a couple of vehicles and/or an RSU. Digging through the example code is confusing, because I cannot find anywhere where messages are actually sent. I did look at car.ned and RSU.ned, but I don't see any sendMessage() or recieveMessage() functions. Any advice would be greatly appreciated.
Related
I am successfully able to establish a connection between Omnet++ and SUMO using the sumo-launchd.py and am able to track the vehicles.
The main problem is that I am not able to understand which routing protocol is used and where it is written in the VEINS package.
This is my main concern because I cannot implement my own proposed routing algorithm unless I understand the protocol already existing.
Hope that I will get some sort of assistance
In order to understand the demo application which is shipped with Veins and how to start building your own scenario and applications please read the following posts:
What exactly does handleParkingUpdate() do?
Building my own veins scenario
Regarding Dynamic Routing in Veins
what policy is based vehicle rerouting in case of accident?
Dear OMNET/Veins community,
I noticed in the Changelog under Veins v4.3 that there is now capability for simulating vehicles without network cards.
Would there be any documentation / or instructional material available to help the user take advantage of this new capability?
Thanks so much,
Van
You can take advantage of this insofar as you can now remove the module simulating a network card (the NIC module) from a car without the simulation complaining (it used to throw an error, noting that simulating a VANET without network cards makes no sense).
This is useful if your cars communicate via a different method that Veins does not know about (for example, an oracle that always simple "knows" information), as opposed to simulating the wireless transmission of this information.
I am working on the implementation of the following scenario using OMNET++ (4.6), SUMO-0.22.0 and VEINS-4a2 simulators: exchange of messages between cars which are in the same control area where messages represent the quality of the road.
So, I would eliminate the scenario of accidents between cars in the veins example.
Do I need to change the code of handleSelfMsg () in TraCIMobility and onData () in TraCIDemo11p methods?
The accident-scenario included in Veins is only a very basic one as it only has a single flow of traffic.
As a first step you should create your own SUMO scenario. Tutorials how to do that can be found on the SUMO wiki.
Your second step will be to understand how OMNeT++ works and how to write new applictions for your scenario. Here I recommend doing the Tictoc tutorial and looking at the OMNeT++ user manual.
Further information about Veins can be found on the Veins documentation website.
I am new in Veins. In my scenario, I use omnetpp-4.6, sumo-0.21.0 and veins-3.0 and there are just two cars, named node[0] and node[1]. Now I want to implement a scenario in which the node[0] sends its position to node[1] at 1 times/sec.
Repeated sending of messages in Veins is done no different to any other module library for OMNeT++. You can refer, for example, to the OMNeT++ TicToc tutorial for a good introduction. "How to get started" is also covered in the Veins FAQ:
The Veins tutorial has all the necessary information to run a basic simulation of a vehicular network. A high level overview of Veins is given in the Veins documentation. The next steps depend on what you want to do.
For creating own simulations, you will need to learn how to use OMNeT++. Excellent tutorials, videos, and a comprehensive user manual are available on the documentation pages on the OMNeT++ website.
If you know how to use OMNeT++ and want to write custom simulation modules (e.g., for new applications), you might find an API documenation of the Veins simulation module library helpful. It can be created from the IDE, by clicking Project > Generate NED Documentation..., or from the command line, by running make doxy. To start reading the module documenation, open doc/index.html in your browser.
If you use one of the available road traffic scenarios, there is no need to learn much about SUMO. If you want to run your simulations on custom road maps, you will need to learn how to use SUMO, though. SUMO comes with an excellent tutorial (Hello SUMO) and an extensive online user manual, available on the documentation pages on the SUMO website.
If you want to implement new TraCI commands for interacting with (or getting data from) the running road traffic simulation, the SUMO TraCI documentation has a list of available commands.
I am new in VEINS. I can run a sumo simulation in Veins but don't know hot to communicate or pass message between cars. Can anyone please help?
The demo scenario that is used in the Veins tutorial does exactly that. You can find the tutorial on the Veins website, the application code in TraCIDemo11p.cc