MobilityHelper

From Nsnam
Revision as of 21:11, 25 March 2008 by Tjkopena (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Here's the basic usage for the mobility helper:

  • Create a MobilityHelper object
  • Set the options on it, i.e. what positioning scheme to use and what mobility models to assign
  • Apply the helper to a NodeContainer to position the nodes and assign them mobility models

A simple example is in samples/main-grid-topology.cc in the repositories & packages. Consult the doxygen or headers to figure out which typeids may be applied, as well as their parameters.

Position Allocators

Grid

  MobilityHelper mobility;
  // setup the grid itself: objects are layed out
  // started from (-100,-100) with 20 objects per row, 
  // the x interval between each object is 5 meters
  // and the y interval between each object is 20 meters
  mobility.SetPositionAllocator ("ns3::GridPositionAllocator",
                                 "MinX", Double (-100.0),
                                 "MinY", Double (-100.0),
                                 "DeltaX", Double (5.0),
                                 "DeltaY", Double (20.0),
                                 "GridWidth", Uinteger (20),
                                 "LayoutType", String ("RowFirst"));

Manual Allocation

  MobilityHelper mobility;
  // Put everybody into a line
  Ptr<ListPositionAllocator> initialAlloc = 
    CreateObject<ListPositionAllocator> ();
  for (uint32_t i = 0; i < mainNodes.GetN (); ++i) {
      initialAlloc->Add (Vector (i, 0., 0.));
  }
  mobilityHelper.SetPositionAllocator(initialAlloc);

Mobility Model

Static Mobility

  MobilityHelper mobility;
  // each object will be attached a static position.
  // i.e., once set by the "position allocator", the
  // position will never change.
  mobility.SetMobilityModel ("ns3::StaticMobilityModel");
</code>

Random 2D Direction

  MobilityHelper mobility;
  mobility.SetMobilityModel("ns3::RandomDirection2dMobilityModel",
                            "Bounds", Rectangle(0, 100, 0, 100),
                            "Speed", ConstantVariable(2000),
                            "Pause", ConstantVariable(0.2));