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?
Related
Vehicles communicate using 802.11p on Veins 5.1, OmNET 5.6.2, sumo 1.8.0 environment.
My questions
Do I have to implement retransmission process(like CSMA/CA) when collision is occurred?
or, is retransmission process(like CSMA/CA) already implemented in library or such class?
I want to use RTS/CTS option, do I have to implement it too?
Thank you
To directly answer your question: the 802.11p modules that are included in Veins 5.1 trigger automatic retransmissions (following the 802.11 specification) for lost unicast messages if the MAC layer useAcks parameter is set to true (which is not the default). RTS/CTS is not implemented, so if you want to use only modules from Veins you would need to implement this yourself.
More generally, though, your research sounds like it might be better served if you would combine Veins with The INET Framework (via veins_inet); this would allow you to use the more general 802.11 simulation model included in The INET Framework. It includes features like block-ACKs, RTS/CTS, fragmentation and reassembly, infrastructure mode, automatic rate selection, and many more.
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.
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'm working on a project evaluation of TSCH feature in 802.15.4. I don't know how to implement the Enhanced beacon and the request and confirm messages between nodes on omnet++.
This is quite a generic question. Generally I would look into the current codebase of INET (2.99 and later recommended) and would try to find similar features as a starting point.