如何获得准确的车速?

How to get the accurate vehicle speed?

我在veins-inet子项目存在的网络场景下对INET框架中的运行GPSR协议做了一些修改

问题是任何车辆的当前速度 (mobility->getCurrentSpeed) 在(零和 1 或 -1 之间变化)并且最大速度总是 = nan。

使用的移动类型是 veins-inet 移动。

以下是节点 [1] 在不同时间间隔的当前速度的一些结果:

** Event #177  t=13.778533849167  Scenario.node[1].networkLayer.ip (IPv4, id=107)  on ping1 (inet::ICMPMessage, id=134)
INFO (GPSR)Scenario.node[1].gpsr: Scenario.node[1].gpsr: self position= (120.706, 129.627, 0)
INFO (GPSR)Scenario.node[1].gpsr: Scenario.node[1].gpsr: self speed= (0.99343, -0.11444, 0)

* Event #240  t=16.778533849167  Scenario.node[1].networkLayer.ip (IPv4, id=107)  on ping4 (inet::ICMPMessage, id=192)
INFO (GPSR)Scenario.node[1].gpsr: Scenario.node[1].gpsr: self position= (129.95, 90.9386, 0)
INFO (GPSR)Scenario.node[1].gpsr: Scenario.node[1].gpsr: self speed= (6.12323e-17, -1, 0)

** Event #317  t=20.778533849167  Scenario.node[1].networkLayer.ip (IPv4, id=107)  on ping8 (inet::ICMPMessage, id=258)
INFO (GPSR)Scenario.node[1].gpsr: Scenario.node[1].gpsr: self position= (129.95, 35.6802, 0)
INFO (GPSR)Scenario.node[1].gpsr: Scenario.node[1].gpsr: self speed= (6.12323e-17, -1, 0)

所以,我有两个问题:
1-结果中提到了什么样的速度。是速度吗?
2-如何获得相扑中提到的(m/s)车辆的实际速度?

最后,我用的是instant veins-4.7.1

谢谢!这似乎是 Veins 4.7.1 中的错误(mobility->getCurrentSpeed() 应该 return 主机当前在 x/y/z 方向上每秒移动多少米)- 在 Veins 4.7.1 中,它而是报告标准化为单位向量的值。

要修复代码库中的错误,以下补丁应该足够了。如果是,请告诉我:

https://github.com/sommer/veins/commit/58333692f93c6ebe5597c663421c19abd8fa06dd