51uwb.cn

 找回密码
 立即注册
搜索
查看: 1577|回复: 2
打印 上一主题 下一主题

为什么计算距离的时候发现Rb会比Da的值小?

[复制链接]

3

主题

4

帖子

15

积分

新手上路

Rank: 1

积分
15
跳转到指定楼层
楼主
发表于 2025-3-24 13:54:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Ra = (double)(resp_rx_ts - poll_tx_ts);
Rb = (double)(final_rx_ts_32 - resp_tx_ts_32);
Da = (double)(final_tx_ts - resp_rx_ts);
Db = (double)(resp_tx_ts_32 - poll_rx_ts_32);

tof_dtu = (int64)((Ra * Rb - Da * Db) / (Ra + Rb + Da + Db));
这是计算的公式,原则不是应该Ra>Db ; Rb>Da吗?  为什么会出现Rb<Da的情况?
回复

使用道具 举报

0

主题

1

帖子

14

积分

新手上路

Rank: 1

积分
14
沙发
发表于 2026-5-27 13:49:08 | 只看该作者
我也遇到这个问题,用的官方例程,请问解决了吗?
回复

使用道具 举报

36

主题

1205

帖子

6558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6558
板凳
发表于 2026-6-18 06:42:53 | 只看该作者
这个不一定是异常。Ra/Rb/Da/Db 是四段时间差,不是固定几何边长,也不是要求必须满足 Ra>Db、Rb>Da。

它们来自两端不同的时间戳,受应答延迟、时钟漂移、32 位回绕处理影响,出现 Rb < Da 是可能的。真正要先确认的是:
1. 四个时戳是否都换算到同一单位。
2. 32 位时间戳回绕有没有补偿。
3. 有没有把不同轮次的数据串在一起。

如果 Rb < Da 频繁出现,优先检查 final_rx_ts_32、resp_tx_ts_32 的取值和回绕扩展,而不是先怀疑公式本身。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2026-7-12 04:09 , Processed in 0.012018 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表