Changes between Initial Version and Version 1 of Old/Mobility/MobilityModels


Ignore:
Timestamp:
Apr 4, 2008, 5:36:10 PM (16 years ago)
Author:
mrodoper
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Old/Mobility/MobilityModels

    v1 v1  
     1
     2= How to code and use Various Mobility Model Scripts to Emulate Mobility at ORBIT =
     3
     4
     5== Goal ==
     6
     7In order to emulate mobility at stationary nodes, like ORBIT nodes, there are three different main techniques used. First one is; by changing the injected noise power between two neighbor nodes, adjusting SNR value, so, increasing and decreasing packet loss ratios.  Second approach is, MAC filtering the incoming packets and dropping them by a determined ratio, so to adjust packet loss probability. The last approach is switching to different stationary nodes in a predetermined order. In other words, sending packets from the stationary nodes on the predetermined mobility path at predetermined time intervals. This approach is called Spatial Switching. In this tutorial, you will learn how to use  Spatial Switching for mobility emulation on ORBIT.
     8
     9== Architecture of Spatial Switching and Previous Works ==
     10
     11Before going into details of different mobility models and the framework for implementing new ones, it is crucial to read and understand [wiki:HowTo/virtualMobilitySS Mobility Emulation using Spatial Switching] tutorial and the corresponding [http://www.winlab.rutgers.edu/~kishore/papers/ewind-2005.pdf publication] for figuring out the basics of spatial switching.
     12
     13Additional to Mobility Emulation using Spatial Switching tutorial, below you can find some more information and which part of Spatial Switching this tutorial concentrates on. Since, this mobility emulation technique is implemented modularly, it is easy to understand, develop and update each step after learning layers. The module that we concentrate on here is the orange box in the below hierarchy;
     14
     15[[Image(SSArchitectureBasic.jpg)]]
     16
     17As seen at the above figure, the emulation process is triggered by a Mobility Model Script. Then its output files which are called Virtual Mobile (VM) Paths -sequence of nodes for on the path-, are fed to Create Mobility Setup script as input files. Create Mobility Setup Script fetches the used grid nodes' the MAC addresses from Database and combines them and makes them ready for the Click Router.
     18
     19== Framework for a new Model Implementation ==
     20
     21This part of the tutorial is about structure of the output VM*.txt files and important points should not be missed while implementing a new mobility model script.
     22
     23        '''Structure of the output VM*.txt files'''
     24
     25The example mobility model scripts are implemented with perl scripting language. For your easiness you can implement your own model in every language you want. The important point not to be missed is, every implementation must prepare mobile nodes' movement sequence on ORBIT grid when it terminates. Each Virtual Mobile (VM) node's movement sequence must be written to a separate text file, named as VM1.txt, VM2.txt and so on. Numbering of the output text files must start from 1.
     26
     27The numbers at the beginning of the each line of the VM*.txt files indicate the time starting time of the nodes in seconds. One node stays active till to the next nodes starting time. The difference between each number is the node's activation duration. Therefore, one node becomes active at an instance. Next to the duration number at each line, the “node**-**” indicates the active node with its coordinates on the grid.
     28
     29Since randomness is involved at the models and so at the scripts, every time you run the script you get different paths and VM*.txt files. If you want to resume with your previous path, save the VM*.txt files carefully.
     30
     31        '''Important Points should be Considered while Coding'''
     32
     33Here are the significance parts of the implementation;[[BR]][[BR]]
     34       
     35* One ORBIT node at any given time can only be active for one mobile device emulation. In other words, one node can not emulate two or more mobile nodes movement at the same time. Therefore, Virtual Mobile (VM) nodes' collisions must be considered carefully during mobility implementations. (see !IsUnique() function at example scripts).
     36
     37* The nodes at the grid are numbered between 1 to 20. Avoid getting 0 or 21 as node coordinates. Otherwise your mobility model may stuck unexpectedly.
     38
     39== Usage of Existing Mobility Model Scripts ==
     40
     41Some of the frequently used mobility models are implemented for users' easiness. Available mobility model scripts and their usage forms are as follows,
     42
     43        '''Random Walk with Reflection'''
     44
     45A mobile node moves a specified time from it current position to a new location by randomly choosing a direction and speed from particular speed and direction distributions. [1] In fact this model is not bounded, but by putting destination limits, some artificial bound added to the model.
     46
     47IMPORTANT point to be noted here is, this model can not be run for multiple nodes, since if two or more nodes collide at some time at some node, there is no way to recover from it. The reason is; the direction and duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, this mobility model implemented for 1 VM.
     48
     49Click here to download Random Walk with Reflection Mobility Model;
     50
     51Here are the parameters with example values, you can change the values according to your requirements;
     52
     53{{{
     54
     55$sourceXValue = 2; # Source X value
     56$sourceYValue = 2; # Source Y value
     57$walkDuration = 1000; # Walk duration in unit time in one direction. When this time elapses change direction
     58$speed = 100; # Average speed of the VMs
     59$angle = 360; # Angle randomness of the movements
     60$numberOfStops = 50; # Number of destinations before script terminates
     61
     62}}}
     63        '''Random Walk with Wrap'''
     64
     65This mobility model is very similar to the Random Walk with Reflection. When the mobile nodes hit the boundaries they are wrapped to the other side of the simulation area from where they continue their trip. [1] In fact this model is not bounded, but by putting destination limits, some artificial bound added to the model.
     66
     67IMPORTANT point to be noted here is, this model can not be run for multiple nodes, since if two or more nodes collide at some time at some node, there is no way to recover from it. The reason is; the direction and duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, this mobility model implemented for 1 VM.
     68
     69Click here to download Random Walk with Wrap Mobility Model;
     70
     71Here are the parameters with example values, you can change the values according to your requirements;
     72
     73{{{
     74
     75$sourceXValue = 2; # Source X value
     76$sourceYValue = 2; # Source Y value
     77$walkDuration = 1000; # Walk duration in unit time in one direction. When this time elapses change direction
     78$speed = 100; # Average speed of the VMs
     79$angle = 360; # Angle randomness of the movements
     80$randomnessInterval = 2; # Maximum distance that a node can jump at an iteration
     81$numberOfStops = 50; # Number of destinations before script terminates
     82
     83}}}
     84        '''Random Distance'''
     85
     86This model is slightly similar to the Random Walk with Wrap model. The mobile nodes move until they reach a randomly chosen distance from the simulation boundary. The difference is this model is bounded by its nature. [1] The model may terminate in two different ways; running time of the model may elapse or all destinations may be visited.
     87
     88IMPORTANT point to be noted here is, this model can not be run for multiple nodes, since if two or more nodes collide at some time at some node, there is no way to recover from it. The reason is; the direction and duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, this mobility model implemented for 1 VM.
     89
     90Click here to download Random Distance Mobility Model;
     91
     92Here are the parameters with example values, you can change the values according to your requirements;
     93
     94{{{
     95
     96$sourceXValue = 2; # Source X value
     97$sourceYValue = 2; # Source Y value
     98$walkDuration = 1000; # Walk duration in unit time in one direction. When this time elapses change direction
     99$speed = 100; # Average speed of the VMs
     100$angle = 360; # Angle randomness of the movements
     101$randomnessInterval = 2; # Maximum distance that a node can jump at an iteration
     102$numberOfStops = 50; # Number of destinations before script terminates
     103$runningTime = 100; # Running time bound for the script. when this equals to 0, program terminates
     104
     105}}}
     106
     107        '''Reference Point'''
     108
     109This mobility model forms the basis of Random Waypoint and Weighted Waypoint models.
     110
     111Click here to download Reference Point Mobility Model;
     112
     113Here are the parameters with example values, assuming 3 Virtual Mobile (VM) Nodes are in the system. You can change the values according to your requirements;
     114
     115{{{
     116
     117@sourceXValue = (19, 1, 4); # Source X values of all 3 VMs.
     118@sourceYValue = (15, 4, 12); # Source Y values of all 3 VMs.
     119                             # e.g.: First node is at (19,15)
     120@destinationXValue = ([2, 12, 19], [2, 3, 7], [3, 0, 0]); #Checkpoints' X values for 3 mobile nodes
     121@destinationYValue = ([3, 20, 20], [3, 1, 17], [4, 0, 20]); #Checkpoints' Y values for 3 mobile nodes
     122#Checkpoints for VM1 is (2,3), (12,20), (19,20)
     123#Checkpoints for VM2 is (2,3), (3,1), (7,17)
     124#...
     125$numberOfDestinations = scalar(@destinationXValue); # Number of checkpoints to be visited
     126$maxIntervalTime = 100; # Maximum waiting time at a node
     127$minIntervalTime = 10; # Minumum waiting time at a node
     128@accelerationRandomness = ([25, -5, -2],
     129                           [12, -4, -4],
     130                           [32, -12, 3]); # Acceleration values between checkpoints, e.g.: Between VM1 source and 1st checkpoint point acceleration is 25, then -5, last, -2 and same for other VMs.
     131$randomnessInterval = 2; # Maximum distance that a node can jump at an iteration
     132$mobileNumber = 3; # Number of VMs.
     133
     134}}}
     135
     136        '''Random Waypoint'''
     137
     138Each mobile node individually chooses a random destination within the simulated network boundary, and also determines a motion speed randomly chosen between a minimum and maximum limit. Based on this, it movers toward its destination at its determined velocity. Once the destination has been reached, each node stops for a randomly chosen time interval. After that pause time, it then repeats the process by choosing another random destination and a random speed.  [1]
     139
     140Click here to download Random Waypoint Mobility Model;
     141
     142Here are the parameters with example values, assuming 3 Virtual Mobile (VM) Nodes are in the system. You can change the values according to your requirements;
     143
     144{{{
     145
     146@sourceXValue = (1, 1, 4); # Source X values of all 3 VMs.
     147@sourceYValue = (1, 4, 12); # Source Y values of all 3 VMs.
     148                            # e.g.: First node is at (1,1)
     149$numberOfDestinations = 3; # The number of destinations that you want VM to travel
     150$maxIntervalTime = 100; # Maximum waiting time at a node
     151$minIntervalTime = 10; # Minimum waiting time at a node
     152@accelerationRandomness = ([25, -5, -2],
     153                           [12, -4, -4],
     154                           [32, -12, 3]); # Acceleration values between checkpoints, e.g.: Between VM1 source and 1st checkpoint point acceleration is 25, then -5, last, -2 and same for other VMs.
     155$randomnessInterval = 1; # Maximum distance that a node can jump at an iteration
     156
     157}}}
     158
     159
     160        '''Weighted Waypoint'''
     161
     162This mobility model is pretty similar to the Random Waypoint model. The difference is, it is assumed that the destination points are not randomly chosen. Rather, there are sequence of checkpoints that the mobile nodes follow. Between these checkpoints some predetermined randomness added so that the paths between the checkpoints are not same.
     163
     164Click here to download Weighted Waypoint Mobility Model;
     165
     166Here are the parameters with example values, assuming 3 Virtual Mobile (VM) Nodes are in the system. You can change the values according to your requirements;
     167
     168{{{
     169
     170@sourceXValue = (19, 1, 4); # Source X values of all 3 VMs.
     171@sourceYValue = (15, 4, 12); # Source Y values of all 3 VMs.
     172                             # e.g.: First node is at (19,15)
     173@destinationXValue = ([2, 12, 19], [2, 3, 7], [3, 0, 0]); #Checkpoints' X values for 3 mobile nodes
     174@destinationYValue = ([3, 20, 20], [3, 1, 17], [4, 0, 20]); #Checkpoints' Y values for 3 mobile nodes
     175#Checkpoints for VM1 is (2,3), (12,20), (19,20)
     176#Checkpoints for VM2 is (2,3), (3,1), (7,17)
     177#...
     178$numberOfDestinations = scalar(@destinationXValue); # Number of checkpoints to be visited
     179$maxIntervalTime = 100; # Maximum waiting time at a node
     180$minIntervalTime = 10; # Minumum waiting time at a node
     181@accelerationRandomness = ([25, -5, -2],
     182                           [12, -4, -4],
     183                           [32, -12, 3]); # Acceleration values between checkpoints, e.g.: Between VM1 source and 1st checkpoint point acceleration is 25, then -5, last, -2 and same for other VMs.
     184$randomnessInterval = 2; # Maximum distance that a node can jump at an iteration
     185$mobileNumber = 3; # Number of VMs.
     186
     187}}}
     188
     189
     190== References ==
     191
     192[1] Harri, J., Filali, F., Bonnet, C., A framework for Mobility Models Generation and its Application to Inter-Vehicular Networks, Wireless Networks, Communications and Mobile Computing, 2005 International Conference on, Publication Date: 13-16 June 2005. Volume: 1, On page(s): 42- 47 vol.1