Omnet++ 静脉/相扑中的RSU放置

Omnet++ 静脉/相扑中的RSU放置,omnet++,veins,Omnet++,Veins,如果我知道相扑中RSU的坐标,如何将其转换为omnet++的坐标 我知道相扑有一个不同于omnet的坐标系。我是否应该使用内部函数“traci2omnet”中使用的方程式将其脱机转换(在开始模拟之前)?我试过了,但似乎不准确 我还尝试在相扑中RSU的位置创建一个连接点,在omnet中检索该连接点的位置,然后将RSU放置在相同的坐标处。但是,在运行simulatin时(例如在初始化期间),是否可以执行这种场景? 有谁知道最好的解决方案吗?SUMO和OMNeT++使用不同的坐标系,这就是为什么像tr

如果我知道相扑中RSU的坐标,如何将其转换为omnet++的坐标

我知道相扑有一个不同于omnet的坐标系。我是否应该使用内部函数“traci2omnet”中使用的方程式将其脱机转换(在开始模拟之前)?我试过了,但似乎不准确

我还尝试在相扑中RSU的位置创建一个连接点,在omnet中检索该连接点的位置,然后将RSU放置在相同的坐标处。但是,在运行simulatin时(例如在初始化期间),是否可以执行这种场景?
有谁知道最好的解决方案吗?

SUMO和OMNeT++使用不同的坐标系,这就是为什么像
traci2omnet
这样的辅助函数用于将点从一个坐标系转换到另一个坐标系的原因。在4.6中,在模拟运行时在线确定此转换的最佳参数。好的一面是,对于相同的场景,这些参数将始终相同

因此,一个简单的方法是改变任何汽车的应用程序,以便在模拟中创建坐标变换后立即输出坐标变换的结果。然后,此转换的结果可以用作RSU的位置。只要场景保持不变,位置就会正确


一个更复杂(但更健壮)的解决方案是基于SUMO模拟中存在的对象,在OMNeT++动态模拟(非常类似)中创建RSU模块。这类物体可能是相扑“兴趣点”物体。在这个解决方案中,一旦OMNeT++仿真连接到SUMO,它就可以查询所有感兴趣点的位置,将位置转换到正确的坐标系,并在每个位置实例化一个RSU。

感谢您的回复。请指出在源代码中创建汽车模块的部分(文件)?当然-我已经添加了一个到答案的链接。如果是第二个解决方案,我想我应该为RSU添加另一个模块类型和模块名称。我是否应该按照相同的步骤创建汽车模块?我的意思是,订阅上下文(在这种情况下是POI)和创建汽车模块时遵循的所有步骤?能否请您指出从TraCI Scenario Manager的初始化过程开始的主要步骤及其相应的功能?我知道你已经澄清了这些步骤,但我不能指出哪个函数执行哪个步骤。我认为这样的教程不适合这里的可用空间。我建议尝试第一种解决方案。我知道我问的问题太多了:)。我将暂时使用第一种解决方案,但在未来,我必须为cars和RSU使用多种模块类型。我试图弄清楚汽车模块是如何创建的,但无法弄清楚每个功能的执行顺序以及每个功能的作用。如果您能就TracicCommand接口文件中使用的函数提及汽车模块创建的步骤,我将不胜感激。如果你愿意的话,我可以把这个贴到一个新的单独的问题上。