model文件:
box.cc
三维空间辅助类,可以判断是否在box内、靠近哪个面,与box的交点
constant-acceleration-mobility-model.cc
固定加速度模型,可以获取速度、位置、设置加速度速度等
constant-position-mobility-model.cc
固定位置模型,位置不变直到再次被设定,可以获取位置、设定位置
constant-velocity-helper.cc
匀速节点的助手类,可以控制和查询运动的节点状态
constant-velocity-mobility-model.cc
固定速度模型,可以获取速度、位置、设置速度等
gauss-markov-mobility-model.cc
Gauss-Markov 移动性模型,模型的每个对象在开始时具有特定的速度、方向(弧度)和俯仰角(弧度),这些值等于平均速度、方向和俯仰角。在每个时间步长,根据先前的值、平均值和高斯随机变量生成新的速度、方向和俯仰角。该模型适用于简单的飞行场景,其中方向、速度和俯仰角是关键变量。
模型使用示例:
mobility.SetMobilityModel ("ns3::GaussMarkovMobilityModel",
"Bounds", BoxValue (Box (0, 150000, 0, 150000, 0, 10000)),
"TimeStep", TimeValue (Seconds (0.5)),
"Alpha", DoubleValue (0.85),
...
可调参数 alpha,该参数确定了模型中记忆效应和随机性的程度。
geographic-positions.cc
包括处理地球地理坐标和位置的方法。提供了地理坐标和笛卡尔坐标之间的转换功能,以及生成随机地理坐标点的功能
hierarchical-mobility-model.cc
这个模型结合了两个其他的移动性模型,即 “parent” 模型和 “child” 模型。层次模型的位置始终是父模型和子模型位置的矢量和,因此如果父模型"移动",那么这个模型将报告相等的相对移动。这在模拟父节点移动的情况下,例如在车辆内部模拟节点时非常有用。
mobility-model.cc
所有移动模型的基类,提供了一个通用框架,用于跟踪对象的位置和速度
position-allocator.cc
定义了一些位置分配器(Position Allocator)的类,位置分配器确定节点的初始位置
random-direction-2d-mobility-model.cc
移动对象的方式基于随机方向:每个对象在特定的延迟后暂停,选择一个随机方向和速度,然后沿着该方向移动,直到达到模型的边界之一。当到达边界时,它会暂停,选择一个新的方向和速度,以此类推。
random-walk-2d-mobility-model.cc
布朗运动模型。每个实例以用户提供的随机变量随机选择的速度和方向移动,直到移动了固定的距离或者经过了固定的时间。如果撞到模型的边界之一(由一个矩形指定),会以反射的角度和速度反弹。
random-waypoint-mobility-model.cc
随机航点移动模型。每个对象在时间零开始会因为一个由随机变量 “Pause” 管理的持续时间而暂停。暂停后,对象将通过 PositionAllocator 选择一个新的航点,并通过随机变量 “Speed” 选择一个新的随机速度,然后以恒定速度开始朝着航点移动。当达到目的地时,该过程重新开始(通过暂停)。
rectangle.cc
二维空间辅助类,可以判断是否在矩形内、靠近哪个边,与矩形的交点
steady-state-random-waypoint-mobility-model.cc
稳态随机航点移动模型,该模型基于随机航点移动(RWM)模型,但其速度、暂停和位置是稳态分布的随机变量。
waypoint-mobility-model.cc
基于航点的移动模型,可以添加航点、更新速度和位置
waypoint.cc
用于表示移动模型中的航点信息
help文件:
mobility-helper.cc
设置默认的位置分配器和移动模型、模型安装到节点