Расширяемый Unity-симулятор для обучения и проверки моделей управления наземными роботами (текущий baseline: KS0223).
- Плагинная архитектура для треков и роботов.
- Актуальный каталог треков:
track.roadsystem_arena.v1,track.basic_arena.v1,track.roadsystem_realistic.v2. - Добавлен реалистичный RoadSystem plugin track:
track.roadsystem_realistic.v2(бордюры, старт/финиш, освещение, расширенное окружение).
- Ассетные визуалы машин (через plugin
vehicleId):vehicle.prometeo.sport.v1vehicle.arcade.blue.v1vehicle.arcade.red.v1vehicle.arcade.gray.v1vehicle.arcade.purple.v1
- Дрон-плагин:
vehicle.drone.simple.v1
- HTTP JSON API (
/health,/contract,/reset,/step). - CARLA-подобный high-level Python слой (
Client/World/Map/BlueprintLibrary) поверх текущего API. - Презентационная сцена
PresentationTrackс разметкой и sensor HUD. - Python SDK + Jupyter презентационный notebook.
- Опциональный ROS2 bridge (typed topics + compat JSON topics).
Unity версия проекта: 6000.1.8f1.
- Создай Python окружение:
make venvpython -m pip install ./python
- Запусти симулятор (публичный API для ROS/Docker):
make sim-public
- В Unity открой сцену:
Assets/Scenes/PresentationTrack.unity- или
Assets/Scenes/RoadSystemTrack.unity(spline-трек на базеRoad System) - при необходимости пересобери RoadSystem-сцену через меню:
UavSimulator/Scene/Build RoadSystem Track Scene
- Нажми
Play. - Подними ROS UI и bridge одной командой:
make demo-up
- Для демо-управления через ROS2 (
/cmd_vel) открой steering UI:make demo-control
- Быстрая проверка:
make demo-status
- Строгая pre-demo проверка (fail-fast):
make demo-proof
CLI пример CARLA-style:
python python/examples/carla_like_quickstart.py --base-url http://127.0.0.1:8000
Примечание:
- По умолчанию при старте сцены транспорт не спавнится автоматически. Экземпляр появляется после
reset(API/ROS/demo-reset). - Порог
odom hzвdemo-proofрегулируется черезUAVSIM_ODOM_HZ_MIN(по умолчанию10). - Переключение визуала машины (через plugin id):
- базовый demo теперь берётся только из
configs/scenarios/demo.yaml; make demo-resetmake demo-reset DEMO_SCENARIO=configs/scenarios/demo.yaml- multi-agent demo:
rusim server up --mode background --port 8000 --scenario configs/scenarios/demo-multi-agent.yamlrusim step --base-url http://127.0.0.1:8000 --agent-id npc-red --throttle 0.3 --steer 0.0 --brake 0.0
- для ручного override вне demo-сценария:
rusim reset --base-url http://127.0.0.1:8000 --vehicle-id vehicle.arcade.red.v1rusim reset --base-url http://127.0.0.1:8000 --vehicle-id vehicle.prometeo.sport.v1rusim reset --base-url http://127.0.0.1:8000 --vehicle-id vehicle.drone.simple.v1rusim reset --base-url http://127.0.0.1:8000 --track-id track.roadsystem_arena.v1
- базовый demo теперь берётся только из
rusimявляется каноническим продуктовым CLI:rusim server up/down/statusrusim runtime build/list/inspect/removerusim scenario validate/resetrusim step
Makefileоставлен для developer/ROS2 automation:- запуск Unity Editor в режиме
sim-public; - ROS2 desktop container;
- demo/preflight smoke;
- bridge/UI automation для показа.
- запуск Unity Editor в режиме
make sim-public: запуск Unity Editor с API для Docker/ROS bridge.make demo-up: ROS desktop + bridge +rviz/rqt+ reset baseline.make demo-status: быстрый статус API/топиков/bridge + preflight image transport plugins.make demo-proof: строгая проверка перед презентацией (health/reset/step-frame/camera-one-shot/odom-hz).make demo-control:demo-up+ запускrqt_robot_steeringдля ручного управления через ROS2.make demo-down: остановка ROS desktop контейнера.make ros-install-image-plugins: опционально дляcompressedimage transport вrqt_image_view.
- Дороги: Road System package подключён как UPM пакет
com.barmetler.roadsystem(папкаsrc/UnityProject/uav-simulator/Packages/com.barmetler.roadsystem). - Машины:
PROMETEO - Car Controllerимпортирован вAssets/PROMETEO - Car Controller.ARCADE - FREE Racing Carимпортирован вAssets/ARCADE - FREE Racing Car.
- Симулятор использует эти ассеты как визуальные плагины поверх KS0223 физики/сенсоров.
- Индекс:
docs/README.md - О продукте:
docs/about-simulator.md - Установка:
docs/installation.md - Использование:
docs/usage.md - CLI:
docs/cli.md - Архитектура + диаграммы:
docs/architecture.md - Сборка/запуск:
docs/build.md - CI/CD:
docs/ci.md - Плагины:
docs/plugins.md - API:
docs/api.md - Контракты:
docs/contracts.md - Транспорт/роботы:
docs/vehicles.md,docs/robots/ks0223.md,docs/robots/simple-drone.md - Python SDK:
python/README.md
- Индекс:
docs/master-thesis/README.md - Введение:
docs/master-thesis/02-introduction.md - Архитектура:
docs/master-thesis/04-architecture.md - Реализация:
docs/master-thesis/05-implementation.md - API:
docs/master-thesis/06-api-spec.md - Плагины и расширение:
docs/master-thesis/07-plugin-development.md - Обучение и Python:
docs/master-thesis/08-training-python.md - Sim2Real и реальная машинка:
docs/master-thesis/09-sim2real-real-car.md - Тестирование/сборка/релиз:
docs/master-thesis/10-testing-build-release.md
- Правила работы:
CONTRIBUTING.md - Прогресс и решения:
docs/tasks.md