如果我知道RSU将在SUMO中放置的坐标,如何将其转换为omnet ++的坐标?
我知道SUMO的坐标系与omnet不同。我应该使用内部函数" traci2omnet"?中使用的公式离线转换(在开始模拟之前)我试过这个,但似乎不准确。
我还尝试在相扑中的RSU位置创建一个连接点,在omnet中检索此连接点的位置,然后将RSU放在相同的坐标处。但是,在运行simulatin时(例如在初始化期间)是否可以执行此类方案? 有没有人知道最好的解决方案?
答案 0 :(得分:3)
SUMO和OMNeT ++使用不同的坐标系,这就是使用getopt
等辅助函数将点从一个坐标系转换为另一个坐标系的原因。在Veins 4.6中,在模拟运行时,在线确定此转换的最佳参数。从好的方面来说,对于相同的场景,这些参数将始终相同。
因此,一个简单的方法是改变任何汽车的应用程序,以便在模拟中创建坐标变换后立即输出坐标变换的结果。然后,该转换的结果可以用作RSU的位置。只要情景未经修改,情况就会正确。
更复杂(但更强大)的解决方案是基于SUMO模拟中存在的对象,动态地在OMNeT ++模拟中创建RSU模块(非常类似car modules are created on the fly)。这些对象可能是SUMO"兴趣点"对象。在此解决方案中,只要OMNeT ++模拟连接到SUMO,它就可以查询所有感兴趣点的位置,将位置转换为正确的坐标系,并在每个位置实例化一个RSU。