lidar_scan — DRIVE lidar op

• 数据种类:mesh × table × matrix → table

• 调用: import fullseye as fs; fs.ledger.lidar_scan(V, F, spec, T_sensor, *, labels=None, seed: 'int' = 0) -> 'dict'(要直接调用实现,import lidarsim; lidarsim.lidar_scan(V, F, spec, T_sensor, *, labels=None, seed: 'int' = 0) -> 'dict';从台账取用则 opsdrive.get("lidar_scan"))

用法

以位姿 T_sensor(world ← sensor)的 LiDAR 对网格世界 (V, F) 发射 1 次扫描。

• V (N,3) float / F (M,3) int:三角网格(空、非 (N,3)、非有限、超出范围的面索引会引发 ValueError)。

• spec:lidar_spec 的 dict。

• T_sensor:4×4 齐次矩阵(world ← sensor)。传感器坐标为 x=前, y=左, z=上。

• labels:每个面的 int 标签 (M,) 或 None(None 时命中单元的标签为 0)。

• seed:噪声的随机种子(noise_std == 0 时完全不抽取随机数,按位确定)。

返回的 dict:

points (K,3) 世界坐标中的反射点(行优先:从 beam 0 的列 0 开始)/ ranges (n_beams, n_az) [m] (0 = 无回波)/ hit_face (n_beams, n_az) int(−1 = 无)/ labels (n_beams, n_az) int (−1 = 无)/ beam (K,) int / col (K,) int / n_hits int。最近的面小于 range_min 或大于 range_max 时无回波(不会穿透到后面的面)。噪声在用无噪声距离决定有无回波之后,加到 ranges 与 points 上。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• poc_driving_school — py -3.11 examples/poc_driving_school.py

类型可衔接的下一个算子(可接受 table 作为输入)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · rss_longitudinal_same · rss_longitudinal_opposite

同类别(lidar)

lidar_spec · ray_plane_range · ray_box_ranges


*Provenance: lidarsim.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.