2017-10-19 172 views
2

如果我知道這路側單元將被放置在SUMO的座標,如何將其轉換爲OMNET ++的座標?RSU放置在靜脈/ SUMO

我知道SUMO的座標系與omnet不同。我應該使用內部函數「traci2omnet」中使用的等式離線轉換它(在開始模擬之前)嗎?我嘗試過,但似乎不準確。

我也試過在RSU的相撲位置創建一個路口,在OMNET檢索該路口的位置,然後放置在RSU相同的座標。但是在運行模擬器的時候可以做這樣的場景(例如在初始化期間)? 有沒有人知道最好的解決方案?

回答

3

SUMO和的OMNeT ++中使用不同的座標系,這就是爲什麼喜歡traci2omnet輔助函數被用於轉化點從一個座標系到另一。在靜脈4.6中,此轉換的最佳參數是在線模擬運行時確定的。另一方面,對於相同的情況,這些參數將始終相同。

因此,前一個簡單的方法就是儘快,因爲它是在模擬創建改變任何汽車的應用程序輸出座標變換的結果。此轉換的結果可以用作RSU的位置。只要情況沒有改變,立場就會正確。

更復雜(但更強大)的解決方案是基於SUMO仿真中存在的對象,在OMNeT ++模擬中動態創建RSUs模塊(很像car modules are created on the fly)。這些對象可能是SUMO「興趣點」對象。在此解決方案中,只要OMNeT ++模擬器連接到SUMO,它就可以查詢所有感興趣點的位置,將位置轉換爲正確的座標系,並在每個位置實例化一個RSU。

+0

感謝您的回覆。可能請指向在源代碼中創建汽車模塊的部分(文件)? –

+2

肯定的事 - 我已經添加了一個鏈接到答案 –

+0

在第二種解決方案的情況下,我想我應該爲RSU添加另一個模塊類型和模塊名稱。我應該按照相同的步驟來創建汽車模塊嗎?我的意思是,訂閱上下文(在這種情況下,POI)和汽車模塊創建後的所有步驟?您能否指出主要步驟以及從Traci Scenario Manager的初始化過程開始的相應功能?我知道你已經澄清了這些步驟,但我不能指出哪一個功能會執行哪一步。 –