使用:Omnet ++ 4.6,Sumo0.21.0和Veins-3.0
当车辆连续发送信标(WSM)包含Vx(速度到x轴),Vy(速度到y轴),位置,速度每秒时,我试图使用RSU跟踪车辆我在这个场景中使用了开放街道地图。通过RSU记录信标消息(WSM)后,我发现了以下内容:
t0 = 0.839078378444 id = 0 x0 = 299.711 Vx0 = -0.0273485 y0 = 542.695 Vy0 = -1.58621 AngleRed0 = 1.58804速度= 1.58645
t1 = 1.839078378444 id = 0 x1 = 299.665 Vx1 = -0.0607238 y2 = 540.03 Vy2 = -3.52198 AngleRed1 = 1.58804 Speed = 3.5225
我使用以下代码在车辆节点中的WSM中设置属性,该属性已从RSU的onBeacon方法中检索:
wsm-> setSpeed(traci-> getSpeed());
wsm-> setAngleRad(traci-> getAngleRad());
wsm-> setvecX(traci-> getCurrentSpeed()X);
wsm-> setvecY(traci-> getCurrentSpeed()Y。);
wsm-> setSenderPos(traci-> getCurrentPosition());
setCarId; wsm-&GT(getParentModule() - > getIndex());
现在计算以检查Vx和Vy是否一致:
在时间t1 = 1.839078378444,(x1,y1)=(299.711,542.695),(x2,y2)=(299.665,540.03)
d =√(-0.046)²+( - 2.665)²= 2.665396因此,1.588 =91.032ᶿ,Cos(91.032)= - 0.018008156,速度= 2.665396 / 1,Vx =速度*Cosᶿ,Vx = 2.665396 * Cos91.032 = 2.665396 *( - 0.018008156)= -0.0479 与Vx0(-0.0273485)不一致
Vy = 2.66496 与Vy0(-1.58621)不一致,其他记录也相同。因此,d / t =速度= 2.665396 不一致,速度= 3.5225。任何建议或解决方案或澄清概念?
答案 0 :(得分:0)
你的车似乎正在加速。
如果我理解你,在你测量的两个时刻,SUMO首先报告汽车的速度为1.6米/秒,一秒钟后报告为3.5米/秒。
在我看来,你计算的距离(2.67米)是合理的。你会期望你的汽车在1.6米到3.5米之间的某个地方旅行。
请注意,当你计算速度时,你在y方向上翻转了符号:记住OMNeT ++使用的坐标系是(0,0)是左上角。