MobilityHelper: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| mNo edit summary | No edit summary | ||
| Line 28: | Line 28: | ||
| === Manual Allocation === | === Manual Allocation === | ||
| <code><pre> | <code><pre> | ||
|   MobilityHelper mobility; | |||
|    // Put everybody into a line |    // Put everybody into a line | ||
|    Ptr<ListPositionAllocator> initialAlloc =   |    Ptr<ListPositionAllocator> initialAlloc =   | ||
Revision as of 21:11, 25 March 2008
Here's the basic usage for the mobility helper:
- Create a MobilityHelperobject
- Set the options on it, i.e. what positioning scheme to use and what mobility models to assign
- Apply the helper to a NodeContainerto 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));