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 中有一些东西非常接近您想要的:DataLinkOsgVisualizer
和 PhysicalLinkOsgVisualizer
如果在数据 link 或物理层上发生通信,它会闪烁一个箭头。这与消息传递不同,但足够接近。或者您可以使用这些可视化工具作为示例来实现您自己的动画。
我是 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 中有一些东西非常接近您想要的:DataLinkOsgVisualizer
和 PhysicalLinkOsgVisualizer
如果在数据 link 或物理层上发生通信,它会闪烁一个箭头。这与消息传递不同,但足够接近。或者您可以使用这些可视化工具作为示例来实现您自己的动画。