Files

4.5 KiB
Raw Permalink Blame History

Direct Trajectories

Purpose

Описывает приём готовых суставных траекторий из JSON и CSV, их проверку перед публикацией и поведение остановки.

Requirements

Requirement: Форматы ввода

HTTP API SHALL принимать JSON-точки через POST /trajectory/send и CSV-файл через POST /trajectory/send_csv с семью суставными колонками и временем от начала.

Scenario: CSV с вариантами имён

  • WHEN CSV использует заголовки joint_1–joint_7 и time_from_start
  • THEN колонки сопоставляются с joint1–joint7 и временем t независимо от порядка

Requirement: Конечные и допустимые точки

Каждая точка MUST содержать семь конечных углов и допустимое время; траектория MUST укладываться в позиционные, скоростные, ускорительные и рывковые ограничения из конфигурации.

Scenario: Недопустимый сустав

  • WHEN точка выходит за допустимый диапазон сустава
  • THEN HTTP API возвращает 422 и не публикует траекторию

Requirement: Свежий неподвижный старт

Прямая траектория MUST начинаться со свежего полного /joint_states и неподвижного робота; при ненулевом времени первой точки система SHALL добавить стартовую точку текущего положения.

Scenario: Устаревшая обратная связь

  • WHEN возраст или временная метка /joint_states превышают настроенный предел
  • THEN запрос отклоняется с 409 без публикации

Scenario: Нулевая первая точка не совпадает

  • WHEN первая точка имеет t=0, но отличается от измеренного положения больше допуска
  • THEN запрос отклоняется с 422

Requirement: Пересчёт времени

Система SHALL при необходимости растягивать время траектории для соблюдения динамических ограничений и возвращать фактическую длительность и коэффициент масштабирования.

Scenario: Быстрый сегмент

  • WHEN исходный интервал между точками требует превышения настроенных динамических лимитов
  • THEN опубликованная траектория имеет увеличенные интервалы и ответ сообщает time_scale

Requirement: Граница проверки прямого пути

Прямой траекторный API SHALL проверять суставные и динамические ограничения, но не SHALL заявлять проверку столкновений для промежуточного пути.

Scenario: Траектория в допустимых суставных лимитах

  • WHEN клиент отправляет валидные точки без подтверждённой проверки сцены
  • THEN API может опубликовать траекторию, а ответственность за оценку столкновений остаётся вне этого API

Requirement: Защита от замены и остановка

Система MUST отвергать новую прямую траекторию во время ещё активной и MUST не публиковать подготовленную цель, если в ходе подготовки пришла остановка.

Scenario: Остановка во время подготовки

  • WHEN POST /stop вызывается до публикации подготовленной траектории
  • THEN подготовка инвалидируется, а эта траектория не отправляется контроллеру