OMNeT ++ 直接消息传输的 3D 可视化

OMNeT ++ direct message transmission visualizations in 3D

我是 OMNeT++ 的新手,我正在尝试实现一个使用直接消息相互通信的无人机网络。

我想使用 inet.visualizer.scene 包中的 OsgVisualizer 在 OMNeT 中使用 3D 可视化来可视化我的无人机网络。

在dronenetwork.ned文件中,我使用了IntegratedVisualizer和OsgGeographicCoordinateSystem。然后在 omnetpp.ini 文件中,定义了要使用的地图文件,因此无人机的地图加载和机动性在模拟的 3D 可视化中工作正常 运行。

然而,无人机之间的消息传输无法以 3D 形式显示,即使在 2D canvas 模式下可以正确显示。

我尝试将 NetworkNodeOsgVisualizer 和 NetworkConnectionOsgVisualizer 作为可视化简单模块添加到我的无人机模块中,并且我已将无人机定义为 @networkNode 和 @networkConnectionNode。但它仍然无法可视化消息传输。

如有任何帮助或提示,我们将不胜感激。

简单模块drone中用于可视化的代码如下

import inet.visualizer.scene.NetworkNodeOsgVisualizer;
import inet.visualizer.scene.NetworkConnectionOsgVisualizer;
module drone
{
   parameters:
    @networkNode;
    @networkConnection;
   submodules:
      networkNodeOsgVisualizer: NetworkNodeOsgVisualizer {
            @display("p=207,50");
            displayModuleName = true;   
            visualizationTargetModule = "^.^"; 
            visualizationSubjectModule = "wirelessInterface.^.^";          
      }  
      networkConnectionOsgVisualizer : NetworkConnectionOsgVisualizer{
        visualizationTargetModule = "^.^"; 
        visualizationSubjectModule = "wirelessInterface.^.^";
        displayNetworkConnections = true; 
      }

谢谢

消息传递和直接消息发送可视化是 Qtenv 为 2D(默认)可视化自动实现的特殊情况。您可以添加自定义 2D 消息可视化(如 Aloha 示例中的那个)。默认情况下,OMNeT++ 不提供任何 3D 可视化。所有代码都必须由模型(在本例中为 INET)提供。对于任何瞬态可视化也是如此。在 osg-earth omnet 示例中有一个这样的示例,其中奶牛之间的通信通过充气气泡可视化。

因此,您必须实现自己的可视化效果。 INET 中有一些东西非常接近您想要的:DataLinkOsgVisualizerPhysicalLinkOsgVisualizer 如果在数据 link 或物理层上发生通信,它会闪烁一个箭头。这与消息传递不同,但足够接近。或者您可以使用这些可视化工具作为示例来实现您自己的动画。