ข้ามไปยังเนื้อหา

OpenSCENARIO คืออะไร?

OpenSCENARIO คือมาตรฐานเปิดของ ASAM ที่ใช้อธิบายสถานการณ์ขับขี่แบบไดนามิก โดยระบุพฤติกรรมของยานพาหนะหลักและผู้เข้าร่วมจราจรรายอื่นตามลำดับเวลา ในรูปแบบที่ซิมูเลเตอร์สามารถนำไปเล่นซ้ำได้ ปัจจุบัน OpenSCENARIO ถือเป็นรูปแบบการแลกเปลี่ยนข้อมูลมาตรฐานสำหรับการทดสอบระบบขับขี่อัตโนมัติบนฐานสถานการณ์

มีสเปกสองชุดที่ใช้ชื่อเดียวกัน แต่เป็นอิสระต่อกัน

  • OpenSCENARIO 1.x — รูปแบบ XML ที่เสถียร รองรับอย่างกว้างขวาง เวอร์ชัน 1.3 คือเป้าหมายหลักสำหรับเครื่องมือส่วนใหญ่ในปัจจุบัน
  • OpenSCENARIO 2.0 / DSL — ภาษาเฉพาะโดเมนสำหรับสถานการณ์แบบ abstract parametric และ probabilistic มีความสามารถสูงกว่า แต่เพิ่งเริ่มมีการรองรับจากเครื่องมือต่าง ๆ

ทั้งสองรูปแบบไม่สามารถใช้แทนกันได้ แต่ 1.x คือสิ่งที่ซิมูเลเตอร์และไปป์ไลน์ SOTIF / ISO 21448 ส่วนใหญ่ใช้ในปัจจุบัน

ไฟล์ 1.x มักประกอบด้วย

  • RoadNetwork — โดยทั่วไปอ้างอิงไฟล์ OpenDRIVE .xodr และอาจมีไฟล์ scene-graph เช่น .osgb
  • Entities — ยานพาหนะ คนเดินเท้า และวัตถุอื่น ๆ
  • Storyboard — ลำดับ act maneuver และ event ที่ entities ดำเนินการตามเวลา
  • Init — ตำแหน่งเริ่มต้น ความเร็ว และค่าพารามิเตอร์

XML อ่านง่ายสำหรับสถานการณ์เดียวที่สั้น แต่ยากต่อการดูแลเมื่อมีตัวแปรจำนวนมาก นั่นคือจุดที่เครื่องมือสร้างและ DSL ช่วยได้

  • เขียน XML มือ เหมาะสำหรับทีมขนาดเล็กและ ground-truth fixture
  • DSL / codegen ใช้ OpenSCENARIO 2.0 DSL Scenic หรือ generator ภายในองค์กรเพื่อสร้าง XML จาก description ระดับสูง
  • Python library scenariogeneration ครอบคลุม OpenSCENARIO V1.0 ถึง V1.3.1
  • Scenario engine ในซิมูเลเตอร์ CARLA ScenarioRunner สร้างและรันสถานการณ์สำหรับ CARLA รองรับ Python และ OpenSCENARIO 1.0 / 2.0
  • Visual editor MathWorks RoadRunner Truevision Designer Blender Driving Scenario Creator และ drawtonomy

drawtonomy คือ ไวท์บอร์ดบนเบราว์เซอร์พร้อมตัวส่งออก OpenSCENARIO 1.3 / OpenDRIVE 1.8 บางส่วน ตาม เอกสาร exporter

  • วางเลน ทางแยก ยานพาหนะ คนเดินเท้า สัญญาณไฟ และเครื่องหมายบนถนนบนแคนวาส 2D แบบ top-down
  • ส่งออก .xosc + .xodr + run.sh เป็น zip สำหรับเล่นในฉากง่าย ๆ ด้วย esmini

สิ่งที่ exporter ยังไม่รองรับ ในปัจจุบัน

  • OpenDRIVE junction primitives (<junction>)
  • ป้ายจราจรในรูปแบบ <signal> ของ OpenDRIVE
  • Acceleration profile event หยุด signal-aware path lane-change action และ storyboard ที่ซับซ้อน
  • Conditional trigger parameter sweep และ custom controller

ให้มองการส่งออก OpenSCENARIO ของ drawtonomy เป็นจุดเริ่มต้นของ sketch ที่แก้ไขต่อได้ หรือใช้เป็นภาพประกอบสถานการณ์ ไม่ใช่เส้นทางสร้างสถานการณ์จริงในระดับ production