Skip to content

Инструменты и входные файлы ​

Для практических работ используется накопительный комплект 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 однозначно задают состав входов.

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