MobilityHelper: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
No edit summary  | 
				No edit summary  | 
				||
| Line 48: | Line 48: | ||
   // position will never change.  |    // position will never change.  | ||
   mobility.SetMobilityModel ("ns3::StaticMobilityModel");  |    mobility.SetMobilityModel ("ns3::StaticMobilityModel");  | ||
</  | </pre></code>  | ||
=== Random 2D Direction ===  | === Random 2D Direction ===  | ||
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");
Random 2D Direction
  MobilityHelper mobility;
  mobility.SetMobilityModel("ns3::RandomDirection2dMobilityModel",
                            "Bounds", Rectangle(0, 100, 0, 100),
                            "Speed", ConstantVariable(2000),
                            "Pause", ConstantVariable(0.2));