RSU 在 veins/SUMO 中的位置
RSU placement in veins/SUMO
如果我知道 RSU 在 SUMO 中的坐标,如何将其转换为 omnet++ 的坐标?
我知道 SUMO 的坐标系与 omnet 不同。我应该使用内部函数 "traci2omnet" 中使用的方程离线转换它(在开始模拟之前)吗?我试过了,但似乎不准确。
我还尝试在 sumo 中的 RSU 位置创建一个连接点,在 omnet 中检索该连接点的位置,然后将 RSU 放置在相同的坐标处。但是在 运行 模拟时(例如在初始化期间)是否可以做这样的场景?
有人知道最好的解决方案吗?
SUMO 和 OMNeT++ 使用不同的坐标系,这就是为什么像 traci2omnet
这样的辅助函数用于将点从一个坐标系转换到另一个坐标系的原因。在 Veins 4.6 中,此转换的最佳参数是在线确定的,而模拟是 运行。从好的方面来说,对于相同的场景,这些参数将始终相同。
因此,一个简单的方法是更改任何汽车的应用程序,以便在模拟中创建坐标变换后立即输出坐标变换的结果。然后可以将此转换的结果用作 RSU 的位置。只要场景不变,位置就是正确的。
一个更复杂(但更稳健)的解决方案是根据 SUMO 模拟中存在的对象,在 OMNeT++ 模拟中动态创建 RSU 模块(很像 car modules are created on the fly)。这些对象可能是 SUMO "point of interest" 对象。在这个解决方案中,只要 OMNeT++ 模拟连接到 SUMO,它就可以查询所有兴趣点的位置,将位置转换到正确的坐标系,并在每个位置实例化一个 RSU。
如果我知道 RSU 在 SUMO 中的坐标,如何将其转换为 omnet++ 的坐标?
我知道 SUMO 的坐标系与 omnet 不同。我应该使用内部函数 "traci2omnet" 中使用的方程离线转换它(在开始模拟之前)吗?我试过了,但似乎不准确。
我还尝试在 sumo 中的 RSU 位置创建一个连接点,在 omnet 中检索该连接点的位置,然后将 RSU 放置在相同的坐标处。但是在 运行 模拟时(例如在初始化期间)是否可以做这样的场景? 有人知道最好的解决方案吗?
SUMO 和 OMNeT++ 使用不同的坐标系,这就是为什么像 traci2omnet
这样的辅助函数用于将点从一个坐标系转换到另一个坐标系的原因。在 Veins 4.6 中,此转换的最佳参数是在线确定的,而模拟是 运行。从好的方面来说,对于相同的场景,这些参数将始终相同。
因此,一个简单的方法是更改任何汽车的应用程序,以便在模拟中创建坐标变换后立即输出坐标变换的结果。然后可以将此转换的结果用作 RSU 的位置。只要场景不变,位置就是正确的。
一个更复杂(但更稳健)的解决方案是根据 SUMO 模拟中存在的对象,在 OMNeT++ 模拟中动态创建 RSU 模块(很像 car modules are created on the fly)。这些对象可能是 SUMO "point of interest" 对象。在这个解决方案中,只要 OMNeT++ 模拟连接到 SUMO,它就可以查询所有兴趣点的位置,将位置转换到正确的坐标系,并在每个位置实例化一个 RSU。