我正在尝试将omnet++与3d机器人模拟器集成在一起,这大致就是我所设想的。
因此,在机器人模拟器中有许多对象,它们之间使用802.11进行通信,这将由omnet++进行模拟。omnet++中的每个节点与机器人模拟器中的每个对象相对应,并且对象的运动将与omnet++中的相应节点同步。
但是由于omnet++是一个离散事件模拟器,我需要处理omnet++和机器人模拟器之间的时钟不匹配问题。
我知道omnet++有用于同步模拟时钟和挂钟的cRealTimeScheduler类,但我不确定这是否能实现我想要的效果。
在网络模拟方面,我是个新手,所以我想知道这是否可能。使用cRealTimeScheduler类是否负责时钟同步?或者我需要采取不同的策略?(一个不同的调度器,甚至是一个不同的模拟器?)
任何帮助都将不胜感激。谢谢。
发布于 2018-10-29 18:40:55
如果机器人模拟器本身是实时运行的,那么您可以使用cRealTimeScheduler方法。cRealTimeScheduler将与挂钟时间同步。如果机器人模拟器也是实时运行的,那么两者也将被隐式同步。
如果机器人模拟器有自己的模拟时间(即运行速度比实时快),那么您应该创建自己的调度程序类来同步两个模拟。这被称为联合模拟,其中两个模拟是串联的。静脉(sumo + omnet)也在做这件事,其中Sumo (汽车交通模拟器)和omnet (网络模拟器)正在一起工作。
你试图实现的是可能的,但是我不熟悉机器人模拟器部分,但是只要另一个模拟器也在与离散时间点的消息通信,并且你可以从机器人模拟器获得模拟时间,你应该就可以了。
https://stackoverflow.com/questions/53023609
复制相似问题