我正在尝试将omnet ++与3d机器人模拟器集成在一起,而这正是我所描绘的。
因此,机器人模拟器中有许多对象,它们使用omnet ++模拟的802.11相互通信。 omnet ++中的每个节点对应于机器人模拟器中的每个对象,并且对象的运动将与omnet ++中的相应节点同步。
但是由于omnet ++是离散事件模拟器,因此我需要处理omnet ++和机器人模拟器之间的时钟不匹配问题。
我知道omnet ++具有cRealTimeScheduler类,用于将模拟时钟与壁钟同步,但是我不确定这是否可以满足我的要求。
在网络仿真方面,我是一个菜鸟,所以我想知道这是否有可能。使用cRealTimeScheduler类可以处理时钟同步吗?还是我需要采取其他措施? (不同的调度程序,甚至是不同的模拟器?)
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
如果机器人模拟器本身是实时运行的,那么使用cRealTimeScheduler方法就可以了。 cRealTimeScheduler将与挂钟时间同步。如果机器人模拟器也实时运行,那么两者也将隐式同步。
如果机器人模拟器有自己的模拟时间(即可以比实时运行更快),那么您应该创建自己的调度程序类,以同步两个模拟。这被称为协同仿真,其中两个仿真串联在一起。在Sumo(汽车交通模拟器)和omnet(网络模拟器)协同工作的情况下,Vins(sumo + omnet)也在这样做。
您试图实现的目标是可能的,但是我对机器人模拟器部分并不熟悉,但是只要另一个模拟器也正在与消息通信是离散的时间点,您就可以从机器人模拟器,应该没问题。