Model error: ASSERT: condition (intersectAt.size() % 2) == 0 false in function calculateAttenuation, veins/modules/obstacle/Obstacle.cc

Model error: ASSERT: condition (intersectAt.size() % 2) == 0 false in function calculateAttenuation, veins/modules/obstacle/Obstacle.cc

我用的是Veins-4a2,修改了demo例子的场景。当我执行模拟时,我有这个错误:

模块错误 (Veins::ObstacleControl) RSUExampleScenario.obstacles (id=2) 在事件 #22,t=0.037209:模型错误:断言:条件 (intersectAt.size() % 2) == 0 false in function calculateAttenuation, veins/modules/obstacle/Obstacle.cc line 127.

为什么会出现这个错误?你能帮我

Veins 4.4 及以下版本中存在一个已知错误,有时会触发极端情况,导致发送方和接收方之间的墙数相差一个。为保证返回正确结果或不返回任何结果,如果检测到这种情况,将中止模拟。

如果这种情况在大型模拟过程中只发生几次,您可能只想删除此 ASSERT 语句。

如果这种情况经常发生,您的障碍物定义可能是错误的(例如,只有两堵墙的建筑物)