Skip to content

raw packet的publish实现不理想 #16

@tsingakbar

Description

@tsingakbar

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions