From Nsnam
Jump to: navigation, search

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/ 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", DoubleValue(-100.0),
                                 "MinY", DoubleValue(-100.0),
                                 "DeltaX", DoubleValue(5.0),
                                 "DeltaY", DoubleValue(20.0),
                                 "GridWidth", UintegerValue(20),
                                 "LayoutType", StringValue("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));