Gauss-Markov mobility model. More...
#include <gauss-markov-mobility-model.h>
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::GaussMarkovMobilityModel. |
Gauss-Markov mobility model.
This is a 3D version of the Gauss-Markov mobility model described in [1]. Unlike the other mobility models in ns-3, which are memoryless, the Gauss Markov model has both memory and variability. The tunable alpha parameter determines the how much memory and randomness you want to model. Each object starts with a specific velocity, direction (radians), and pitch angle (radians) equivalent to the mean velocity, direction, and pitch. At each timestep, a new velocity, direction, and pitch angle are generated based upon the previous value, the mean value, and a gaussian random variable. This version is suited for simple airplane flight, where direction, velocity, and pitch are the key variables. The motion field is limited by a 3D bounding box (called "box") which is a 3D version of the "rectangle" field that is used in 2-dimensional ns-3 mobility models.
Here is an example of how to implement the model and set the initial node positions:
MobilityHelper mobility; mobility.SetMobilityModel ("ns3::GaussMarkovMobilityModel", "Bounds", BoxValue (Box (0, 150000, 0, 150000, 0, 10000)), "TimeStep", TimeValue (Seconds (0.5)), "Alpha", DoubleValue (0.85), "MeanVelocity", RandomVariableValue (UniformVariable (800, 1200)), "MeanDirection", RandomVariableValue (UniformVariable (0, 6.283185307)), "MeanPitch", RandomVariableValue (UniformVariable (0.05, 0.05)), "NormalVelocity", RandomVariableValue (NormalVariable (0.0, 0.0, 0.0)), "NormalDirection", RandomVariableValue (NormalVariable (0.0, 0.2, 0.4)), "NormalPitch", RandomVariableValue (NormalVariable (0.0, 0.02, 0.04))); mobility.SetPositionAllocator ("ns3::RandomBoxPositionAllocator", "X", RandomVariableValue (UniformVariable (0, 150000)), "Y", RandomVariableValue (UniformVariable (0, 150000)), "Z", RandomVariableValue (UniformVariable (0, 10000))); mobility.Install (wifiStaNodes);
[1] Tracy Camp, Jeff Boleng, Vanessa Davies, "A Survey of Mobility Models for Ad Hoc Network Research", Wireless Communications and Mobile Computing, Wiley, vol.2 iss.5, September 2002, pp.483-502
static TypeId ns3::GaussMarkovMobilityModel::GetTypeId | ( | void | ) | [static] |
This method returns the TypeId associated to ns3::GaussMarkovMobilityModel.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
Attributes defined in parent class ns3::MobilityModel:
No TraceSources defined for this type.
TraceSources defined in parent class ns3::MobilityModel:
Reimplemented from ns3::MobilityModel.