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

๐Ÿ“ ์š”์•ฝ

L2D(Learning to Drive)๋Š” ๋…์ผ 30๊ฐœ ๋„์‹œ์—์„œ ์ˆ˜์ง‘๋œ 90TB ์ด์ƒ์˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” ์„ธ๊ณ„ ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ์ž์œจ ์ฃผํ–‰ ๋ฐ์ดํ„ฐ์…‹์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ์…‹์€ 6๊ฐœ์˜ HD ์นด๋ฉ”๋ผ์™€ ์ฐจ๋Ÿ‰ ์ƒํƒœ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ์ž์—ฐ์–ด ์ง€์นจ ๋˜๋Š” ๋ฏธ๋ž˜ ์›จ์ดํฌ์ธํŠธ๋ฅผ ์กฐ๊ฑด์œผ๋กœ ํ•˜๋Š” ์ข…๋‹จ๊ฐ„ ๋ชจ๋ธ ํ›ˆ๋ จ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. L2D๋Š” ์šด์ „ ๊ฐ•์‚ฌ์˜ ์ „๋ฌธ๊ฐ€ ์ •์ฑ…๊ณผ ์—ฐ์Šต ์šด์ „์ž์˜ ํ•™์ƒ ์ •์ฑ…์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋ฉฐ, ์ด๋Š” ๋‹ค์–‘ํ•œ ์šด์ „ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ์…‹์€ LeRobot ํŒŒ์ดํ”„๋ผ์ธ๊ณผ์˜ ํ†ตํ•ฉ์„ ์ง€์›ํ•˜์—ฌ ๋กœ๋ณดํ‹ฑ์Šค AI ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ณต๊ฐ„ ์ง€๋Šฅ ๋ชจ๋ธ ๊ฐœ๋ฐœ์„ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.


TL;DR of L2D, the world's largest self-driving dataset!

  • 90+ ํ…Œ๋ผ๋ฐ”์ดํŠธ์˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ (5000์‹œ๊ฐ„ ์ด์ƒ ์ฃผํ–‰) 30๊ฐœ ๋…์ผ ๋„์‹œ์—์„œ ์ˆ˜์ง‘
  • 6๊ฐœ์˜ ์ฃผ๋ณ€ HD ์นด๋ฉ”๋ผ ๋ฐ ์™„์ „ํ•œ ์ฐจ๋Ÿ‰ ์ƒํƒœ: ์†๋„/๋ฐฉํ–ฅ/GPS/IMU
  • ์—ฐ์†: ๊ฐ€์†/์ œ๋™/์กฐํ–ฅ ๋ฐ ์ด์‚ฐ์  ๋™์ž‘: ๊ธฐ์–ด/๋ฐฉํ–ฅ ์ง€์‹œ๋“ฑ
  • ํ™˜๊ฒฝ ์ƒํƒœ: ์ฐจ์„  ์ˆ˜, ๋„๋กœ ์œ ํ˜• (๊ณ ์†๋„๋กœ | ์ฃผ๊ฑฐ ์ง€์—ญ), ๋„๋กœ ํ‘œ๋ฉด (์•„์ŠคํŒ”ํŠธ, ์ž๊ฐˆ, ํŒ์„), ์ตœ๋Œ€ ์†๋„ ์ œํ•œ.
  • ํ™˜๊ฒฝ ์กฐ๊ฑด: ๊ฐ•์ˆ˜๋Ÿ‰, ์ƒํƒœ (๋ˆˆ, ๋ง‘์Œ, ๋น„), ์กฐ๋ช… (์ƒˆ๋ฒฝ, ๋‚ฎ, ํ™ฉํ˜ผ)
  • ์ž์—ฐ์–ด ์ง€์นจ ๋˜๋Š” ๋ฏธ๋ž˜ ์›จ์ดํฌ์ธํŠธ๋ฅผ ์กฐ๊ฑด์œผ๋กœ ํ•˜๋Š” ์ข…๋‹จ๊ฐ„ ๋ชจ๋ธ ํ›ˆ๋ จ์„ ์œ„ํ•ด ์„ค๊ณ„
  • ์ž์—ฐ์–ด ์ง€์นจ. F.ex "์‹ ํ˜ธ๋“ฑ์ด ๋…น์ƒ‰์œผ๋กœ ๋ฐ”๋€Œ๋ฉด, ํŠธ๋žจ ์„ ๋กœ๋ฅผ ๋„˜์–ด ์›ํ˜• ๊ต์ฐจ๋กœ๋ฅผ ํ†ต๊ณผํ•˜์„ธ์š”" ๊ฐ ์—ํ”ผ์†Œ๋“œ๋ณ„
  • ๋ฏธ๋ž˜ ์›จ์ดํฌ์ธํŠธ OpenStreetMap ๊ทธ๋ž˜ํ”„์— ์Šค๋ƒ…, ์ถ”๊ฐ€๋กœ ์กฐ๊ฐ๋„ ๋ Œ๋”๋ง
  • ์ „๋ฌธ๊ฐ€ (์šด์ „ ๊ฐ•์‚ฌ) ๋ฐ ํ•™์ƒ (์—ฐ์Šต ์šด์ „์ž) ์ •์ฑ…

State-of-the art Vision Language Models ๋ฐ Large Language Models๋Š” ์ธํ„ฐ๋„ท์—์„œ ์ˆ˜์ง‘๋œ ์˜คํ”ˆ ์†Œ์Šค ์ด๋ฏธ์ง€-ํ…์ŠคํŠธ ์ฝ”ํผ์Šค๋กœ ํ›ˆ๋ จ๋˜๋ฉฐ, ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค AI์˜ ์ตœ๊ทผ ๊ฐ€์†ํ™”๋ฅผ ์ฃผ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜์‹ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋กœ๋ณดํ‹ฑ์Šค ๋ฐ ์ž๋™์ฐจ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋‚ด์—์„œ ์ข…๋‹จ๊ฐ„ AI์˜ ์ฑ„ํƒ์€ ์—ฌ์ „ํžˆ ๋‚ฎ์œผ๋ฉฐ, ์ฃผ๋กœ OXE์™€ ๊ฐ™์€ ๊ณ ํ’ˆ์งˆ์˜ ๋Œ€๊ทœ๋ชจ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ์…‹ ๋ถ€์กฑ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋กœ๋ณดํ‹ฑ์Šค AI์˜ ์ž ์žฌ๋ ฅ์„ ์—ด๊ธฐ ์œ„ํ•ด Yaak๋Š” ๐Ÿค—์˜ LeRobot ํŒ€๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ ๋กœ๋ณดํ‹ฑ์Šค AI ์ปค๋ฎค๋‹ˆํ‹ฐ์— Learning to Drive (L2D)๋ฅผ ๋ฐœํ‘œํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. L2D๋Š” ์ž๋™์ฐจ ๋„๋ฉ”์ธ์„ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๊ณต๊ฐ„ ์ง€๋Šฅ ๊ตฌ์ถ•์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์„ธ๊ณ„ ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ์…‹์ด๋ฉฐ, ๐Ÿค—์˜ LeRobot ํ›ˆ๋ จ ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ๋ชจ๋ธ์„ ์œ„ํ•œ ์ตœ์ƒ์˜ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค ๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ๋ชจ๋ฒ” ์‚ฌ๋ก€์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„, Yaak๋Š” AI ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹ (> 1 ํŽ˜ํƒ€๋ฐ”์ดํŠธ)์—์„œ ์ƒˆ๋กœ์šด ์—ํ”ผ์†Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ฐœ๊ฒฌํ•˜๊ณ , ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ์ปฌ๋ ‰์…˜์„ ํ์— ๋„ฃ์–ด ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค (R5+)์— ๋ณ‘ํ•ฉํ•˜๋„๋ก ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

Dataset Observation State Actions Task/Instructions Episodes Duration (hr) Size TB
WAYMO RGB (5x) 2030 11.3 0.5*
NuScenes RGB (6x) GPS/IMU 1000 5.5 0.67*
MAN RGB (4x) GPS/IMU 747 4.15 0.17*
ZOD RGB (1x) GPS/IMU/CAN ☑️ 1473 8.2 0.32*
COMMA RGB (1x) GPS/IMU/CAN ☑️ 2019 33 0.1
L2D (R4) RGB (6x) GPS/IMU/CAN ☑️ ☑️ 1000000 5000+ 90+

Table 1: Open source self-driving datasets (*excluding lidar and radar). Source

L2D๋Š” 3๋…„ ๋™์•ˆ 30๊ฐœ ๋…์ผ ๋„์‹œ์—์„œ ์šด์ „ ํ•™๊ต์—์„œ ์šด์˜ํ•˜๋Š” 60๋Œ€์˜ EV์— ์„ค์น˜๋œ ๋™์ผํ•œ ์„ผ์„œ ์Šค์œ„ํŠธ๋กœ ์ˆ˜์ง‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. L2D์˜ ์ •์ฑ…์€ ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ์šด์ „ ๊ฐ•์‚ฌ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ์ „๋ฌธ๊ฐ€ ์ •์ฑ…๊ณผ ์—ฐ์Šต ์šด์ „์ž๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ํ•™์ƒ ์ •์ฑ…์ž…๋‹ˆ๋‹ค. ๋‘ ์ •์ฑ… ๊ทธ๋ฃน ๋ชจ๋‘ ์šด์ „ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์—ฐ์–ด ์ง€์นจ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "์šฐ์„ ๊ถŒ์ด ์žˆ์„ ๋•Œ, ์›ํ˜• ๊ต์ฐจ๋กœ๋ฅผ ํ†ต๊ณผํ•˜์—ฌ ๋ณดํ–‰์ž ํšก๋‹จ๋ณด๋„๋ฅผ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ๊ฑด๋„ˆ์„ธ์š”."

Expert policy — Driving instructor Student policy — Learner driver

Fig 1: Visualization: Nutron (3 of 6 cameras shown for clarity) Instructions: “When you have the right of way, drive through the roundabout and take the third exit”.

์ „๋ฌธ๊ฐ€ ์ •์ฑ…์€ ์šด์ „ ์‹ค์ˆ˜๊ฐ€ ์—†์œผ๋ฉฐ ์ตœ์ ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๋ฐ˜๋ฉด, ํ•™์ƒ ์ •์ฑ…์€ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ 2).

Fig 2: Student policy with jerky steering to prevent going into lane of the incoming truck

๋‘ ๊ทธ๋ฃน ๋ชจ๋‘ ์šด์ „ ๋ฉดํ—ˆ ์ทจ๋“์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜์ ์ธ ๋ชจ๋“  ์šด์ „ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. EU ๋‚ด (๋…์ผ์–ด ๋ฒ„์ „), ์˜ˆ๋ฅผ ๋“ค์–ด ์ถ”์›”, ์›ํ˜• ๊ต์ฐจ๋กœ ๋ฐ ๊ธฐ์ฐป๊ธธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค (์•„๋ž˜ R3+ ์ฐธ์กฐ)์—์„œ๋Š” ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ ํ•™์ƒ ์ •์ฑ…์— ๋Œ€ํ•ด ์„ฑ๋Šฅ ์ €ํ•˜์— ๋Œ€ํ•œ ์ž์—ฐ์–ด ์ถ”๋ก ์ด ํฌํ•จ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. F.ex "์ง„์ž…ํ•˜๋Š” ์ฐจ๋Ÿ‰ ๊ทผ์ฒ˜์—์„œ์˜ ์กฐํ–ฅ ํ•ธ๋“ค๋ง์˜ ๋ถ€์ •ํ™•/๊ฑฐ์นœ ์กฐ์ž‘" (๊ทธ๋ฆผ 2)

Expert: Driving Instructor Student: Learner Driver
Expert policies are collected when driving instructors are operating the vehicle. The driving instructors have at least 10K+ hours of experience in teaching learner drivers. The expert policies group covers the same driving tasks as the student policies group. Student policies are collected when learner drivers are operating the vehicle. Learner drivers have varying degrees of experience (10–50 hours). By design, learner drivers cover all EU-mandated driving tasks, from high-speed lane changes on highways to navigating narrow pedestrian zones.

L2D: Learning to Drive

L2D (R2+)๋Š” AI ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ข…๋‹จ๊ฐ„ ๊ณต๊ฐ„ ์ง€๋Šฅ ํ›ˆ๋ จ์„ ์œ„ํ•œ ๋…ํŠนํ•˜๊ณ  ๋‹ค์–‘ํ•œ '์—ํ”ผ์†Œ๋“œ'๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์˜คํ”ˆ ์†Œ์Šค ์ž์œจ ์ฃผํ–‰ ๋ฐ์ดํ„ฐ์…‹์ด ๋˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ŠคํŽ™ํŠธ๋Ÿผ์˜ ์šด์ „ ์ •์ฑ… (ํ•™์ƒ ๋ฐ ์ „๋ฌธ๊ฐ€)์„ ํฌํ•จํ•จ์œผ๋กœ์จ L2D๋Š” ์ฐจ๋Ÿ‰์˜ ์•ˆ์ „ํ•œ ์šดํ–‰์˜ ๋ณต์žก์„ฑ์„ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ์ค‘์ธ ์ž์œจ ์ฃผํ–‰ ์ฐจ๋Ÿ‰์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ ์กฐ๊ฑด, ์„ผ์„œ ์˜ค๋ฅ˜, ๊ฑด์„ค ํ˜„์žฅ ๋ฐ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ตํ†ต ์‹ ํ˜ธ๋ฅผ ํฌํ•จํ•˜๋Š” ์—ํ”ผ์†Œ๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ „๋ฌธ๊ฐ€ ๋ฐ ํ•™์ƒ ์ •์ฑ… ๊ทธ๋ฃน ๋ชจ๋‘ ์•„๋ž˜ ํ‘œ์— ์„ค๋ช…๋œ ๋™์ผํ•œ ์„ผ์„œ ์„ค์ •์œผ๋กœ ์บก์ฒ˜๋ฉ๋‹ˆ๋‹ค. ์—ฌ์„ฏ ๊ฐœ์˜ RGB ์นด๋ฉ”๋ผ๊ฐ€ ์ฐจ๋Ÿ‰์˜ 360๋„ ์ปจํ…์ŠคํŠธ๋ฅผ ์บก์ฒ˜ํ•˜๊ณ , ์˜จ๋ณด๋“œ GPS๋Š” ์ฐจ๋Ÿ‰ ์œ„์น˜์™€ ๋ฐฉํ–ฅ์„ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. IMU๋Š” ์ฐจ๋Ÿ‰ ๋™์—ญํ•™์„ ์ˆ˜์ง‘ํ•˜๋ฉฐ, ์ฐจ๋Ÿ‰์˜ CAN ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์†๋„, ๊ฐ€์†/์ œ๋™ ํŽ˜๋‹ฌ, ์กฐํ–ฅ ๊ฐ๋„, ๋ฐฉํ–ฅ ์ง€์‹œ๋“ฑ ๋ฐ ๊ธฐ์–ด๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น Unix epoch ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์œ ํ˜•์„ ์™ผ์ชฝ ์ „๋ฐฉ ์นด๋ฉ”๋ผ(observation.images.front_left)์™€ ๋™๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ •ํ™•๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋ฅผ ๋ณด๊ฐ„ํ–ˆ์œผ๋ฉฐ(ํ‘œ 2 ์ฐธ์กฐ), ์ตœ์ข…์ ์œผ๋กœ ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ 10Hz๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

Fig 3: Multimodal data visualization with Visualization: Nutron (only 3 of 6 cameras shown for clarity)

Modality LeRobotDataset v3.0 key Shape alignment[tol][strategy]
image (x6) observation.images.front_left[left_forward,..] N3HW asof[20ms][nearest]
speed observation.state.vehicle.speed N1 interp
heading 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
waypoints observation.state.vehicle.waypoints N2L asof[10m][nearest]
timestamp observation.state.timestamp N1 observation.images.front_left
gas action.continous.gas_pedal_normalized N1 interp
brake action.continous.brake_pedal_normalized N1 interp
steering action.continous.steering_angle_normalized N1 interp
turn signal action.discrete.turn_signal N1 asof[100ms][nearest]
gear action.discrete.gear N1 asof[100ms][nearest]
language task.policy N1
language task.instructions N1
lane count observation.state.lanes N1 asof[500ms][nearest]
road type observation.state.road N1 asof[500ms][nearest]
road surface observation.state.surface N1 asof[500ms][nearest]
max speed observation.state.max_speed N1 asof[500ms][nearest]
precipitation observation.state.precipitation N1 asof[1hr][nearest]
conditions observation.state.conditions N1 asof[1hr][nearest]
lighting observation.state.lighting N1 asof[1hr][nearest]

Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.

L2D๋Š” ๊ณต์‹ ๋…์ผ ์šด์ „ ๊ณผ์ œ ์นดํƒˆ๋กœ๊ทธ (์ž์„ธํ•œ ๋ฒ„์ „)์˜ ์šด์ „ ๊ณผ์ œ, ์šด์ „ ํ•˜์œ„ ๊ณผ์ œ ๋ฐ ๊ณผ์ œ ์ •์˜๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“  ์—ํ”ผ์†Œ๋“œ์— ๊ณ ์œ ํ•œ ๊ณผ์ œ ID์™€ ์ž์—ฐ์–ด ์ง€์นจ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. LeRobot:task๋Š” ๋ชจ๋“  ์—ํ”ผ์†Œ๋“œ์— ๋Œ€ํ•ด "๊ตํ†ต ๊ทœ์น™ ๋ฐ ๊ทœ์ •์„ ์ค€์ˆ˜ํ•˜๋ฉด์„œ ์›จ์ดํฌ์ธํŠธ๋ฅผ ๋”ฐ๋ผ๊ฐ€์„ธ์š”"๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒ˜ํ”Œ ์—ํ”ผ์†Œ๋“œ, ํ•ด๋‹น ์ž์—ฐ์–ด ์ง€์นจ, ์šด์ „ ๊ณผ์ œ ๋ฐ ํ•˜์œ„ ๊ณผ์ œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ „๋ฌธ๊ฐ€ ๋ฐ ํ•™์ƒ ์ •์ฑ… ๋ชจ๋‘ ์œ ์‚ฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•ด ๋™์ผํ•œ ๊ณผ์ œ ID๋ฅผ ๊ฐ–์ง€๋งŒ, ์ง€์นจ์€ ์—ํ”ผ์†Œ๋“œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

Episode Instructions Driving task Driving sub-task Task Definition Task ID
Visualization LeRobot Visualization Nutron Drive straight through going around the parked delivery truck and yield to the incoming traffic 3 Passing, overtaking 3.1 Passing obstacles and narrow spots This sub-task involves passing obstacles or navigating narrow roads while following priority rules. 3.1.1.3a Priority regulation without traffic signs (standard)
Visualization LeRobot Visualization Nutron Drive through the unprotected left turn yielding to through traffic 4 Intersections, junctions, entering moving traffic 4.1 Crossing intersections & junctions This sub-task involves crossing intersections and junctions while following priority rules and observing other traffic. 4.1.1.3a Right before left
Visualization LeRobot Visualization Nutron Drive straight up to the yield sign and take first exit from the roundabout 5 Roundabouts 5.1 Roundabouts This sub-task involves safely navigating roundabouts, understanding right-of-way rules, and positioning correctly. 5.1.1.3a With one lane

Table 3: Sample episodes in L2D, their instructions and Task ID derived from EU driving task catalog

์ฐจ๋Ÿ‰ ์œ„์น˜ (GPS), Open-Source Routing Machine, OpenStreetMap ๋ฐ LLM (Large Language Model) (์•„๋ž˜ ์ฐธ์กฐ)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์นจ๊ณผ ์›จ์ดํฌ์ธํŠธ์˜ ๊ตฌ์„ฑ์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ž์—ฐ์–ด ์ฟผ๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ GPS ๋‚ด๋น„๊ฒŒ์ด์…˜ ์žฅ์น˜์—์„œ ์ œ๊ณต๋˜๋Š” ํ„ด๋ฐ”์ดํ„ด(turn-by-turn) ๋‚ด๋น„๊ฒŒ์ด์…˜์„ ๋ฉด๋ฐ€ํžˆ ๋”ฐ๋ฅด๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์›จ์ดํฌ์ธํŠธ(๊ทธ๋ฆผ 4)๋Š” ์›์‹œ GPS ์ถ”์ ์„ OSM ๊ทธ๋ž˜ํ”„์— ๋งต ๋งค์นญํ•˜๊ณ  ์ฐจ๋Ÿ‰์˜ ํ˜„์žฌ ์œ„์น˜(๋…น์ƒ‰)์—์„œ 100๋ฏธํ„ฐ ๋ฒ”์œ„์˜ 10๊ฐœ ๊ท ์ผํ•œ ๊ฐ„๊ฒฉ์˜ ์ง€์ (์ฃผํ™ฉ์ƒ‰)์„ ์ƒ˜ํ”Œ๋งํ•˜์—ฌ ๊ณ„์‚ฐ๋˜๋ฉฐ, ์ด๋Š” ๋“œ๋ผ์ด๋ธŒ ๋ฐ”์ด ์›จ์ดํฌ์ธํŠธ(drive-by-waypoints) ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

A sample L2D episode

Fig 4: L2D 6x RGB cameras, waypoints (orange) and vehicle location (green) Instructions: drive straight up to the stop stop sign and then when you have right of way, merge with the moving traffic from the left

Search & Curation

Expert policies Student policies
GPS traces from the expert policies collected from the driving school fleet. Click here to see the full extent of expert policies in L2D. Student policies cover the same geographical locations as expert policies. Click here to see the full extent of student policies in L2D.

์šด์ „ ํ•™๊ต ์ฐจ๋Ÿ‰ 60๋Œ€๋กœ ๊ตฌ์„ฑ๋œ ์ฐจ๋Ÿ‰์œผ๋กœ ์ „๋ฌธ๊ฐ€ ๋ฐ ํ•™์ƒ ์ •์ฑ…์„ ์ˆ˜์ง‘ํ–ˆ์œผ๋ฉฐ, 30๊ฐœ ๋…์ผ ๋„์‹œ์—์„œ ๋™์ผํ•œ ์„ผ์„œ ์Šค์œ„ํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐจ๋Ÿ‰์œผ๋กœ ์ˆ˜์ง‘๋œ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋กœ๊ทธ๋Š” ๋น„์ •ํ˜•ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ์ž‘์—… ๋˜๋Š” ์ง€์นจ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์—ํ”ผ์†Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด OSRM์„ ์‚ฌ์šฉํ•˜์—ฌ GPS ์ถ”์ ์„ ๋งต ๋งค์นญํ•˜์—ฌ ์ถ”์ถœํ•œ ์ •๋ณด๋กœ ์›์‹œ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋กœ๊ทธ๋ฅผ ํ’๋ถ€ํ•˜๊ฒŒ ํ•˜๊ณ  OSM์—์„œ ๋…ธ๋“œ ๋ฐ ์›จ์ด ํƒœ๊ทธ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค (๋‹ค์Œ ์„น์…˜ ์ฐธ์กฐ). LLM๊ณผ ๊ฒฐํ•ฉ๋œ ์ด ํ’๋ถ€ํ™” ๋‹จ๊ณ„๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ์ž์—ฐ์–ด ์„ค๋ช…์„ ํ†ตํ•ด ์—ํ”ผ์†Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

OpenStreetMap

๊ด€๋ จ ์—ํ”ผ์†Œ๋“œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด OSRM์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งต ๋งค์นญ์„ ํ†ตํ•ด ์–ป์€ ํšŒ์ „ ์ •๋ณด๋ฅผ GPS ์ถ”์ ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งต ๋งค์นญ๋œ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  OSM์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๋กœ ๊ธฐ๋Šฅ, ๊ฒฝ๋กœ ์ œํ•œ ๋ฐ ๊ฒฝ๋กœ ๊ธฐ๋™ (์ด์นญํ•˜์—ฌ ๊ฒฝ๋กœ ์ž‘์—…์ด๋ผ๊ณ  ํ•จ)์„ ๊ถค์ ์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค (์ƒ˜ํ”Œ ์ง€๋„ ์ฐธ์กฐ). ๋ถ€๋ก A1-A2๋Š” GPS ์ถ”์ ์— ํ• ๋‹นํ•˜๋Š” ๊ฒฝ๋กœ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Fig 5: Driving tasks assigned to raw GPS trace (View map)

๋งต ๋งค์นญ๋œ ๊ฒฝ๋กœ์— ํ• ๋‹น๋˜๋Š” ๊ฒฝ๋กœ ์ž‘์—…์—๋Š” ์‹œ์ž‘ ๋ฐ ์ข…๋ฃŒ ํƒ€์ž„์Šคํƒฌํ”„ (Unix epoch)๊ฐ€ ํ• ๋‹น๋˜๋ฉฐ, ์ด๋Š” ์ฐจ๋Ÿ‰์ด ์ž‘์—…์— ์ •์˜๋œ ์ง€๋ฆฌ ๊ณต๊ฐ„ ๋ผ์ธ์ŠคํŠธ๋ง ๋˜๋Š” ์ง€์ ์— ๋“ค์–ด๊ฐ€๊ณ  ๋‚˜๊ฐ€๋Š” ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(๊ทธ๋ฆผ 6).

Begin: Driving task (Best viewed in a separate tab) End: Driving task (Best viewed in a separate tab)

Fig 6: Pink: GNSS trace, Blue: Matched route, tasks: Yield, Train crossing and Roundabout (View Map)

Multimodal search

๊ทธ๋ฆผ 5์— ์„ค๋ช…๋œ ๊ฒฝ๋กœ ์ž‘์—…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์˜๋ฏธ๋ก ์  ์‹œ๊ณต๊ฐ„ ์ธ๋ฑ์‹ฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๋Š” ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ’๋ถ€ํ•œ ์˜๋ฏธ๋ก ์  ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "์›ํ˜• ๊ต์ฐจ๋กœ๊นŒ์ง€ ์šด์ „ํ•˜๊ณ  ์šฐ์„ ๊ถŒ์ด ์žˆ์„ ๋•Œ ์šฐํšŒ์ „ํ•˜์„ธ์š”"์™€ ๊ฐ™์€ ์ง€์นจ์œผ๋กœ ์˜๋ฏธ๋ก ์  ๊ณต๊ฐ„ ๋‚ด์—์„œ ๋Œ€ํ‘œ์ ์ธ ์—ํ”ผ์†Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด LLM ๊ธฐ๋ฐ˜์˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ž์—ฐ์–ด ๊ฒ€์ƒ‰์„ ๊ตฌ์ถ•ํ•˜์—ฌ ๋ชจ๋“  ์ฃผํ–‰ ๋ฐ์ดํ„ฐ (> 1 ํŽ˜ํƒ€๋ฐ”์ดํŠธ) ๋‚ด์—์„œ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ผ์น˜ํ•˜๋Š” ์—ํ”ผ์†Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

GPS ๋‚ด๋น„๊ฒŒ์ด์…˜ ์žฅ์น˜์—์„œ ์ œ๊ณต๋˜๋Š” ํ„ด๋ฐ”์ดํ„ด ๋‚ด๋น„๊ฒŒ์ด์…˜๊ณผ ์œ ์‚ฌํ•˜๋„๋ก ์ž์—ฐ์–ด ์ฟผ๋ฆฌ(์ง€์นจ)๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€์นจ์„ ๊ฒฝ๋กœ ์ž‘์—…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด LLM์— ์ง€์นจ์„ ํ”„๋กฌํ”„ํŠธํ•˜๊ณ  ์ถœ๋ ฅ์„ ์Šคํ‹ฐ์–ด๋งํ•˜์—ฌ ๊ฒฝ๋กœ ๊ธฐ๋Šฅ, ๊ฒฝ๋กœ ์ œํ•œ ๋ฐ ๊ฒฝ๋กœ ๊ธฐ๋™ ๋ชฉ๋ก์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ํ•ด๋‹น ๊ฒฝ๋กœ ์ž‘์—…์— ํ• ๋‹น๋œ ์—ํ”ผ์†Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. pydantic ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ LLM์˜ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ์—„๊ฒฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ™˜๊ฐ์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ llama-3.3-70b๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  pydantic ๋ชจ๋ธ๋กœ ์ •์˜๋œ ์Šคํ‚ค๋งˆ๋กœ ์ถœ๋ ฅ์„ ์Šคํ‹ฐ์–ด๋งํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐํ™”๋œ ์ถœ๋ ฅ์˜ ํ’ˆ์งˆ์„ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ธ์ปจํ…์ŠคํŠธ ํ•™์Šต์„ ์œ„ํ•ด ์•ฝ 30์Œ์˜ ์•Œ๋ ค์ง„ ์ž์—ฐ์–ด ์ฟผ๋ฆฌ์™€ ๊ฒฝ๋กœ ์ž‘์—…์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ€๋ก A. 2๋Š” ์‚ฌ์šฉํ•œ ์ธ์ปจํ…์ŠคํŠธ ํ•™์Šต ์Œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Natural language search

Instructions: Drive up to the roundabout and when you have the right of way turn right

LeRobot

๐Ÿค—์˜ L2D๋Š” LeRobotDataset v2.1 ๋ฐ LeRobotDataset v3.0 ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด LeRobot ๋‚ด์—์„œ ์ง€์›๋˜๋Š” ํ˜„์žฌ ๋ฐ ํ–ฅํ›„ ๋ชจ๋ธ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AI ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ด์ œ ACT, Diffusion Policy ๋ฐ Pi0์™€ ๊ฐ™์€ ์‹ค์ œ ๋กœ๋ด‡ ๊ณตํ•™์„ ์œ„ํ•œ ์ตœ์ฒจ๋‹จ ๋ชจ๋ฐฉ ํ•™์Šต ๋ฐ ๊ฐ•ํ™” ํ•™์Šต ๋ชจ๋ธ์„ ํ™œ์šฉํ•˜์—ฌ ์ข…๋‹จ๊ฐ„ ์ž์œจ ์ฃผํ–‰ ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด์˜ ์ž์œจ ์ฃผํ–‰ ๋ฐ์ดํ„ฐ์…‹(์•„๋ž˜ ํ‘œ)์€ 2D/3D ๊ฐ์ฒด ๊ฐ์ง€, ์ถ”์ , ์„ธ๋ถ„ํ™” ๋ฐ ๋ชจ์…˜ ๊ณ„ํš๊ณผ ๊ฐ™์€ ์ค‘๊ฐ„ ์ธ์‹ ๋ฐ ๊ณ„ํš ์ž‘์—…์— ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์žˆ์–ด ๊ณ ํ’ˆ์งˆ ์ฃผ์„์ด ํ•„์š”ํ•˜๊ณ  ํ™•์žฅํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  L2D๋Š” ์„ผ์„œ ์ž…๋ ฅ(ํ‘œ 1)์—์„œ ์ง์ ‘ ํ–‰๋™(์ •์ฑ…)์„ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•˜๋Š” ์ข…๋‹จ๊ฐ„ ํ•™์Šต ๊ฐœ๋ฐœ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋ธ์€ ์ธํ„ฐ๋„ท์—์„œ ์‚ฌ์ „ ํ›ˆ๋ จ๋œ VLM ๋ฐ VLAM์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

Releases

๋กœ๋ณดํ‹ฑ์Šค AI ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์€ ํ›ˆ๋ จ ์„ธํŠธ ๋‚ด ์—ํ”ผ์†Œ๋“œ์˜ ํ’ˆ์งˆ์— ์˜ํ•ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์ตœ๊ณ  ํ’ˆ์งˆ์˜ ์—ํ”ผ์†Œ๋“œ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด L2D์— ๋Œ€ํ•œ ๋‹จ๊ณ„์  ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ณ„ํšํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋งˆ๋‹ค ์—ํ”ผ์†Œ๋“œ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฆด๋ฆฌ์Šค R1+๋Š” ๊นจ๋—ํ•œ ์—ํ”ผ์†Œ๋“œ ๊ธฐ๋ก์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „ ๋ฆด๋ฆฌ์Šค์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.

1. instructions: ์šด์ „ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์—ฐ์–ด ์ง€์นจ 2. task_id: ์—ํ”ผ์†Œ๋“œ๋ฅผ EU ์˜๋ฌด ์šด์ „ ๊ณผ์ œ 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 Sept 2025 100K 500+ hr 5 TB ☑️ ☑️ ☑️
R4 R4 Nov 2025 1M 5000+ hr 90 TB ☑️ ☑️ ☑️ ☑️

Table 5: L2D release dates

์šด์ „ ํ•™๊ต ์ฐจ๋Ÿ‰์œผ๋กœ Yaak๊ฐ€ ์ˆ˜์ง‘ํ•œ ์ „์ฒด ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ์…‹์€ ๊ณ„ํš๋œ ๋ฆด๋ฆฌ์Šค๋ณด๋‹ค 5๋ฐฐ ๋” ํฝ๋‹ˆ๋‹ค. R4๋ฅผ ๋„˜์–ด L2D์˜ ์„ฑ์žฅ์„ ๋”์šฑ ๋ฐœ์ „์‹œํ‚ค๊ธฐ ์œ„ํ•ด, AI ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ „์ฒด ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜ ๋‚ด์—์„œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ฐœ๊ฒฌํ•˜๋ฉฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„ ์˜คํ”ˆ ์†Œ์Šค L2D๋ฅผ ๊ตฌ์ถ•ํ•˜๋„๋ก ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. AI ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ด์ œ ์ž์—ฐ์–ด ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์—ํ”ผ์†Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ์ปฌ๋ ‰์…˜์„ ํ์— ๋„ฃ์–ด ๋‹ค๊ฐ€์˜ค๋Š” ๋ฆด๋ฆฌ์Šค์— ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. L2D๋ฅผ ํ†ตํ•ด ๊ณต๊ฐ„ ์ง€๋Šฅ์„ ์œ„ํ•œ ImageNet ์ˆœ๊ฐ„์„ ์—ด๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/193_l2d/traffic-lights-left-turn-hf-01.gif" alt="Natural language search" style="width: 80%;">

Fig 7: Searching episodes by natural language instructions

Using L2D with HF/LeRobot

R0, R1์˜ ๊ฒฝ์šฐ LeRobotDataset์„ revision=[R0|R1]๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Š” LeRobot์˜ pypi ๋ฆด๋ฆฌ์Šค์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. R2+์˜ ๊ฒฝ์šฐ, R3์ด Dataset v3.0 ํ˜•์‹์ด๊ธฐ ๋•Œ๋ฌธ์— StreamingLeRobotDataset ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜๋ฉฐ, ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ์„ค์น˜ ์ง€์นจ์„ ๋”ฐ๋ฅด๊ฑฐ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฉ”์ธ์—์„œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

# 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']',
})',

Closed Loop Testing

LeRobot driver

L2D ๋ฐ LeRobot์œผ๋กœ ํ›ˆ๋ จ๋œ AI ๋ชจ๋ธ์˜ ์‹ค์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด, 2025๋…„ ์—ฌ๋ฆ„๋ถ€ํ„ฐ ์•ˆ์ „ ์šด์ „์ž์™€ ํ•จ๊ป˜ํ•˜๋Š” ํ์‡„ ๋ฃจํ”„ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ชจ๋ธ ์ œ์ถœ์„ ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. AI ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๋‹น์‚ฌ ์ฐจ๋Ÿ‰์—์„œ ํ์‡„ ๋ฃจํ”„ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋ชจ๋ธ์„ ํ์— ๋„ฃ๊ณ , ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ•  ์ž‘์—…(์˜ˆ: ์›ํ˜• ๊ต์ฐจ๋กœ ํƒ์ƒ‰ ๋˜๋Š” ์ฃผ์ฐจ)์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์€ ์ฐจ๋Ÿ‰ ์˜จ๋ณด๋“œ์—์„œ ์ถ”๋ก  ๋ชจ๋“œ(Jetson AGX ๋˜๋Š” ์œ ์‚ฌ ์ œํ’ˆ)๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์€ ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ์—์„œ LeRobot ๋“œ๋ผ์ด๋ฒ„๋กœ ์ฐจ๋Ÿ‰์„ ์šด์ „ํ•ฉ๋‹ˆ๋‹ค.

  1. drive-by-waypoints: "observation.state.vehicle.waypoints์— ์ œ๊ณต๋œ '์šด์ „ ๊ทœ์น™ ๋ฐ ๊ทœ์ •์„ ์ค€์ˆ˜ํ•˜๋ฉด์„œ ์›จ์ดํฌ์ธํŠธ๋ฅผ ๋”ฐ๋ผ๊ฐ€์„ธ์š”'".
  2. drive-by-language: "์ง์ง„ํ•˜๊ณ  ํšก๋‹จ๋ณด๋„์—์„œ ์šฐํšŒ์ „ํ•˜์„ธ์š”".

Additional Resources

References

@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},
}

Appendix

A.1 Route tasks

๊ฒฝ๋กœ ์ œํ•œ ๋ชฉ๋ก. OSM์˜ ๊ฒฝ๋กœ ํƒœ๊ทธ๋ฅผ ์†๋„ ์ œํ•œ, ์–‘๋ณด ๋˜๋Š” ๊ณต์‚ฌ์™€ ๊ฐ™์ด ์ •์ฑ…์— ์ œํ•œ์„ ๋ถ€๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ์ œํ•œ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ ๊ธฐ๋Šฅ์€ ๊ฒฝ์‚ฌ, ํ„ฐ๋„ ๋ฐ ํšก๋‹จ๋ณด๋„์™€ ๊ฐ™์ด ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ์žˆ๋Š” ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ๋ฌผ์ž…๋‹ˆ๋‹ค. ๊ฒฝ๋กœ ๊ธฐ๋™์€ ์šด์ „์ž๊ฐ€ ๋„์‹œ ํ™˜๊ฒฝ์—์„œ ์ฐจ๋Ÿ‰์„ ์ •์ƒ์ ์œผ๋กœ ์šดํ–‰ํ•˜๋Š” ๋™์•ˆ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค(์˜ˆ: ๋‹ค์ฐจ์„  ์ขŒํšŒ์ „ ๋ฐ ์›ํ˜• ๊ต์ฐจ๋กœ)์ž…๋‹ˆ๋‹ค.

Type Name Assignment Task ID Release
Route restriction CONSTRUCTION VLM R1
Route restriction 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
Route restriction INCOMING_TRAFFIC VLM R2
Route restriction LIMITED_ACCESS_WAY OSM R0
Route restriction LIVING_STREET OSM R0
Route restriction LOW_SPEED_REGION (5, 10, 20 kph) OSM R0
Route restriction ONE_WAY OSM 3.2.1.3b R0
Route restriction PEDESTRIANS VLM 7.2.1.3b R1
Route restriction PRIORITY_FORWARD_BACKWARD OSM 3.1.1.3b R0
Route restriction ROAD_NARROWS OSM R0
Route restriction STOP OSM 4.1.1.3b, 4.2.1.3b, 4.3.1.3b R0
Route restriction YIELD OSM 4.1.1.3b, 4.2.1.3b, 4.3.1.3b R0
Route feature BRIDGE OSM R0
Route feature CURVED_ROAD OSM (derived) 2.1.1.3a, 2.1.1.3b R0
Route feature BUS_STOP OSM 7.1.1.3a R0
Route feature HILL_DRIVE OSM R0
Route feature LOWERED_KERB OSM R0
Route feature NARROW_ROAD VLM
Route feature PARKING OSM R0
Route feature PEDESTRIAN_CROSSING OSM 7.2.1.3b R0
Route feature TRAFFIC_CALMER OSM R0
Route feature TRAIN_CROSSING OSM 6.1.1.3a, 6.1.1.3b R0
Route feature TRAM_TRACKS OSM 6.2.1.3a R0
Route feature TUNNEL OSM R0
Route feature UNCONTROLLED_PEDESTRIAN_CROSSING OSM 7.2.1.3b R0
Route maneuver ENTERING_MOVING_TRAFFIC OSM (derived) 4.4.1.3a R0
Route maneuver CUTIN VLM R3
Route maneuver LANE_CHANGE VLM 1.3.1.3a, 1.3.1.3b R3
Route maneuver 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
Route maneuver MULTILANE_LEFT OSM (derived) 4.3.1.3b, 4.3.1.3c, 4.3.1.3d R0
Route maneuver MULTILANE_RIGHT OSM (derived) 4.2.1.3b, 4.2.1.3c, 4.2.1.3d R0
Route maneuver PROTECTED_LEFT OSM (derived) 4.3.1.3c, 4.3.1.3d R0
Route maneuver PROTECTED_RIGHT_WITH_BIKE OSM (derived) 4.2.1.3c, 4.2.1.3d R0
Route maneuver RIGHT_BEFORE_LEFT OSM (derived) 4.1.1.3a, 4.2.1.3a, 4.3.1.3a R0
Route maneuver RIGHT_TURN_ON_RED OSM 4.2.1.3c R0
Route maneuver ROUNDABOUT OSM 5.1.1.3a, 5.1.1.3b R0
Route maneuver STRAIGHT OSM (derived) 8.1.1.3a R0
Route maneuver OVER_TAKE VLM 3.2.1.3a, 3.2.1.3b R4
Route maneuver UNPROTECTED_LEFT OSM (derived) 4.3.1.3a, 4.3.1.3b R0
Route maneuver UNPROTECTED_RIGHT_WITH_BIKE OSM 4.2.1.3a, 4.2.1.3b R0

OSM = Openstreetmap, VLM= Vision Language Model, derived: Hand crafted rules with OSM data

A.2 LLM prompts

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

์ธ์ปจํ…์ŠคํŠธ ํ•™์Šต์„ ์œ„ํ•œ ์˜ˆ์ œ ์Œ (30๊ฐœ ์ค‘ 3๊ฐœ ํ‘œ์‹œ)์œผ๋กœ, 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 Data collection hardware

Onboard compute: NVIDIA Jetson AGX Xavier

  • 8 cores @ 2/2.2 GHz, 16/64 GB DDR5
  • 100 TOPS , 8 lanes MIPI CSI-2 D-PHY 2.1 (up to 20Gbps)
  • 8x 1080p30 video encoder (H.265)
  • Power: 10-15V DC input, ~90W power consumption
  • Storage: SSD M.2 (4gen PCIe 1x4)
  • Video input 8 cameras:
  • 2x Fakra MATE-AX with 4x GMSL2 with Power-over-Coax support

Onboard compute: Connectivity

  • Multi-band, Centimeter-level accuracy RTK module
  • 5G connectivity: M.2 USB3 module with maximum downlink rates of 3.5Gbps and uplink rates of 900Mbps, dual SIM
Component # Vendor Specs
RGB: Camera 1 connect-tech Techspecs
RGB: Rugged Camera 5 connect-tech Techspecs
GNSS 1 Taoglas Techspecs
5G antenna 2 2J Antenna Datasheet
NVIDIA Jetson Orin NX - 64 GB 1 Nvidia Techspecs

Table 6: Information on hardware kit used for data collection

Complete hardware kit specs available here


์›๋ฌธ ์ถœ์ฒ˜: https://huggingface.co/blog/lerobot-goes-to-driving-school

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

LeRobot v0.4.0: Supercharging OSS Robot Learning

SmolVLA: Efficient Vision-Language-Action Model trained on Lerobot Community Data