Bỏ qua để đến nội dung

OpenSCENARIO là gì

OpenSCENARIO là tiêu chuẩn mở do ASAM xây dựng, mô tả cách phương tiện và các đối tượng tham gia giao thông khác hành xử theo thời gian. Đây là định dạng trao đổi thực tế cho kiểm thử hệ thống tự lái theo kịch bản.

Dù cùng mang tên “OpenSCENARIO”, thực chất có hai đặc tả gần như độc lập:

  • OpenSCENARIO 1.x — dựa trên XML, đã được sử dụng lâu năm và ổn định. Phiên bản 1.3 là mục tiêu vận hành thực tế hiện tại.
  • OpenSCENARIO 2.0 / DSL — ngôn ngữ chuyên dụng cho phép viết kịch bản trừu tượng và xác suất. Đặc tả mới hơn, số công cụ hỗ trợ đang dần tăng.

Hai nhánh không tương thích với nhau. Các simulator và hạ tầng kiểm thử SOTIF / ISO 21448 chủ yếu tiêu thụ nhánh 1.x.

Một file OpenSCENARIO 1.x thường bao gồm:

  • RoadNetwork — thường tham chiếu đến file .xodr của OpenDRIVE, kèm file scene graph .osgb nếu cần.
  • Entities — phương tiện, người đi bộ và các đối tượng xuất hiện trong kịch bản.
  • Storyboard — chuỗi Act, Maneuver, Event theo thời gian.
  • Init — vị trí, tốc độ ban đầu và giá trị tham số khởi tạo.

Với kịch bản nhỏ, viết XML trực tiếp vẫn dễ đọc. Nhưng khi số lượng biến thể tăng, chi phí quản lý XML tăng nhanh — đó là lý do nhiều công cụ tạo kịch bản và DSL ra đời.

Trong thực tế, người ta thường kết hợp nhiều cách:

Trong triển khai thực tế, logic kịch bản thường được viết bằng thư viện Python hoặc DSL, còn mạng đường được dựng bằng công cụ GUI.

drawtonomy là bảng trắng 2D chạy trên trình duyệt, có thể xuất một phần OpenSCENARIO 1.3 và OpenDRIVE 1.8. Theo tài liệu exporter:

  • Có thể bố trí làn đường, giao lộ, phương tiện, người đi bộ, đèn giao thông và vạch kẻ đường trên canvas 2D nhìn từ trên xuống.
  • Xuất file zip gồm .xosc + .xodr + run.sh, có thể phát lại cảnh đơn giản bằng esmini.

Tuy nhiên, exporter chỉ bao phủ một phần đặc tả. Các mục chưa được hỗ trợ:

  • Phần tử <junction> trong OpenDRIVE
  • Xuất biển báo dưới dạng <signal> trong OpenDRIVE
  • Profile tăng/giảm tốc, sự kiện dừng, lộ trình liên động với tín hiệu, thay đổi làn, Storyboard phức tạp
  • Trigger có điều kiện, quét tham số, controller tùy chỉnh, dòng giao thông dày đặc

Vì vậy, đầu ra OpenSCENARIO từ drawtonomy nên được coi là bản phác thảo — phù hợp làm điểm xuất phát cho XML viết tay hoặc làm hình minh họa kịch bản, chứ không phải công cụ tạo kịch bản chuyên nghiệp.