在 NS-3 中使用 Ramdomwaypoint 模型时如何设置位置分配器
How to set up the position allocator when using Ramdomwaypoint model in NS-3
我试图通过将移动模型名称 (RandomWalk2dMobilityModel) 替换为 RandomWaypointMobilityModel 来更改示例代码 (third.cc)。 运行代码后,结果是
这样的输出
assert failed. cond="m_position", msg="No position allocator added before using this model"
所以基本上这是与错误消息最相关的代码
MobilityHelper mobility;
mobility.SetPositionAllocator ("ns3::GridPositionAllocator",
"MinX", DoubleValue (0.0),
"MinY", DoubleValue (0.0),
"DeltaX", DoubleValue (5.0),
"DeltaY", DoubleValue (10.0),
"GridWidth", UintegerValue (3),
"LayoutType", StringValue ("RowFirst"));
// mobility.SetMobilityModel ("ns3::RandomWalk2dMobilityModel",
// "Bounds", RectangleValue (Rectangle (-50, 50, -50, 50)));
mobility.SetMobilityModel ("ns3::RandomWaypointMobilityModel");
mobility.Install (wifiStaNodes);
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (wifiApNode);
我很困惑的是在设置移动模型之前,已经设置了位置分配器它适用于randomwalk2d,但是,显然它不适用于randomwaypoint模型。那么如何处理呢?
如果有人可以帮助我解决这个问题,我将不胜感激。
非常感谢。
当您使用 RandomWayPointModel 时,实际上应该有两个位置分配器。
第一个,你已经用过的,是节点的初始位置。
第二个是 RandomWayPointModel 的属性,用于选择目标点。详情请参考documentation。
我试图通过将移动模型名称 (RandomWalk2dMobilityModel) 替换为 RandomWaypointMobilityModel 来更改示例代码 (third.cc)。 运行代码后,结果是
这样的输出assert failed. cond="m_position", msg="No position allocator added before using this model"
所以基本上这是与错误消息最相关的代码
MobilityHelper mobility;
mobility.SetPositionAllocator ("ns3::GridPositionAllocator",
"MinX", DoubleValue (0.0),
"MinY", DoubleValue (0.0),
"DeltaX", DoubleValue (5.0),
"DeltaY", DoubleValue (10.0),
"GridWidth", UintegerValue (3),
"LayoutType", StringValue ("RowFirst"));
// mobility.SetMobilityModel ("ns3::RandomWalk2dMobilityModel",
// "Bounds", RectangleValue (Rectangle (-50, 50, -50, 50)));
mobility.SetMobilityModel ("ns3::RandomWaypointMobilityModel");
mobility.Install (wifiStaNodes);
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (wifiApNode);
我很困惑的是在设置移动模型之前,已经设置了位置分配器它适用于randomwalk2d,但是,显然它不适用于randomwaypoint模型。那么如何处理呢? 如果有人可以帮助我解决这个问题,我将不胜感激。
非常感谢。
当您使用 RandomWayPointModel 时,实际上应该有两个位置分配器。
第一个,你已经用过的,是节点的初始位置。
第二个是 RandomWayPointModel 的属性,用于选择目标点。详情请参考documentation。