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

esmini là gì

esmini là OpenSCENARIO player mã nguồn mở do cộng đồng ADAS Thụy Điển phát triển. Đây là một player cố tình được giữ tối giản, được dùng rộng rãi như một reference nhẹ cho OpenSCENARIO 1.x — đủ nhỏ để đọc code, đủ nhanh để nhúng vào công cụ khác, và đủ dự đoán được để dùng làm phép kiểm tra nhanh.

esmini phân tích một file .xosc theo OpenSCENARIO 1.x, nạp mạng đường OpenDRIVE .xodr được tham chiếu, rồi thực thi storyboard — điều khiển các entity chạy theo trajectory hoặc controller và phát ra luồng trạng thái kết quả.

Đây không phải simulator vật lý đầy đủ như CARLA hay LGSVL. Sự tối giản đó chính là mục đích: esmini là baseline mã nguồn mở để trả lời câu hỏi “kịch bản này có được phân tích và phát lại đúng không?” mà phần lớn công cụ OpenSCENARIO hướng tới.

Vì sao esmini quan trọng với hệ sinh thái công cụ

Phần tiêu đề “Vì sao esmini quan trọng với hệ sinh thái công cụ”

Vì esmini là bộ đọc OpenSCENARIO 1.x mã nguồn mở phổ biến nhất, câu hỏi “có chạy được trên esmini không?” đã trở thành phép kiểm tra nhanh chuẩn cho bất kỳ pipeline xuất OpenSCENARIO nào. Phần lớn công cụ tạo ra file ASAM đều kiểm chứng với esmini trước khi tuyên bố hỗ trợ OpenSCENARIO — kể cả RoadRunner (xuất kịch bản “tương thích với mọi simulator và player tuân thủ OpenSCENARIO, như CARLA, esmini và IPG CarMaker”) cùng nhiều công cụ khác.

esmini cần tối thiểu:

  • Một file .xosc (kịch bản OpenSCENARIO).
  • Một file .xodr (mạng đường OpenDRIVE) được tham chiếu từ .xosc.
  • Tùy chọn: một file .osgb để hiển thị trên 3D viewer, hoặc một thư mục Models/ chứa model phương tiện.

Đóng gói tất cả thành một file zip độc lập — đôi khi được gọi không chính thức là “esmini bundle” — giúp kịch bản dễ mang đi giữa các máy hoặc chạy trong CI.

drawtonomy tự chạy esmini — được biên dịch thành WebAssembly — trực tiếp trong trình duyệt. Bạn dựng một storyboard (hoặc mở một .xosc có sẵn), nhấn play, và trình chỉnh sửa kịch bản thực thi nó ngay trên trang: các nút điều khiển phát lại, tua (seek), camera bám theo (follow camera), vệt bóng ma (ghost trail), và kết quả PASS / FAIL dựa trên điều kiện END và FAIL bạn đã định nghĩa — không cần cài đặt, không cần player riêng. Lõi mô phỏng chính là esmini; drawtonomy chỉ thêm lớp vỏ canvas-native bao quanh nó.

Nếu bạn muốn chạy kịch bản trên một bản cài esmini gốc (để dùng 3D viewer OpenSceneGraph, chạy loạt kiểm thử trong CI, hoặc đưa vào pipeline Python/C++), drawtonomy cũng xuất được một file zip gồm .xosc, .xodr, và lệnh gọi run.sh:

Terminal window
unzip <name>.zip
esmini --osc <name>/<name>.xosc --window 60 60 1024 768

Vài điều cần biết:

  • Player trong trình duyệt đọc được OpenSCENARIO 1.x, còn phần xuất ASAM ghi ra OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — cả hai đều bao phủ một tập con của đặc tả: action, trigger có điều kiện, phase và event đều chạy được, và cả <junction> lẫn <signal> của OpenDRIVE giờ cũng được xuất. Giao lộ được mang nguyên vẹn từ một file .xodr đã nhập (không chỉnh sửa) có độ tin cậy cao; giao lộ được tổng hợp từ mạng làn đường tự vẽ tay thì chưa đủ tin cậy. Quét tham số (parameter sweep) và controller tùy chỉnh hoặc điều khiển bằng ML vẫn chưa được xuất.
  • Model phương tiện mặc định dùng các model tích hợp sẵn của esmini, nên không cần chuẩn bị thêm file .osgb.
  • Với các loạt kịch bản quy mô lớn hoặc có tham số hóa, hãy sinh đội hình từ một DSL hoặc thư viện Python — việc đó vẫn nằm ngoài phạm vi của trình chỉnh sửa trực quan.