
Show HN: Đang chờ game mô phỏng đua xe AI Grand Prix? Tôi cũng vậy, nên tôi đã tự làm một game.
URL bài viết: https://github.com/elodin-sys/ai-grand-prix URL bình luận: https://news.ycombinator.com/item?id=48244649 Điểm: 3 Bình luận: 0
AI Grand Prix Playground
Đây là một trình giả lập thực hành mã nguồn mở, dựa trên Elodin, dành cho cuộc thi AI Grand Prix của Anduril – một cuộc thi đua drone tự hành trị giá 500.000 USD. Trình giả lập này được xây dựng để các thí sinh có thể phát triển mã nhận thức, lập kế hoạch và điều khiển ngay hôm nay, trong khi trình giả lập Vòng loại ảo 1 chính thức đang được hoàn thiện.
Các tính năng có sẵn:
Vật lý 6-DOF (sáu bậc tự do) có độ chân thực cao từ Elodin (xác định, kết xuất bằng GPU, cảm biến đa tốc độ) xung quanh một chiếc quad đua 5 inch tiêu chuẩn, đây là phỏng đoán công khai tốt nhất của chúng tôi cho đến khi khung máy bay tham chiếu được công bố.
Bộ điều khiển bay Betaflight SITL (Software In The Loop) thực tế hoạt động đồng bộ với vật lý, giao tiếp RC kiểu MAVLink tiêu chuẩn + PWM qua UDP.
Camera FPV phía trước khớp với các thông số kỹ thuật nội tại của AI Grand Prix (640×360, fx=fy=320, cx=320, cy=180, góc nghiêng lên +20°, 30 Hz).
Một đường đua 3 cổng phía trước trong hệ tọa độ ENU của Elodin (+X/Đông), với tính năng theo dõi thời gian vượt qua tự động.
Một thư mục giải pháp/gói sạch – đây là thư mục duy nhất bạn chỉnh sửa để tham gia cuộc thi.
Bắt đầu nhanh (macOS / Linux, khoảng 5 phút)
Bạn cần uv, git và git lfs. Elodin CLI được cài đặt bởi scripts/install_elodin.sh.
Việc xây dựng Betaflight SITL cũng yêu cầu một bộ công cụ C. Trên Ubuntu/Debian:
sudo apt update && sudo apt -y install build-essential clang-18
Trên macOS, Xcode Command Line Tools (xcode-select --install) sẽ đáp ứng yêu cầu này. Đối với các bản phân phối khác, hãy xem hướng dẫn Building in Ubuntu của Betaflight để biết các gói tương đương.
# 1) Cài đặt Elodin CLI (trình chỉnh sửa + chạy + cơ sở dữ liệu)
bash scripts/install_elodin.sh
# 2) Thiết lập môi trường Python
uv sync
# 3) Tải và xây dựng Betaflight SITL (một lần)
git submodule update --init --recursive --depth 1 betaflight
bash scripts/build_betaflight.sh
# 4) Cấu hình Betaflight chỉ khi tệp eeprom.bin đã cam kết bị thiếu hoặc lỗi thời.
# Điều này thường không cần thiết đối với một bản sao mới.
uv run python scripts/configure_betaflight.py
# 5) Mở mô phỏng trong trình chỉnh sửa Elodin
elodin editor sim/main.py
Sau khi chạy scripts/build_betaflight.sh, git status có thể hiển thị M betaflight. Điều này là bình thường: tập lệnh xây dựng chuyển đổi target.h của Betaflight bên trong submodule để bật chế độ đồng bộ hóa trình giả lập.
Kết quả dự kiến khi chạy thành công:
[SOLVER] sử dụng mô-đun: solver.baseline
[FPV] Khung hình đầu tiên tại tick 33: 921600 byte, hình dạng=(360, 640, 4)
THÀNH CÔNG: Tích hợp SITL hoạt động! Drone đã cất cánh!
[RACE] đường đua=dễ cổng_đã_vượt=0/3 thời_gian_vòng=15.00s trạng_thái=DNF thời_gian_vượt=[--,--,--]
Viết bộ giải của bạn
Chỉnh sửa solver/baseline.py hoặc trỏ đến mô-đun của riêng bạn:
RACE_SOLVER=my_team.my_solver elodin editor sim/main.py
Hợp đồng đầy đủ (một hàm autopilot(update: SensorUpdate) -> RCCommand) có trong solver/README.md.
Kiểm tra một lần chạy
Mỗi lần chạy sẽ ghi một thư mục betaflight_db### được đánh số tự động vào thư mục gốc của kho lưu trữ (đặt ELODIN_DB_PATH để ghi đè). Một vài lệnh elodin-db bạn sẽ sử dụng sau một lần chạy:
# Xuất mọi thành phần đã cam kết sang các tệp CSV phẳng, đã nối (một hàng cho mỗi tick).
elodin-db export betaflight_db000 --format csv --flatten --join -o dbs/betaflight_db000-csv
# Kết xuất luồng camera FPV thành tệp video để kiểm tra ngoại tuyến.
elodin-db export-videos betaflight_db000 -o betaflight_db000-video
Định dạng CSV tiện lợi cho việc so sánh hồi quy, vẽ biểu đồ ngoại tuyến hoặc kéo trạng thái vào một sổ ghi chép. Đối với các truy vấn nhẹ hơn trên các thành phần riêng lẻ mà không ghi tệp, elodin-db query --eql ... truy cập cùng một cơ sở dữ liệu; xem ARCHITECTURE.md để biết cú pháp.
Chạy thử nghiệm
chạy thử # hoặc: uv run pytest
xác minh # kiểm tra nhật ký chạy gần nhất để đảm bảo cất cánh thành công
dọn dẹp # xóa các thư mục betaflight_db### và các tệp xuất CSV/video
35 bài kiểm tra bao gồm các chuyến đi khứ hồi gói tin, hình học đường bay, thông số nội tại của camera và bộ giải cơ bản — tất cả đều chạy trong vòng chưa đầy một giây (không cần thời gian chạy Elodin).
Tìm hiểu sâu hơn
ARCHITECTURE.md — thiết kế đầy đủ: chu trình khóa bước, hệ quy chiếu tọa độ, tham chiếu mô-đun, sơ đồ trình chỉnh sửa, các tùy chọn cấu hình và các cơ hội cải tiến đã biết.
solver/README.md — hợp đồng lái tự động.
Công cụ Elodin, trình chỉnh sửa và các liên kết Python nằm tại elodin-sys/elodin; đọc tệp README của nó để biết toàn bộ phạm vi, bao gồm các API sensor_camera và StepContext mà chúng tôi sử dụng ở đây.
Lời cảm ơn
Được xây dựng dựa trên các ví dụ upstream elodin-sys/elodin/examples/betaflight-sitl, examples/sensor-camera và examples/crazyflie-edu. Không liên kết với Anduril, DCL, Neros hoặc JobsOhio — AI Grand Prix là của họ; thiết bị thực hành này là tác phẩm của cộng đồng người hâm mộ để các thí sinh có thể bắt đầu lập trình ngay bây giờ.
Giấy phép
Apache 2.0 — cùng giấy phép với công cụ Elodin upstream.
Nguồn tin: Hacker News AI — Tác giả: danAtElodin. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.