-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Description
| for (int i = 0; i < m_iPandarScanArraySize; ++i) { |
例如pandar128,代码中写死为:收集线程攒够1800个packet之后,raw packet的发布线程可以集中发布一次。1800是pandar128在10hz,单回波0.1°水平分辨率(或者双回波0.2°水平分辨率),水平FOV是360°情况下的每一轮扫描的packet总数,但是:
- 存在其他工作模式,一轮扫描packet数量可以超过或者小于1800,而且即便是此模式,在丢包发生时也会小于1800,这会导致发送出去的raw数据不能对应整轮的扫描,导致消费的延迟(例如10hz单回波0.2°水平分辨率,这里一次发布大致对应了两圈扫描,对于使用方来说第一圈数据接收得就迟了100ms),而且这样publish的频率和lidar的rpm不对应,显得也很奇怪
- 即便工作模式正好对应,收集线程并没有去主动用start angle来做区隔;而publish点云的逻辑是靠“越过start angle”来触发的,极端情况下:收集1800时,第1个packet就已经越过了start angle,这时就应该触发点云计算和发布,但是要一直等到收集够1800之后才能触发。
- 其实点云靠“越过start angle”来触发也并不理想,因为lidar是可以设置FOV为一个区间的,也就是说除了start angle,其实还有end angle,能在eng angle来触发对于时延来说是最理想的。
Metadata
Metadata
Assignees
Labels
No labels