Skip to content

Публичные интерфейсы ​

Учебные практики и квалификация ​

Таблица ниже сохраняет опубликованный Ackermann-контракт проверок. Для дифференциального проекта используется отдельный профиль далее; тип сообщения не меняется одним remap имени топика.

Топик / сервисТипПравило
/perception/sceneSceneDescription v1типизированное наблюдение, без команды движения
/drive/rawAckermannDriveStampedлюбой контроллер → ограничитель безопасности
/drive/safeAckermannDriveStampedединственный вход адаптера привода
/safety/statusSafetyStatusрежим, причина, возраст данных, вмешательства
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_velgeometry_msgs/msg/TwistStamped, свежий stamp, base_link, только planar v,ω; один источник после проверки безопасности
/odomnav_msgs/msg/Odometry, odom→base_footprint; backend — единственный владелец этого TF
/scansensor_msgs/msg/LaserScan, laser_frame, sensor-data QoS
/camera/image_raw, /camera/camera_infosensor_msgs/msg/Image и CameraInfo, согласованные время/оптическая система/калибровка; remap драйвера задаёт профиль
/robocar/check_readystd_srvs/srv/Trigger, проверка без разрешения движения
/robocar/enable_controlstd_srvs/srv/SetBool, явное разрешение или завершение сессии

В ноябре это симуляционный backend; на реальном роботе — robocar_runtime. Приложение сохраняет интерфейсы, профили выбирают время, датчики и исполнитель. Ноль завершает сессию r6, после него требуется новое явное разрешение. Алгоритмы ПР12 с рулевым углом и аппаратный (v,ω) не эквивалентны: проектный контроллер/адаптер проверяется отдельно. Конфигурация Ackermann Nav2 и его автоматическое продолжение не переносятся на робота копированием. Подробности, текущие границы готовности и применение каждой ПР — в маршруте sim→real.

Учебные материалы: CC BY 4.0 · Код: Apache-2.0