跳到正文
原文
Hugging Face Blog·· 2025-03-11精选AI 评分75

LeRobot 发布 L2D:全球最大开源自动驾驶数据集

LeRobot goes to driving school: World’s largest open-source self-driving dataset

AI 导读

Yaak 与 Hugging Face 的 LeRobot 团队联合发布 Learning to Drive(L2D),被称为全球最大的开源自动驾驶数据集,包含来自德国 30 个城市、60 辆驾校电动车、历时 3 年采集的 90+ TB 多模态数据,约 5000 小时驾驶记录。

推荐理由

L2D 开源数据集包含 5000+ 小时德国驾校数据,可用于 LeRobot 端到端自动驾驶模型的训练与闭环测试。

正文 · AI 翻译

L2D简介,全球最大的自动驾驶数据集!

  • 来自德国30个城市的90+ TB多模态数据(5000+小时驾驶记录)
  • 6路环视高清摄像头及完整车辆状态:速度/航向/GPS/IMU
  • 连续动作:油门/刹车/转向;离散动作:档位/转向灯
  • 环境状态:车道数、道路类型(高速公路|居民区)、路面材质(沥青、鹅卵石、石块)、最高限速。
  • 环境条件:降水、天气状况(雪、晴、雨)、光照(黎明、白天、黄昏)
  • 专为训练基于自然语言指令或未来路径点的端到端模型而设计
  • 自然语言指令。例如,每个片段都有像“当信号灯变绿时,驶过电车轨道,然后穿过环岛”这样的指令
  • 未来路径点贴合OpenStreetMap图数据,并额外以鸟瞰图渲染
  • 专家(驾驶教练)和学员(学车者)策略

最先进的视觉语言模型和大语言模型基于从互联网获取的开源图像-文本语料库进行训练,这推动了近期开源AI的加速发展。尽管取得了这些突破,但端到端AI在机器人和汽车领域的采用率仍然很低,主要原因是缺乏高质量、大规模的多模态数据集如OXE。 为了释放机器人AI的潜力,Yaak与🤗的LeRobot团队合作,并激动地向机器人AI社区宣布Learning to Drive (L2D)。L2D是全球最大的多模态数据集,旨在为汽车领域构建开源的空间智能,并原生支持🤗的LeRobot训练流程和模型。受源代码版本控制最佳实践的启发,Yaak还邀请AI社区搜索和发现我们整个数据集(> 1 PB)中的新片段,并将其收集队列提交审核,以便合并到未来版本(R5+)中。

数据集 观测 状态 动作 任务/指令 片段数 时长(小时) 大小(TB)
WAYMO RGB(5路) — — — 2030 11.3 0.5*
NuScenes RGB(6路) GPS/IMU — — 1000 5.5 0.67*
MAN RGB(4路) GPS/IMU — — 747 4.15 0.17*
ZOD RGB(1路) GPS/IMU/CAN ☑️ — 1473 8.2 0.32*
COMMA RGB(1路) GPS/IMU/CAN ☑️ — 2019 33 0.1
L2D (R4) RGB (6路) GPS/IMU/CAN ☑️ ☑️ 1000000 5000+ 90+

表1:开源自动驾驶数据集(*不包括激光雷达和雷达)。来源

L2D数据采集自安装在60辆电动汽车上的相同传感器套件,这些车辆由德国30个城市的驾校在3年时间内运营。L2D中的策略分为两组——由驾驶教练执行的专家策略和由学员驾驶员执行的学员策略。两组策略都包含驾驶任务的自然语言指令。例如:“当你有先行权时,从环岛第三个出口驶出,小心驶过人行横道”。

专家策略 — 驾驶教练 学员策略 — 学车者

图1:可视化:Nutron(为清晰起见,仅显示6个摄像头中的3个) 指令:“当你有先行权时,驶过环岛并从第三个出口驶出”。

专家策略零驾驶错误,被视为最优策略;而学员策略存在已知的次优性(图2)。

图 2:学生策略采用急促的转向操作以避免驶入迎面卡车的车道

两组均覆盖了在欧盟范围内(德语版本)取得驾照所必须完成的所有驾驶场景,例如超车、环岛和铁轨路段。在发布版(见下方 R3+)中,针对次优的学生策略,将附上关于其为何次优的自然语言推理说明。例如“在临近迎面车流时对方向盘的不正确/急促操作”(图 2)

专家:驾驶教练 学生:学车学员
专家策略是在驾驶教练操作车辆时采集的。这些驾驶教练拥有至少 1 万小时以上的教导学车学员的经验。专家策略组与学员策略组覆盖相同的驾驶任务。 学生策略是在学车学员操作车辆时采集的。学车学员的经验程度各不相同(10–50 小时)。按照设计,学车学员覆盖了所有欧盟规定的驾驶任务,从高速公路上的高速变道到穿行狭窄的步行区。

L2D:学习驾驶

L2D(R2+)旨在成为最大的开源自动驾驶数据集,为 AI 社区提供独特而多样的“片段”,用于训练端到端空间智能。通过纳入完整的驾驶策略谱系(学员和专家),L2D 捕捉了安全操作车辆的种种细节。为完整呈现一个可运行的自动驾驶车队,我们纳入了涵盖多样环境条件、传感器故障、施工区域和交通信号灯失效的片段。

专家策略组和学生策略组均以下表详述的相同传感器配置进行采集。六个 RGB 摄像头以 360 度捕捉车辆周围环境,车载 GPS 捕捉车辆位置和航向。IMU 收集车辆动态,我们还从车辆 CAN 接口读取速度、油门/刹车踏板、转向角、转向灯和挡位。我们使用各模态各自的 Unix 纪元时间戳,将所有模态类型与左前摄像头(observation.images.front_left)进行同步。在可行的情况下,我们还对数据点进行了插值以提高精度(见表 2),最终将采样率降至 10 赫兹。

图 3:使用 Visualization: Nutron 进行的多模态数据可视化(为清晰起见,仅展示 6 个摄像头中的 3 个)

模态 LeRobotDataset v3.0 键 形状 alignment[tol][strategy]
图像(x6) observation.images.front_left[left_forward,..] N3HW asof[20ms][nearest]
速度 observation.state.vehicle.speed N1 interp
航向 observation.state.vehicle.heading[heading_error] N1 asof[50ms][nearest]
GPS observation.state.vehicle.latitude[longitude/altitude] N1 asof[50ms][nearest]
IMU observation.state.vehicle.acceleration_x[y] N1 interp
路径点 observation.state.vehicle.waypoints N2L asof[10m][nearest]
时间戳 observation.state.timestamp N1 observation.images.front_left
油门 action.continous.gas_pedal_normalized N1 interp
刹车 action.continous.brake_pedal_normalized N1 interp
转向 action.continous.steering_angle_normalized N1 interp
转向灯 action.discrete.turn_signal N1 asof[100ms][nearest]
挡位 action.discrete.gear N1 asof[100ms][nearest]
语言 task.policy N1 —
语言 task.instructions N1 —
车道数 observation.state.lanes N1 asof[500ms][nearest]
道路类型 observation.state.road N1 asof[500ms][nearest]
路面 observation.state.surface N1 asof[500ms][nearest]
最高限速 observation.state.max_speed N1 asof[500ms][nearest]
降水 observation.state.precipitation N1 asof[1hr][nearest]
天气状况 observation.state.conditions N1 asof[1hr][nearest]
光照 observation.state.lighting N1 asof[1hr][nearest]

表2:模态类型、LeRobot v3.0 键、形状和插值策略。

L2D 遵循德国官方驾驶任务目录 (详细版本)对驾驶任务、 驾驶子任务和任务定义的定义。我们为所有 episode 分配了唯一的 Task ID 和自然语言指令。 所有 episode 的 LeRobot:task 均设置为 “沿路点行驶,同时遵守交通规则和法规”。下表展示了一些示例 episode、 它们的自然语言指令、驾驶任务和子任务。专家策略和学生策略对相似场景具有相同的 Task ID,而指令则因 episode 而异。

Episode 指令 驾驶任务 驾驶子任务 任务定义 Task ID
Visualization LeRobot Visualization Nutron 直行通过,绕过停放的送货卡车,并礼让来向车流 3 超车、超越 3.1 超越障碍物和狭窄路段 该子任务涉及在遵守优先规则的同时超越障碍物或通过狭窄道路。 3.1.1.3a 无交通标志的优先规则(标准)
Visualization LeRobot Visualization Nutron 通过无保护左转,礼让直行车流 4 交叉路口、路口、汇入车流 4.1 穿过交叉路口和路口 该子任务涉及在遵守优先规则并观察其他交通的同时穿过交叉路口和路口。 4.1.1.3a 右先于左
Visualization LeRobot Visualization Nutron 直行至让行标志处,并从环岛驶出第一个出口 5 环岛 5.1 环岛 该子任务涉及安全驶过环岛、理解通行权规则并正确保持位置。 5.1.1.3a 单车道

表3:L2D 中的示例 episode、其指令以及源自欧盟驾驶任务目录的 Task ID

我们使用车辆位置(GPS)、 Open-Source Routing Machine、 OpenStreetMap 和一个大语言模型(LLM)来自动构建指令和航点 (见下文)。自然语言查询的构建方式紧贴大多数 GPS 导航设备中可用的逐向导航。航点(图 4)是通过将原始 GPS 轨迹与 OSM 图进行地图匹配,并从车辆当前位置(绿色)起 100 米范围内采样 10 个等距点(橙色)计算得出的,用作沿途航点。

A sample L2D episode

图 4:L2D 6x RGB 摄像头,航点(橙色)和车辆位置(绿色) 指令:直行至停车标志处,然后在你拥有优先通行权时,汇入左侧来车车流

搜索与策展

专家策略 学员策略
来自驾校车队的专家策略的 GPS 轨迹。点击此处查看 L2D 中专家策略的全部范围。 学员策略覆盖与专家策略相同的地理位置。点击此处查看 L2D 中学员策略的全部范围。

我们使用一支由 60 辆 KIA E-niro 驾校车辆组成的车队,在 30 个德国城市中采集了专家和学员策略,这些车辆配备了相同的传感器套件。车队采集的多模态日志是非结构化的,不包含任何任务或指令信息。为了搜索和策展片段,我们通过将 GPS 轨迹与 OSRM 进行地图匹配,并分配来自 OSM 的节点和 路径标签,用提取出的信息来丰富原始多模态日志(见下一节)。 结合LLM,这一丰富化步骤使得能够通过任务的自然语言描述来搜索片段。

OpenStreetMap

为了高效搜索相关片段,我们使用 OSRM 对轨迹进行地图匹配,从而用获得的转向信息来丰富 GPS 轨迹。我们还使用地图匹配后的路线,并利用 OSM 将路线特征、路线限制和路线机动动作(统称为路线任务)分配给轨迹(参见示例 地图)。 附录 A1-A2 提供了关于我们分配给 GPS 轨迹的路线任务的更多细节。

图 5:分配给原始 GPS 轨迹的驾驶任务 (查看地图)

分配给地图匹配路线的路线任务会被赋予开始和结束时间戳(unix 纪元),这相当于车辆进入和离开由该任务定义的地理空间线串或点的时间(图 6)。

开始:驾驶任务(最好在单独的标签页中查看) 结束:驾驶任务(最好在单独的标签页中查看)

图 6:粉色:GNSS 轨迹,蓝色:匹配路线,任务:让行、火车道口和环岛 (查看地图)

多模态搜索

我们按照图 5 中所述,以路线任务对多模态数据执行语义时空索引。 这一步为我们的多模态数据提供了丰富的语义概览。为了在语义空间中根据指令搜索具有代表性的片段,例如“驶向环岛,当你拥有优先通行权时右转”, 我们构建了由 LLM 驱动的多模态自然语言搜索,以在我们所有的驾驶数据(> 1 PetaBytes)中进行搜索并检索匹配的片段。

我们将自然语言查询(指令)构造成与 GPS 导航设备中可用的逐向导航高度相似的形式。为了将指令转换为路线任务, 我们用指令提示 LLM,并引导其输出为一个包含路线特征、 路线限制、路线机动动作的列表,并检索分配给这些路线任务的片段。我们用pydantic 模型对 LLM 的输出进行严格验证,以尽量减少幻觉。 具体来说,我们使用 llama-3.3-70b, 并将输出引导至 pydantic 模型所定义的 schema。为了进一步提高结构化输出的质量, 我们使用了约 30 对已知的自然语言查询和路线任务进行上下文学习。 附录 A. 2 提供了我们所使用的上下文学习对的详细信息。

Natural language search

指令:驶向环岛,当你拥有优先通行权时右转

LeRobot

🤗 上的 L2D 被转换为 LeRobotDataset v2.1 和 LeRobotDataset v3.0 格式,以充分利用 LeRobot 中当前和未来支持的模型。 AI 社区现在可以利用面向真实世界机器人的最先进模仿学习 和强化学习模型,例如 ACT、 Diffusion Policy 和 Pi0,来构建端到端自动驾驶模型。

现有的自动驾驶数据集(见下表)侧重于中间感知和规划任务,如 2D/3D 目标检测、 跟踪、分割和运动规划,这些任务需要高质量的标注,因此难以扩展。 相反,L2D 侧重于端到端学习的发展,即直接从传感器输入学习预测动作(策略)(表 1)。 这些模型利用了互联网预训练的 VLM 和 VLAM。

发布

机器人 AI 模型的性能受限于训练集中片段的质量。 为确保最高质量的片段,我们计划对 L2D 进行分阶段发布。每次新发布我们都会添加 关于片段的额外信息。每个发布 R1+ 都是之前发布的超集,以确保片段历史的清晰。

1. instructions:驾驶任务的自然语言指令 2. task_id:片段到欧盟规定的驾驶任务 Task ID 的映射 3. observation.state.route:来自 OSM 的车道数、转弯车道信息 4. suboptimal:次优策略原因的自然语言描述

HF Nutron Date Episodes Duration Size instructions task_id observation.state.route suboptimal
R0 R0 March 2025 100 0.5+ hr 9,5 GB ☑️
R1 R1 April 2025 1K 5+ hr 95 GB ☑️
R2 R2 May 2025 10K 50+ hr 0.5 TB ☑️ ☑️ ☑️
R3 R3 2025年9月 10万 500+ 小时 5 TB ☑️ ☑️ ☑️
R4 R4 2025年11月 100万 5000+ 小时 90 TB ☑️ ☑️ ☑️ ☑️

表5:L2D发布时间

Yaak 与驾校车队共同收集的整个多模态数据集 规模是计划的 5 倍 超过原定的发布规模。为了推动 L2D 在 R4 之外的发展,我们邀请 AI 社区在我们整个数据集中搜索 并发现各种场景,共同构建一个社区驱动的开源 L2D。 AI 社区现在可以通过我们的自然语言搜索检索数据片段,并将 他们收集的内容提交给社区审核,以便合并到即将发布的版本中。借助 L2D,我们希望为空间智能 开启一个 ImageNet 时刻。

Natural language search

图7:通过自然语言指令搜索片段

将L2D与HF/LeRobot配合使用

对于R0、R1,我们建议使用LeRobotDataset,配合revision=[R0|R1],它可以直接从LeRobot的pypi发布版中使用。对于R2+,请按照此处所述的安装说明操作,或如下从main分支安装,因为我们建议使用StreamingLeRobotDataset,因为R3是Dataset v3.0格式。

# uv for python deps
curl -LsSf https://astral.sh/uv/install.sh | sh
# install python version and pin it
uv init && uv python install 3.12.4 && uv python pin 3.12.4
# add lerobot to deps for R0, R1
uv add lerobot
# for R2+
GIT_LFS_SKIP_SMUDGE=1 uv add "git+https://github.com/huggingface/lerobot.git@main"
uv run python
>>> from lerobot.datasets.streaming_dataset import StreamingLeRobotDataset
# This will load 3 episodes=[0, 9999, 99999], to load all the episodes please remove it
>>> dataset = StreamingLeRobotDataset("yaak-ai/L2D", episodes=[0, 9999, 99999], streaming=True, buffer_size=1000)
>>> dataset.meta
LeRobotDatasetMetadata({
    Repository ID: 'yaak-ai/L2D',
    Total episodes: '100000',
    Total frames: '19042712',
    Features: '['observation.state.vehicle', 'observation.state.lanes', 'observation.state.road', 'observation.state.surface', 'observation.state.max_speed', 'observation.state.precipitation', 'observation.state.conditions', 'observation.state.lighting', 'observation.state.waypoints', 'observation.state.timestamp', 'task.policy', 'task.instructions', 'action.continuous', 'action.discrete', 'timestamp', 'frame_index', 'episode_index', 'index', 'task_index', 'observation.images.left_forward', 'observation.images.front_left', 'observation.images.right_forward', 'observation.images.left_backward', 'observation.images.rear', 'observation.images.right_backward', 'observation.images.map']',
})',

闭环测试

LeRobot驾驶员

对于使用L2D和LeRobot训练的AI模型进行真实世界测试, 我们邀请AI社区从2025年夏季开始提交模型,用于配备安全驾驶员的闭环测试。 AI社区将能够将其模型排队进行闭环测试,在我们的车队上进行,并选择 他们希望模型评估的任务,例如通过环岛或泊车。 模型将在车辆上以推理模式(Jetson AGX或类似设备)运行。 模型将使用LeRobot驾驶员以两种模式驾驶车辆

  1. 按航点驾驶:“遵循航点,遵守驾驶规则和法规”,给定observation.state.vehicle.waypoints
  2. 按语言驾驶:“直行,在人行横道处右转”

其他资源

参考文献

@article{yaak2023novel,
    author = {Yaak team},
    title ={A novel test for autonomy},
    journal = {https://www.yaak.ai/blog/a-novel-test-for-autonomy},
    year = {2023},
}
@article{yaak2023actiongpt,
    author = {Yaak team},
    title ={Next action prediction with GPTs},
    journal = {https://www.yaak.ai/blog/next-action-prediction-with-gpts},
    year = {2023},
}
@article{yaak2024si-01,
    author = {Yaak team},
    title ={Building spatial intelligence part - 1},
    journal = {https://www.yaak.ai/blog/buildling-spatial-intelligence-part1},
    year = {2024},
}
@article{yaak2024si-01,
    author = {Yaak team},
    title ={Building spatial intelligence part - 2},
    journal = {https://www.yaak.ai/blog/building-spatial-intelligence-part-2},
    year = {2024},
}

附录

A.1 路线任务

路线限制列表。我们将OSM中的路线标签视为限制,如果它对策略施加了限制, 例如限速、让行或施工。路线特征是指沿路线的物理结构,例如坡道、 隧道和人行横道。路线操作是指驾驶员在城市环境中正常驾驶车辆时 遇到的不同场景,例如多车道左转和环岛。

类型 名称 分配 任务ID 发布版本
路线限制 CONSTRUCTION VLM R1
路线限制 CROSS_TRAFFIC VLM 4.3.1.3a, 4.3.1.3b, 4.3.1.3d, 4.2.1.3a, 4.2.1.3b, 4.2.1.3d R2
路线限制 INCOMING_TRAFFIC VLM R2
路线限制 LIMITED_ACCESS_WAY OSM R0
路线限制 LIVING_STREET OSM R0
路线限制 LOW_SPEED_REGION (5, 10, 20 kph) OSM R0
路线限制 ONE_WAY OSM 3.2.1.3b R0
路线限制 PEDESTRIANS VLM 7.2.1.3b R1
路线限制 PRIORITY_FORWARD_BACKWARD OSM 3.1.1.3b R0
路线限制 ROAD_NARROWS OSM R0
路线限制 STOP OSM 4.1.1.3b, 4.2.1.3b, 4.3.1.3b R0
路线限制 YIELD OSM 4.1.1.3b, 4.2.1.3b, 4.3.1.3b R0
路线特征 BRIDGE OSM R0
路线特征 CURVED_ROAD OSM(派生) 2.1.1.3a, 2.1.1.3b R0
路线特征 BUS_STOP OSM 7.1.1.3a R0
路线特征 HILL_DRIVE OSM R0
路线特征 LOWERED_KERB OSM R0
路线特征 NARROW_ROAD VLM
路线特征 PARKING OSM R0
路线特征 PEDESTRIAN_CROSSING OSM 7.2.1.3b R0
路线特征 TRAFFIC_CALMER OSM R0
路线特征 TRAIN_CROSSING OSM 6.1.1.3a, 6.1.1.3b R0
路线特征 TRAM_TRACKS OSM 6.2.1.3a R0
路线特征 TUNNEL OSM R0
路线特征 UNCONTROLLED_PEDESTRIAN_CROSSING OSM 7.2.1.3b R0
路线机动 ENTERING_MOVING_TRAFFIC OSM(派生) 4.4.1.3a R0
路线机动 CUTIN VLM R3
路线机动 LANE_CHANGE VLM 1.3.1.3a, 1.3.1.3b R3
路线机动 MERGE_IN_OUT_ON_HIGHWAY OSM 1.1.1.3a, 1.1.1.3b, 1.1.1.3c, 1.2.1.3a, 1.2.1.3b, 1.2.1.3c R0
路线机动 MULTILANE_LEFT OSM(派生) 4.3.1.3b, 4.3.1.3c, 4.3.1.3d R0
路线机动 MULTILANE_RIGHT OSM(派生) 4.2.1.3b, 4.2.1.3c, 4.2.1.3d R0
路线机动 PROTECTED_LEFT OSM(派生) 4.3.1.3c, 4.3.1.3d R0
路线机动 PROTECTED_RIGHT_WITH_BIKE OSM(派生) 4.2.1.3c, 4.2.1.3d R0
路线机动 RIGHT_BEFORE_LEFT OSM(派生) 4.1.1.3a, 4.2.1.3a, 4.3.1.3a R0
路线机动 RIGHT_TURN_ON_RED OSM 4.2.1.3c R0
路线机动 ROUNDABOUT OSM 5.1.1.3a, 5.1.1.3b R0
路线机动 STRAIGHT OSM(派生) 8.1.1.3a R0
路线机动 OVER_TAKE VLM 3.2.1.3a, 3.2.1.3b R4
路线机动 UNPROTECTED_LEFT OSM(派生) 4.3.1.3a, 4.3.1.3b R0
路线机动 UNPROTECTED_RIGHT_WITH_BIKE OSM 4.2.1.3a, 4.2.1.3b R0

OSM = Openstreetmap,VLM= Vision Language Model,derived:基于 OSM 数据的手工规则

A.2 LLM 提示词

使用 groq 配置 LLM 的提示词模板和伪代码,以通过 pydantic 模型将自然语言查询解析为针对路线特征、限制和机动的 结构化预测。自然语言查询的构造方式紧密遵循大多数 GPS 导航设备中可用的逐向导航。

prompt_template: "You are parsing natural language driving instructions into PyDantic Model's output=model_dump_json(exclude_none=True) as JSON. Here are a few example pairs of instructions and structured output: {examples}. Based on these examples parse the instructions. The JSON must use the schema: {schema}"
groq:
model: llama-3.3-70b-versatile
temperature: 0.0
seed: 1334
response_format: json_object
max_sequence_len: 60000

用于上下文学习的示例对(显示 3 / 30),以引导 LLM 的结构化预测,其中 ParsedInstructionModel 是一个 pydantic 模型。

PROMPT_PAIRS = [
(
            "Its snowing. Go straight through the intersection, following the right before left rule at unmarked intersection",
        ParsedInstructionModel(
            	eventSequence=[
                    EventType(speed=FloatValue(value=10.0, operator="LT", unit="kph")),
                EventType(osmRouteManeuver="RIGHT_BEFORE_LEFT"),
                		EventType(speed=FloatValue(value=25.0, operator="LT", unit="kph")),
            	],
            turnSignal="OFF",
            weatherCondition="Snow",
        ),
        ),
(
            "stop at the stop sign, give way to the traffic and then turn right",
        ParsedInstructionModel(
            eventSequence=[
                	EventType(osmRouteRestriction="STOP"),
                EventType(turnSignal="RIGHT"),
                	EventType(speed=FloatValue(value=5.0, operator="LT", unit="kph")),
                EventType(osmRouteManeuver="RIGHT"),
            ],
            ),
    ),
    (
            "parking on a hill in the rain on a two lane road",
        ParsedInstructionModel(
            	osmLaneCount=[IntValue(value=2, operator="EQ")],
                osmRouteFeature=["PARKING", "HILL_DRIVE"],
            weatherCondition="Rain",
            ),
    ),
]

EXAMPLES = ""
for idx, (instructions, parsed) in enumerate(PROMPT_PAIRS):
    parsed_json = parsed.model_dump_json(exclude_none=True)
    update = f"instructions: {instructions.lower()} output: {parsed_json}"
    EXAMPLES += update

from groq import Groq
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))

chat_completion = client.chat.completions.create(
                messages=[
                    {
                        "role": "system",
                        "content": prompt_template.format(examples=EXAMPLES, schema=json.dumps(ParsedInstructionModel.model_json_schema(), indent=2))
                    },
                    {
                        "role": "user",
                        "content": f"instructions : its daytime. drive to the traffic lights and when it turns green make a left turn",
                    },
                ],
                model=config["groq"]["model"],
                temperature=config["groq"]['temperature'],
                stream=False,
                seed=config["groq"]['seed'],
                response_format={"type": config['groq']['response_format']},
            )

            parsed_obj = ParsedInstructionModel.model_validate_json(chat_completion.choices[0].message.content)
            parsed_obj = parsed_obj.model_dump(exclude_none=True)

A.2 数据采集硬件

车载计算:NVIDIA Jetson AGX Xavier

  • 8 核 @ 2/2.2 GHz,16/64 GB DDR5
  • 100 TOPS,8 通道 MIPI CSI-2 D-PHY 2.1(最高 20Gbps)
  • 8x 1080p30 视频编码器(H.265)
  • 电源:10-15V 直流输入,约 90W 功耗
  • 存储:SSD M.2(4 代 PCIe 1x4)
  • Video input 8 cameras:
    • 2x Fakra MATE-AX,带 4x GMSL2,支持同轴电缆供电

车载计算:连接性

  • 多频段、厘米级精度 RTK 模块
  • 5G 连接:M.2 USB3 模块,最大下行速率 3.5Gbps、上行速率 900Mbps,双 SIM
组件 # 供应商 规格
RGB:相机 1 connect-tech 技术规格
RGB:加固相机 5 connect-tech 技术规格
GNSS 1 Taoglas 技术规格
5G 天线 2 2J Antenna 数据手册
NVIDIA Jetson Orin NX - 64 GB 1 Nvidia 技术规格

表 6:用于数据采集的硬件套件信息

完整硬件套件规格可在此处查看

来源:Hugging Face Blog · hf-mirror.com