Appearance
Инструменты и входные файлы
Для практических работ используется накопительный комплект v1. Каждый понедельник тот же адрес начинает отдавать новую недельную ревизию: в ней есть общие инструменты, манифесты уже открытых работ и нужные им входные данные. Путь после распаковки остаётся .course-kit/v1, а файл VERSION показывает ревизию вида v1-w06. Используйте один и тот же архив и SHA-256 локально и в CI. Каталог tools/ отдельно не скачивается и не клонируется: общие и недельные команды находятся внутри этого архива.
Скачать текущую ревизию
Текущую ревизию, SHA-256 и неизменяемый URL можно получить одной командой:
bash
curl -fsS https://ros.lms.ci.nsu.ru/api/course-kitОтвет содержит относительные поля archive, checksum, version и sha256. В CI один раз зафиксируйте полный URL ревизии и её digest, например https://ros.lms.ci.nsu.ru + значение archive; не вычисляйте «последнюю» версию во время проверки уже подготовленной сдачи.
Из корня своего репозитория выполните:
bash
mkdir -p .course-kit
curl -fLO https://ros.lms.ci.nsu.ru/downloads/robotics-course-kit-v1.tar.gz
curl -fLO https://ros.lms.ci.nsu.ru/downloads/robotics-course-kit-v1.tar.gz.sha256.txt
sha256sum -c robotics-course-kit-v1.tar.gz.sha256.txt
tar -xzf robotics-course-kit-v1.tar.gz -C .course-kitПосле распаковки получится каталог .course-kit/v1/. Его состав растёт вместе с курсом; каталоги появляются тогда, когда они впервые нужны в открытой работе:
text
.course-kit/v1/
├── VERSION # недельная ревизия v1-wNN
├── MANIFEST.sha256 # SHA-256 каждого файла внутри комплекта
├── tools/ # общие команды проверки
├── practices/manifests/ # требования уже открытых ПР
├── practices/templates/ # report.json и AI_USAGE.md
├── contracts/ # JSON Schema
├── interfaces/ # ROS msg/srv
├── fixtures/ # карты, ответы mock и другие входы
├── scenarios/public/ # открытые сценарии проекта
├── policy_benchmark/ # с недели 12: RL-oracle, policy и исходные прогоны
├── models/ и worlds/ # модель робота и мир Gazebo
└── config/ # bridge и зафиксированная средаДобавьте в .gitignore:
text
.course-kit/
robotics-course-kit-*.tar.gz
robotics-course-kit-*.sha256.txtЗначение VERSION и SHA-256 архива укажите в evidence/prNN/report.json. Поле commit относится к готовой реализации до добавления evidence; полный порядок фиксации двух commit описан в runbook.
Создайте файлы отчёта из шаблонов, заменив NN номером работы:
bash
mkdir -p evidence/prNN
cp .course-kit/v1/practices/templates/report.json evidence/prNN/report.json
# Создать декларацию один раз; существующий файл сохраняем и дополняем.
[ -e AI_USAGE.md ] || cp .course-kit/v1/practices/templates/AI_USAGE.md AI_USAGE.mdШаблон общий для всех работ: замените каждое значение replace-with-*, перенесите часы из условия текущей ПР и добавьте все claims из её манифеста. Номер, недельная версия и трудоёмкость в шаблоне намеренно не предзаполнены.
Команды из tools/
tools/check_practice.py из распакованного архива проверяет состав и формат evidence для выбранной работы:
bash
python3 .course-kit/v1/tools/check_practice.py PR01 --submission .Замените PR01 на номер текущей работы. Сначала запускайте сборку и тесты своих ROS-пакетов, затем checker. В ПР01 сборка не нужна; в ПР02 собирается пакет с launch по командам условия. Функциональные тесты нод ниже — с ПР03:
bash
colcon build --symlink-install
colcon test --event-handlers console_direct+
colcon test-result --verbose
python3 .course-kit/v1/tools/check_practice.py PR01 --submission .tools/workstation_report.sh из того же архива собирает версии ОС, ROS 2, Docker и сведения о графическом адаптере:
bash
bash .course-kit/v1/tools/workstation_report.sh \
| tee evidence/pr01/workstation.txtПеред публикацией просмотрите отчёт и удалите сведения, которые не относятся к работе.
Специализированные команды появляются вместе с соответствующей работой:
- с недели 8 —
tools/validate_localization.pyдля отчёта ПР08; - с недели 9 —
tools/evaluate_perception.pyдля фиксированного набора ПР09; - с недели 14 —
tools/validate_qualification.pyдля результата ПР14.
Их точные аргументы приведены в условиях этих работ; путь всегда начинается с .course-kit/v1/tools/.
Обновление комплекта
После выхода новой недели скачайте архив и checksum заново и распакуйте поверх .course-kit/: недельные ревизии накопительны. Новые VERSION и SHA-256 используйте в новой работе или официальной пересдаче. Уже принятое evidence не переписывается. Сохранённые v1-wNN и SHA-256 однозначно задают состав входов.