osm_route — DRIVE japan op

• 数据种类:table → table

• 调用: import fullseye as fs; fs.ledger.osm_route(graph: 'dict', src: 'int', dst: 'int', *, side: 'str' = 'left', step: 'float' = 0.5, lane_offset=None, signal_setback: 'float' = 1.0, crossing_setback: 'float' = 3.0) -> 'Dict[str, object]'(要直接调用实现,import drivejapan; drivejapan.osm_route(graph: 'dict', src: 'int', dst: 'int', *, side: 'str' = 'left', step: 'float' = 0.5, lane_offset=None, signal_setback: 'float' = 1.0, crossing_setback: 'float' = 3.0) -> 'Dict[str, object]';从台账取用则 opsdrive.get("osm_route"))

用法

把 2 个节点间的最短路(Dijkstra,遵守单行)转为车道中心的折线,并按弧长列出停止线。

车道中心 = 将边的中心线向通行侧(side)偏移 宽度/4(双向道路)或 0(单行道)所得的线(可用 lane_offset 覆盖)。在节点处用相邻法线的平均值衔接(斜接)。停止线(drivetown.town_run 读取的形式 {"s", "x", "y", "yaw", "kind", "node", "element"}):

traffic_signals 节点 = "intersection"(在相交道路的半宽 = 交叉口边缘之前 signal_setback 处。同一道路的延续不计入),stop / give_way = "stop_sign"(同一位置), level_crossing = "crossing"(在 crossing_setback 之前,crossing_zone = 铁轨前后 1.5 m)。跳过路径的第一个节点。返回值 {"kind": "route", "nodes", "edges", "polyline": (K,2), "cum": (K,), "length", "stop_lines", "side", "waypoints": (n,3) 節点の車線中心, "crosswalks": [s]}。Raises ValueError:没有节点、不可达、side 不合法。

空输入(graph 为空 dict)会引发 ValueError。

参考(示例数据、文献)

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

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

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

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

• poc_driving_japan_town — py -3.11 examples/poc_driving_japan_town.py

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

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

同类别(japan)

osm_synthetic · osm_parse · osm_road_graph · osm_road_mask · osm_road_loops · japan_world · japan_stats · latlon_to_local


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

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