Steady-state random waypoint mobility model. More...
#include <steady-state-random-waypoint-mobility-model.h>
Public Member Functions | |
SteadyStateRandomWaypointMobilityModel () | |
Public Member Functions inherited from ns3::MobilityModel | |
MobilityModel () | |
virtual | ~MobilityModel ()=0 |
int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
double | GetDistanceFrom (Ptr< const MobilityModel > position) const |
Vector | GetPosition (void) const |
double | GetRelativeSpeed (Ptr< const MobilityModel > other) const |
Vector | GetVelocity (void) const |
void | SetPosition (const Vector &position) |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::MobilityModel | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Protected Member Functions | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
Protected Member Functions inherited from ns3::MobilityModel | |
void | NotifyCourseChange (void) const |
Must be invoked by subclasses when the course of the position changes to notify course change listeners. More... | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
Private Member Functions | |
void | BeginWalk (void) |
virtual int64_t | DoAssignStreams (int64_t) |
The default implementation does nothing but return the passed-in parameter. More... | |
virtual Vector | DoGetPosition (void) const |
virtual Vector | DoGetVelocity (void) const |
void | DoInitializePrivate (void) |
virtual void | DoSetPosition (const Vector &position) |
void | Start (void) |
void | SteadyStateBeginWalk (const Vector &destination) |
Private Attributes | |
bool | alreadyStarted |
EventId | m_event |
ConstantVelocityHelper | m_helper |
double | m_maxPause |
double | m_maxSpeed |
double | m_maxX |
double | m_maxY |
double | m_minPause |
double | m_minSpeed |
double | m_minX |
double | m_minY |
Ptr< UniformRandomVariable > | m_pause |
Ptr < RandomRectanglePositionAllocator > | m_position |
Ptr< UniformRandomVariable > | m_speed |
Ptr< UniformRandomVariable > | m_u_r |
Ptr< UniformRandomVariable > | m_x |
Ptr< UniformRandomVariable > | m_x1_r |
Ptr< UniformRandomVariable > | m_x2_r |
Ptr< UniformRandomVariable > | m_y |
Ptr< UniformRandomVariable > | m_y1_r |
Ptr< UniformRandomVariable > | m_y2_r |
double | m_z |
Steady-state random waypoint mobility model.
This model based on random waypoint mobility (RWM) model for case when speed, pause and position are uniformly distributed random variables. The difference is that the initial values of this parameters are not from uniform distribution but from stationary distribution of RWM model. The implementation of this model is 2D-specific and with nonzero nodes speeds. In the 3D ns-3 coordinate system, the momement occurs on the plane, where is a constant which can be configured using the Z attribute.
Based on NS-2 implementation by Toilers Research Group – Colorado School of Mines (http://toilers.mines.edu). The papers related to this code are: W. Navidi and T. Camp, Stationary Distributions for the Random Waypoint Mobility Model, IEEE Transactions on Mobile Computing, vol. 3, no. 1, pp. 99-108, January-March 2004. W. Navidi, T. Camp, and N. Bauer, Improving the Accuracy of Random Waypoint Simulations Through Steady-State Initialization, Proceedings of the 15th International Conference on Modeling and Simulation (MS '04), pp. 319-326, March 2004.
ns3::SteadyStateRandomWaypointMobilityModel is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 55 of file steady-state-random-waypoint-mobility-model.h.
ns3::SteadyStateRandomWaypointMobilityModel::SteadyStateRandomWaypointMobilityModel | ( | ) |
|
private |
Definition at line 230 of file steady-state-random-waypoint-mobility-model.cc.
References ns3::CalculateDistance(), ns3::ConstantVelocityHelper::GetCurrentPosition(), ns3::UniformRandomVariable::GetValue(), m_event, m_helper, m_maxX, m_maxY, m_minX, m_minY, m_position, m_speed, ns3::MobilityModel::NotifyCourseChange(), NS_ASSERT, ns3::Simulator::Schedule(), ns3::ConstantVelocityHelper::SetVelocity(), Start(), ns3::ConstantVelocityHelper::Unpause(), ns3::ConstantVelocityHelper::Update(), ns3::Vector3D::x, ns3::Vector3D::y, and ns3::Vector3D::z.
Referenced by DoInitializePrivate(), and Start().
|
privatevirtual |
The default implementation does nothing but return the passed-in parameter.
Subclasses using random variables are expected to override this.
Reimplemented from ns3::MobilityModel.
Definition at line 283 of file steady-state-random-waypoint-mobility-model.cc.
References m_pause, m_position, m_speed, m_u_r, m_x, m_x1_r, m_x2_r, m_y, m_y1_r, m_y2_r, and ns3::RandomVariableStream::SetStream().
|
privatevirtual |
Concrete subclasses of this base class must implement this method.
Implements ns3::MobilityModel.
Definition at line 262 of file steady-state-random-waypoint-mobility-model.cc.
References ns3::ConstantVelocityHelper::GetCurrentPosition(), m_helper, and ns3::ConstantVelocityHelper::Update().
|
privatevirtual |
Concrete subclasses of this base class must implement this method.
Implements ns3::MobilityModel.
Definition at line 278 of file steady-state-random-waypoint-mobility-model.cc.
References ns3::ConstantVelocityHelper::GetVelocity(), and m_helper.
|
protectedvirtual |
This method is called only once by Object::Initialize.
If the user calls Object::Initialize multiple times, DoInitialize is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject and AggregateObject from within this method.
Reimplemented from ns3::Object.
Definition at line 102 of file steady-state-random-waypoint-mobility-model.cc.
References ns3::Object::DoInitialize(), and DoInitializePrivate().
|
private |
Definition at line 109 of file steady-state-random-waypoint-mobility-model.cc.
References alreadyStarted, BeginWalk(), ns3::UniformRandomVariable::GetValue(), ns3::EventId::IsRunning(), m_event, m_helper, m_maxPause, m_maxSpeed, m_maxX, m_maxY, m_minPause, m_minSpeed, m_minX, m_minY, m_pause, m_position, m_speed, m_u_r, m_x, m_x1_r, m_x2_r, m_y, m_y1_r, m_y2_r, m_z, ns3::MobilityModel::NotifyCourseChange(), NS_ASSERT, ns3::ConstantVelocityHelper::Pause(), ns3::Simulator::Schedule(), ns3::Simulator::ScheduleNow(), ns3::ObjectBase::SetAttribute(), ns3::ConstantVelocityHelper::SetPosition(), SteadyStateBeginWalk(), and ns3::ConstantVelocityHelper::Update().
Referenced by DoInitialize().
|
privatevirtual |
position | the position to set. |
Concrete subclasses of this base class must implement this method.
Implements ns3::MobilityModel.
Definition at line 268 of file steady-state-random-waypoint-mobility-model.cc.
References alreadyStarted, m_event, m_helper, ns3::Simulator::Remove(), ns3::Simulator::ScheduleNow(), ns3::ConstantVelocityHelper::SetPosition(), and Start().
|
static |
Definition at line 32 of file steady-state-random-waypoint-mobility-model.cc.
References m_maxPause, m_maxSpeed, m_maxX, m_maxY, m_minPause, m_minSpeed, m_minX, m_minY, m_z, and ns3::TypeId::SetParent().
|
private |
Definition at line 252 of file steady-state-random-waypoint-mobility-model.cc.
References BeginWalk(), ns3::UniformRandomVariable::GetValue(), m_event, m_helper, m_pause, ns3::MobilityModel::NotifyCourseChange(), ns3::ConstantVelocityHelper::Pause(), ns3::Simulator::Schedule(), and ns3::ConstantVelocityHelper::Update().
Referenced by BeginWalk(), DoSetPosition(), and SteadyStateBeginWalk().
|
private |
Definition at line 206 of file steady-state-random-waypoint-mobility-model.cc.
References ns3::CalculateDistance(), ns3::ConstantVelocityHelper::GetCurrentPosition(), ns3::UniformRandomVariable::GetValue(), m_event, m_helper, m_maxSpeed, m_maxX, m_maxY, m_minSpeed, m_minX, m_minY, m_u_r, ns3::MobilityModel::NotifyCourseChange(), NS_ASSERT, ns3::Simulator::Schedule(), ns3::ConstantVelocityHelper::SetVelocity(), Start(), ns3::ConstantVelocityHelper::Unpause(), ns3::ConstantVelocityHelper::Update(), ns3::Vector3D::x, ns3::Vector3D::y, and ns3::Vector3D::z.
Referenced by DoInitializePrivate().
|
private |
Definition at line 86 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoInitializePrivate(), and DoSetPosition().
|
private |
Definition at line 85 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoInitializePrivate(), DoSetPosition(), Start(), and SteadyStateBeginWalk().
|
private |
Definition at line 72 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoGetPosition(), DoGetVelocity(), DoInitializePrivate(), DoSetPosition(), Start(), and SteadyStateBeginWalk().
|
private |
Definition at line 83 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoInitializePrivate(), and GetTypeId().
|
private |
Definition at line 73 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoInitializePrivate(), GetTypeId(), and SteadyStateBeginWalk().
|
private |
Definition at line 77 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoInitializePrivate(), GetTypeId(), and SteadyStateBeginWalk().
|
private |
Definition at line 79 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoInitializePrivate(), GetTypeId(), and SteadyStateBeginWalk().
|
private |
Definition at line 82 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoInitializePrivate(), and GetTypeId().
|
private |
Definition at line 74 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoInitializePrivate(), GetTypeId(), and SteadyStateBeginWalk().
|
private |
Definition at line 76 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoInitializePrivate(), GetTypeId(), and SteadyStateBeginWalk().
|
private |
Definition at line 78 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoInitializePrivate(), GetTypeId(), and SteadyStateBeginWalk().
|
private |
Definition at line 84 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), Start(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 81 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoAssignStreams(), and DoInitializePrivate().
|
private |
Definition at line 75 of file steady-state-random-waypoint-mobility-model.h.
Referenced by BeginWalk(), DoAssignStreams(), DoInitializePrivate(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 91 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), SteadyStateBeginWalk(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 92 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 87 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 89 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 93 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 88 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 90 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and SteadyStateRandomWaypointMobilityModel().
|
private |
Definition at line 80 of file steady-state-random-waypoint-mobility-model.h.
Referenced by DoInitializePrivate(), and GetTypeId().