I am using Omnet, SUmo and Veins to simulate Vanets. The issue I face is that with certain maps, not all cars in the route file are spawned, at least not when they are supposed to. From what I understand it is because there is "not enough space in the network". I find it weird because the map I currently have covers 5*4 Manhattan blocks and should be big enough to accommodate thirty vehicles.
When I use departLane and departPos with "free", cars spawn, but the simulation fails randomly. I used a much bigger map with thirty vehicles and that one worked fine.
Any ideas, thanks in advance.
At depart time SUMO does not check for general space in the network but on the given departLane (which defaults to the rightmost usable lane) of the first edge in the route that's why vehicles are delayed. You already found out what to do against it, use departLane="free".
As for the second problem please give at least the error message preferrably with a more detailled description and the SUMO version.
Related
I've worked on VRP problems previously, but its been several years and going through literature hasn't helped much because the variations in the problem change a lot about the solution. So I was hoping, if I laid the problem description out, someone with a bit more insight could help me identify what flavor of VRP I'm working on, or if it more closely matches something else entirely.
The problem I have is a set number of locations, 10 in my current case but this is variable. Each location has a set of shipments that need to be sent out to the other locations, the number of shipments and destinations are random so location 0 could have 1 shipment for each of the other locations, it could have 10 shipments all to location 5, or anywhere in between. All locations are directly connected, although the distance between each location is not uniform, all distance is Euclidean, so there is an element of needing to travel the longer distances as few times as possible. There is only 1 vehicle, and it can only carry 6 shipments at once, but shipments are NOT held in a queue or stack so any shipment that has been picked up can be delivered to its destination at any time regardless of when other shipments are picked up. The vehicle can carry any mix of shipments, to between 1 and 6 destinations at a time. There is no time constraint such as pick up or drop off only possible during certain hours. The vehicle can start at any one of the locations and can end at any location, and there is no limit to the number of stops at each location or number visits to each location, except that total distance traveled needs to be minimized.
It is also possible to pick up shipments, move them, and unload them at a location that is not their proper destination. This won't count as a successful delivery, but after being moved the shipment could be picked up and moved again later. I'm not sure if this changes anything about the problem since I'm restricting the problem to 1 vehicle, but it is an allowed action.
Given that description I've been trying to classify this as capacitated VRP with pickup and delivery, but when I compare my problem to examples in that area it doesn't seem like a match when I listen to lectures over it or in literature. I'm not sure if having my all locations as potential pick-up and delivery targets is skewing my understanding, or if I'm just making this problem more complicated than it needs to be, maybe it matches a simpler interpretation.
If after you read this you think I'm on the right track and that I've identified everything correctly, could you please advise me as to where/how to start or learn more. At this point if I have correctly classified the problem then I'm not really sure what my next step should be since what I've gone over in other solutions doesn't seem to match what I'm working with. Thank you.
-i used a ø in problem, because Vehicle Routing Problem wasn't allowed in the title. Sorry.
It is also possible to pick up shipments, move them, and unload them
at a location that is not their proper destination. This won't count
as a successful delivery, but after being moved the shipment could be
picked up and moved again later. I'm not sure if this changes anything
about the problem since I'm restricting the problem to 1 vehicle, but
it is an allowed action.
The key question is whether this can actually make routes more efficient or not. If it doesn't, you can ignore this (i.e. don't do it) and the problem is a capacitated pickup delivery vehicle routing problem. (i.e. a vehicle routing problem where items are picked up from one location, dropped at another, where neither location is the vehicle depot). If you've only got one vehicle you could probably call it a "capacitated TSP with pickup and deliveries" or something similar.
If this does make routes more efficient, you're doing some kind of crossdocking, and this becomes a very complex/rich vehicle routing problem requiring a custom algorithm. This paper may be of some use?
I need to build a scenario from scratch.
Two vehicles moving on a straight road. There is a single rsu.
The rsu brodcasts the speed value every 10s. Vehicles should slow down to reach that value.
My question is
can i consider the msg as a beacon? If yes, how can i set the beacon msg in the rsu application? And if no, how to implement such scenario
You can have a look at the following answered questions, since they are somewhat similar to your question or at least give you some insight in how messages between vehicles are handled in Veins.
Please note that you should get a basic understanding of how OMNeT++ works first. You can use the TicToc tutorial to do that.
how to getting start to build a veins application
what policy is based vehicle rerouting in case of accident?
What exactly does handleParkingUpdate() do?
The necessity of handleSelfMsg in BaseWaveApplLayer
I'm using veins 4.4, OMNeT++ 5.0 and SuMO 0.25, and my project is about intersection traffic control.
I have only one obstacle (building) on my map (by open street map), and my problem is that node 1 is not receiving messages from node 2 and vice versa while in other lanes communication is done perfectly without missing messages.
I think the problem is because of this obstacle. Can anyone help me to get rid of this problem?
The obstacle (which is likely representing a house next to a junction) is behaving as it should: it is obstructing radio communication. There are two ways to approach this: either this is intended, then you would need to design a system that can route data around the house in a multi-hop fashion; or this is unintended, then you would need to remove the building or its effect on radio communication.
If you do not want to have a building in your simulation, make sure that your simulation does not load the Obstacle Shadowing Model. If you load this model but no obstacles, the simulation will complain.
Dear OMNeT++/SUMO/Veins community,
There is a correct way to disable/remove the NIC module for some vehicle in the Veins?
I have lot of vehicles in my scenario and I want set only one part them with communication module, for example 50 %. For this I created one method that set half the vehicles to start the sendBeacon and other method to drop the beacon/data for half (same half that no start sendBeacon) the vehicles. I already see this question.
I think there is a correct way to do this, because in my code all the vehicle have the communication module and just not use or ignore the package that arrived.
I'd appreciate any help.
If you want only a certain fraction of vehicles to participate in the network simulation, you can set the penetration rate parameter in https://github.com/sommer/veins/blob/veins-4.4/src/veins/modules/mobility/traci/TraCIScenarioManagerLaunchd.ned#L58 to a value smaller than one.
For example, if you set the penetration rate to 0.5 only half of the cars will take part in the network simulation (but still in the road traffic simulation), thus modeling a network where half of the cars are not equipped with VANET technology.
I live in Split,Croatia, and a city bus company recently accuired a new piece of software, and what it does is this: if I am a passenger and am awaiting a bus on a bus station, there is a huge monitor on which I can see the bus code and the time it will take for him to get to my station. The problem is, that in two years of having the software, not once have I seen that the time of the arrival is even remotley accurate. I am aware that GPS data can be inaccurate but this.... And that makes me so frustrated, that I decided that I will try to write a similar application for my final exam in CS in college. The problem is that I searched the web extensively in the last few days, and I cannot find good starting points. So my question is: have you ever been involved in such a project, and if so could you give me some pointers be it tutorials, or books regarding the subject? I appreciate any kind of input.
If I made a mistake regarding the question itself feel free to close it.
Thanks!
You will probably have:
Vehicle object containing each vehicles position, assigned route, direction of travel on route, and next scheduled stop, previous scheduled stop, arrival time at previous scheduled stop
Array of routes which comprises a list of stops and a data structure holding historic transit times between stops on each route
Now, updates to a vehicle's location push to the vehicle's object.
When you want to update a display at a station, find all routes passing through that station and for each route display the estimated arrival time of the next vehicle on that route.
The estimated arrival time structure is at the heart of this. Seed it by assuming some distance between stops and an average travel speed.
Now, every time a vehicle arrives at a stop, calculate the real time it took to get there from its last stop and use this to update an average transit time binned by half-hour increments (or what have you), you could also bin by season and/or day of week. The purpose of the binning is to implicitly account for varying traffic congestion by time of day, day of week, and/or season. Assuming otherwise homogeneous conditions, you'll eventually converge on a decent estimate of the transit time between each station.
You may find it useful to employ a Kalman filter.
Estimates of travel times between more distant stations may be more accurate than travel times between adjacent stations, if you feel like looking into that. Higher-order Markov chains may also help describe the underlying statistics of transit times.
Just ideas.