cr_drive — DRIVE commonroad op

• 数据种类:table → table

• 调用: import fullseye as fs; fs.ledger.cr_drive(scene, pp_index: 'int' = 0, *, route=None, v_cruise=None, a_max: 'float' = 1.5, b_max: 'float' = 3.0, lookahead: 'float' = 5.0, dt=None, stop_lines=None, hold_s: 'float' = 2.0, goal_inset: 'float' = 0.2, idm_T: 'float' = 1.2, stop_margin: 'float' = 0.6, a_lat: 'float' = 2.5, k_v: 'float' = 0.6, follow_width: 'float' = 2.0, follow_obstacles: 'bool' = True, curvature_window: 'float' = 10.0, horizon=None, params=None) -> 'dict'(要直接调用实现,import drivecommonroad; drivecommonroad.cr_drive(scene, pp_index: 'int' = 0, *, route=None, v_cruise=None, a_max: 'float' = 1.5, b_max: 'float' = 3.0, lookahead: 'float' = 5.0, dt=None, stop_lines=None, hold_s: 'float' = 2.0, goal_inset: 'float' = 0.2, idm_T: 'float' = 1.2, stop_margin: 'float' = 0.6, a_lat: 'float' = 2.5, k_v: 'float' = 0.6, follow_width: 'float' = 2.0, follow_obstacles: 'bool' = True, curvature_window: 'float' = 10.0, horizon=None, params=None) -> 'dict';从台账取用则 opsdrive.get("cr_drive"))

用法

让自研驾驶员(纵向 IDM + pure pursuit)在 CommonRoad 的 planning problem 上行驶。

纵向: IDM(a_max, b_max, idm_T, s₀ = stop_margin),目标 = 路径终点(目标 lanelet 的 goal_inset 处,视为停止的前车)、stop_lines(路径弧长的序列,或用 "scene" 将 lanelet 的 stopLine 投影到路径上。停下后 hold_s 秒起步)、路径上的前方障碍物(follow_obstacles,中心距路径 follow_width 以内且位于前方的物体)。期望速度 v₀ = min(v_cruise, 路径的限速, 曲率允许值 √(a_lat/|κ|),κ 为 curvature_window m 的滑动平均)。横向: 前视距离 L_d = max(lookahead, k_v·v) 的 pure pursuit, δ̇ ∈ ±0.4。每个 step 用 ks_step(RK4)。horizon = step 数(默认 = 目标 time_step 区间上端 − 初始 time_step)。

返回值 {"kind": "commonroad_run", "t", "time_step", "x", "y" (車両中心), "x_rear", "y_rear", "delta", "v", "psi", "u" (T−1, 2), "s" (中心の弧長), "s_front", "lat_err", "v_allow", "stops": [(time_step, s_front, kind, target_s)], "events", "route", "goal_reached", "goal_index", "params", "dt", "pp_id", "initial_time_step", "v_limit"}。

门槛: |a| ≤ max(a_max, b_max)、0 ≤ v ≤ v_limit、前端停在停止线前 0〜1 m、cr_feasible 为 feasible、到达目标。

Raises ValueError: scene / route 不合法、pp_index 超出范围、速度上限无法确定(既无限速也无 v_cruise)、初始位置不在任何 lanelet 上、stop_lines 在路径之外。

参考(示例数据、文献)

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

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

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

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

• poc_driving_commonroad — py -3.11 examples/poc_driving_commonroad.py

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

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

同类别(commonroad)

cr_synthetic · cr_read · cr_route · ks_step · cr_drive_sweep · cr_feasible · cr_collision · cr_solution_xml


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

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