Difference between revisions of "MobilityHelper"

From Nsnam
Jump to: navigation, search
Line 59: Line 59:
                             "Pause", ConstantVariable(0.2));
                             "Pause", ConstantVariable(0.2));

Revision as of 21:12, 25 March 2008

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


  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.));

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");

Random 2D Direction

  MobilityHelper mobility;
                            "Bounds", Rectangle(0, 100, 0, 100),
                            "Speed", ConstantVariable(2000),
                            "Pause", ConstantVariable(0.2));