跳转至

附录 A5 - LiDAR 测距与波形

一块高架水平板和一块倾斜板放在平坦地表上。先用无发散光束检查交点、遮挡、回波能量和传播时延,再让有限光斑扫过高架板边缘,比较板面与地面的双回波及采样稳定性。随后用带狭缝的上下两层板,进一步检查三维遮挡、倾斜观测和三回波。

场景与观测

拖动可旋转,选择光束类型和后端可查看对应点云,也可单独打开三维预览。蓝圈是中心光线的直接交点,橙点是从波形提取的点,黑色十字为解析交点。

场景为 10 m × 10 m,采用开放边界,无大气衰减。地表位于 Z = 0,水平板位于 Z = 4 m,范围为 X = 5–9 m、Y = 1–4 m;倾斜板位于 X = 1–4 m、Y = 6–9 m,满足 Z = 0.5 + 0.5X。所有表面均不透明,采用 Lambertian 反射,反射率分别为 0.25、0.6、0.4。太阳辐照度为零。

参数 设置
激光波长 1064 nm
单脉冲能量 1 J
接收孔径面积 0.1 m²
发射脉冲 高斯形,半高全宽 1 ns
距离窗口 0–14 m
距离单元宽度 0.025 m
测站高度 10 m

这些参数用于检验计算关系,不对应某台实际仪器的工作配置。

无发散对照

分别垂直观测地面、水平板和斜板,并以偏离天底 30° 的方向观测地面、水平板,以 15° 观测斜板。另设置一个向上发射的脉冲,检查没有命中时的空点云与零波形。全部测站坐标和方向见输入文件。

无发散时,fast_point_cloud 返回中心光线的几何交点;waveform 返回完整波形及从波形中提取的离散回波。后者的距离有分箱量化,两者分别评价。

有限光斑

光束垂直向下,半发散角为 50 mrad。高架板面处的光斑半径为

\[ a_s=(10-4)\tan(0.05)\approx0.3003\ \mathrm{m}. \]

光束中心位于 Y = 2.5 m,X = 5 + qa_s,取 q = −1.25、−0.35、0、0.35、1.25。这些位置覆盖只见地面、两种偏心的部分遮挡、边缘居中和只见板面的情况。

光斑使用截断到单位圆的高斯能量分布,边缘与中心的比值为 0.368。较大的发散角使小场景中的光斑跨边缘现象更清晰。

有限光束的离散回波沿脉冲主轴定位,距离取自波形峰;它代表整个光斑的回波,不能理解为某一条子光线的精确表面交点。

独立参考

交点、时延与回波能量

对平面 \(\mathbf n\cdot\mathbf x=b\),从位置 o 沿单位方向 d 发射的光线,交点距离为

\[ R=\frac{b-\mathbf n\cdot\mathbf o}{\mathbf n\cdot\mathbf d},\qquad \mathbf p=\mathbf o+R\mathbf d. \]

取板面范围内最近的正距离交点,便可独立判断遮挡。单站往返时延为 \(t=2R/c\)。本例理想接收器的 Lambertian 回波能量为

\[ E_r=E_0\frac{\rho\cos\theta}{\pi}\frac{A}{R^2}. \]

\(E_0\) 是入射脉冲能量,A 是接收面积,θ 是入射方向与表面法线的夹角。无发散对照具有明确的解析交点、距离和能量。

连续脉冲与距离分箱

脉冲半高全宽为 w 时,对应的距离标准差为

\[ \sigma_R=\frac{cw}{2\sqrt{8\ln2}}. \]

位于连续距离 R 的回波,在距离单元 \([e_b,e_{b+1}]\) 内的能量为

\[ W_b=E_r\left[\Phi\!\left(\frac{e_{b+1}-R}{\sigma_R}\right) -\Phi\!\left(\frac{e_b-R}{\sigma_R}\right)\right], \]

其中 Φ 为标准正态分布函数。参考直接积分连续脉冲,再与模拟的每个距离单元比较。

连续光斑与板边缘

有限光斑参考不使用 LESS 的束内格点。记归一化半径为 r,k = −ln(0.368),径向能量密度为

\[ p(r)=\frac{2kr\exp(-kr^2)}{1-\exp(-k)},\quad0\le r\le1. \]

半径 r 上落在高架板一侧的角度比例为

\[ F_s(r)=\frac{\arccos[\mathrm{clip}(-q/r,-1,1)]}{\pi}, \qquad F_g(r)=1-F_s(r). \]

对距离差 \(h_j\) 的水平表面,有 \(R_j(r)=h_j\sqrt{1+r^2\tan^2\alpha}\)。将这些比例、Lambertian 回波能量和高斯距离单元积分相乘,再对 r 积分,即得完整参考波形。

角度比例是解析值,剩余径向积分分别用 256 和 512 阶 Gauss–Legendre 积分计算;参考自身的加密变化也单独检查。因此,无发散部分为解析对照,有限光斑部分为独立的半解析积分对照。

模拟结果

无发散波形、边缘双回波及能量分配

波形纵轴为每个距离单元的接收能量。板边缘的两个峰分别来自高架板和地面;右下图比较板面回波占总接收能量的比例。

有限光斑束内采样收敛

无发散使用 beam_samples = 1、7、31 检查采样不变性。有限光斑按 15、31、63、127、255、511、1023、2047 加密,最终采用 2047。这是每维采样参数,一束光的有效圆形格点约为 330 万个。板边缘与束内格点的相对位置会使局部误差非单调,因此同时检查独立参考误差和最后两档的变化。

波形相对误差定义为 \(\sum_b|W_b-W_b^{ref}|/\sum_bW_b^{ref}\)。脉冲宽度按分箱后波形的二阶矩计算,并与同样分箱的参考比较。

指标 阈值
直接交点的位置误差 ≤ 0.00003 m
直接回波的时延误差 ≤ 0.0002 ns
无发散回波能量相对误差 ≤ 0.005%
无发散波形相对误差 ≤ 0.005%
有限光斑波形、各表面回波能量相对误差 ≤ 0.5%
分箱后脉冲宽度偏差 ≤ 0.005 ns
最后两档束内采样的波形变化 ≤ 0.3%
有限光斑离散回波的距离偏差 ≤ 0.025 m
独立参考径向积分的加密变化 ≤ 0.001%
后端 交点误差 / m 无发散波形误差 有限光斑波形误差 各表面能量误差 最后预算变化 结论
optix 3.42e-07 0.00105% 0.0480% 0.0605% 0.0335% 通过
vulkan 3.42e-07 0.00032% 0.0480% 0.0605% 0.0335% 通过
embree 1.76e-07 0.00034% 0.0480% 0.0605% 0.0335% 通过

三个后端均通过。最大直接回波时延误差为 4.56e-06 ns,最大分箱脉冲宽度偏差为 0.00000113 ns。参考积分的最大加密变化为 6.63e-09。部分遮挡的三个位置均提取到两个回波,完全落在单一表面的两个位置均为一个回波。

三维遮挡与多回波

再用带狭缝的上层板、下层半幅板和地面,检查同一束光中不同路径的遮挡关系。上层板位于 Z = 6 m,范围为 X = 2–8 m、Y = 4–6 m,中间留出 X = 4.9–5.1 m 的狭缝;下层板位于 Z = 3 m,范围为 X = 5–8 m、Y = 4–6 m。地面仍为 Z = 0,三者反射率分别为 0.6、0.4、0.25。可在上方三维预览中选择“Occlusion”查看这一组场景,其余激光与接收参数保持不变。

无发散光束分别照向完整上层板、狭缝下的半幅板、狭缝下的地面,并从两侧以偏离天底 20° 的方向穿过狭缝。最近的有效平面交点给出精确的表面、位置、距离、能量和时延。

有限光束半发散角仍为 50 mrad,包含以下五个观测位置:

位置 观测方式 预期回波
狭缝居中 从 (5, 5, 10) 垂直向下 上层板、下层板、地面,共 3 个
狭缝边缘 从 (4.9, 5, 10) 垂直向下 上层板、下层板、地面,共 3 个
向东倾斜 偏离天底 20°,主轴穿过上层狭缝中心 上层板、下层板,共 2 个
向西倾斜 偏离天底 20°,主轴穿过上层狭缝中心 上层板、地面,共 2 个
完全遮挡 从 (4.4, 5, 10) 垂直向下 仅上层板,1 个

每条子光线只取最近的不透明表面交点。同一有限光束的不同部分照到不同高度,便形成多个回波。无发散光束穿过狭缝时只产生一个回波。

独立波形参考

将连续光斑写成极坐标,按上层狭缝边缘和下层板边缘精确划分角度区间。在各区间内计算最近的平面交点、入射余弦和往返距离,再积分前述 Lambertian 能量与高斯脉冲的距离单元能量。参考采用极坐标积分,模拟采用束内格点;两者分别加密。64 阶与 128 阶径向积分、配套角度积分之间的变化也纳入参考精度检查。

狭缝遮挡、三回波与倾斜观测的波形对比及采样检查

前三幅图分别展示三回波、向东倾斜和向西倾斜的结果,黑线为连续光斑参考。右下图展示五个位置的最大波形误差。无发散仍使用 1、7、31 检查采样不变性;有限光束使用 511、1023、1535、2047,最终采用 2047。除原有波形、能量、距离、脉冲宽度和末档变化阈值外,还要求回波数量及编号正确,峰间距误差不超过 0.05 m;被完全遮挡表面的回波能量占比不超过 \(10^{-8}\)。

后端 波形最大误差 各表面能量最大误差 最后预算变化 回波数量与遮挡
optix 0.0996% 0.1134% 0.0729% 通过
vulkan 0.0996% 0.1134% 0.0729% 通过
embree 0.0996% 0.1134% 0.0729% 通过

新增的 30 组三后端结果全部通过。完全遮挡的下层回波能量为零;狭缝与倾斜方向的回波数量、编号和顺序均符合参考。

下载与复现

将脚本与 data/lidar/ 保持相同的相对路径。独立参考需要 SciPy,绘图另需 Matplotlib:

python scripts/appendix_lidar.py --output build/tutorial-lidar
python scripts/appendix_lidar.py --plot-only build/tutorial-lidar/results.json --output build/tutorial-lidar

若已下载结果数据,只重算新增遮挡部分可加 --occlusion-only。