Appearance
Публичные интерфейсы
Учебные практики и квалификация
Таблица ниже сохраняет опубликованный Ackermann-контракт проверок. Для дифференциального проекта используется отдельный профиль далее; тип сообщения не меняется одним remap имени топика.
| Топик / сервис | Тип | Правило |
|---|---|---|
/perception/scene | SceneDescription v1 | типизированное наблюдение, без команды движения |
/drive/raw | AckermannDriveStamped | любой контроллер → ограничитель безопасности |
/drive/safe | AckermannDriveStamped | единственный вход адаптера привода |
/safety/status | SafetyStatus | режим, причина, возраст данных, вмешательства |
RunScenario | сервис | ID манифеста + seed |
VLM имеет режимы live, cache, mock; основные тесты используют mock/cache. Ключ кэша включает хэш изображения, рабочий промпт, ID модели и конфигурацию.
С недели 12 каталог policy_benchmark/ в комплекте содержит локальную контрольную среду с Gymnasium-контрактом reset(seed=...) / step(action), замороженную policy и oracle-результаты. При одинаковых seed и последовательности действий отчёт должен совпасть. Эта среда запускается через python3; ROS-пакет проекта отвечает только за mapping SceneDescription → observation → action → AckermannDriveStamped.
С недели 14 contracts/qualification-runner-contract.md и schemas/qualification-v1.schema.json фиксируют CLI и результат квалификации. Реализация tools/run_qualification.py остаётся частью проекта, а результат проверяется командой .course-kit/v1/tools/validate_qualification.py.
Подробная машинная спецификация находится в каталогах contracts/ и interfaces/ комплекта практикума.
Проектный профиль robocar
| Интерфейс | Тип и правило |
|---|---|
/cmd_vel | geometry_msgs/msg/TwistStamped, свежий stamp, base_link, только planar v,ω; один источник после проверки безопасности |
/odom | nav_msgs/msg/Odometry, odom→base_footprint; backend — единственный владелец этого TF |
/scan | sensor_msgs/msg/LaserScan, laser_frame, sensor-data QoS |
/camera/image_raw, /camera/camera_info | sensor_msgs/msg/Image и CameraInfo, согласованные время/оптическая система/калибровка; remap драйвера задаёт профиль |
/robocar/check_ready | std_srvs/srv/Trigger, проверка без разрешения движения |
/robocar/enable_control | std_srvs/srv/SetBool, явное разрешение или завершение сессии |
В ноябре это симуляционный backend; на реальном роботе — robocar_runtime. Приложение сохраняет интерфейсы, профили выбирают время, датчики и исполнитель. Ноль завершает сессию r6, после него требуется новое явное разрешение. Алгоритмы ПР12 с рулевым углом и аппаратный (v,ω) не эквивалентны: проектный контроллер/адаптер проверяется отдельно. Конфигурация Ackermann Nav2 и его автоматическое продолжение не переносятся на робота копированием. Подробности, текущие границы готовности и применение каждой ПР — в маршруте sim→real.