обновлен формат генерации датасета

This commit is contained in:
Даниил Грабарь
2026-10-22 10:07:05 +10:00
parent 9e551a2ca9
commit 1059b47978
29 changed files with 2230 additions and 468 deletions
+112
View File
@@ -0,0 +1,112 @@
# Навыки робота
Справочник 32 навыков, используемых генератором датасета.
## Формат действия
```json
{"skill": "align", "object": "деталь №1", "target": "сборочная позиция №1"}
```
- `skill` — фиксированное имя навыка на английском; по нему программа выбирает обработчик.
- `object` — русское название объекта из сцены. Для `return_home` — `робот`.
- `target` — русское название цели действия. Поле присутствует только у навыков, отмеченных в таблице.
## Список навыков
| Навык | Назначение | Значение `target` |
|---|---|---|
| `detect` | Определить положение объекта | — |
| `approach` | Подвести робот к объекту | — |
| `pick` | Захватить объект | — |
| `position` | Переместить объект к месту назначения | Место назначения |
| `place` | Установить объект на место, сохраняя захват | Место установки |
| `align` | Совместить объект с местом установки | Место установки |
| `insert` | Вставить объект | Место установки |
| `release` | Отпустить объект | — |
| `inspect` | Проверить результат установки объекта | — |
| `insert_fastener` | Установить крепёж в отверстие | Место установки |
| `tighten` | Затянуть крепёж | Место установки |
| `press_fit` | Запрессовать объект | Место установки |
| `route_wire` | Проложить провод | Место подключения |
| `connect` | Подключить провод | Место подключения |
| `test_continuity` | Проверить электрическую целостность соединения провода | — |
| `seat_component` | Установить электронный компонент | Место установки |
| `test_connection` | Проверить подключение электронного компонента | — |
| `clean_surface` | Очистить поверхность объекта для склеивания | — |
| `apply_adhesive` | Нанести клей на объект | — |
| `bond` | Прижать объект к месту соединения | Место соединения |
| `wait_cure` | Дождаться отверждения клея на соединении | — |
| `clamp` | Зафиксировать объект в приспособлении | Место фиксации |
| `weld` | Выполнить сварное соединение | Место соединения |
| `measure` | Проверить размеры объекта | — |
| `wait_operator` | Дождаться готовности оператора принять объект | — |
| `handover` | Поднести объект для передачи оператору, сохраняя захват | `оператор` |
| `confirm_assembly` | Получить подтверждение сборки объекта от оператора | — |
| `move_to_operator` | Переместить объект к оператору | `оператор` |
| `hold` | Удерживать объект в неподвижном состоянии возле оператора | `оператор` |
| `wait_assembly` | Дождаться подтверждения завершения сборки, продолжая удерживать объект | — |
| `move_to_storage` | Переместить объект в зону хранения | Зона хранения |
| `return_home` | Вернуться в исходное положение | `исходное положение` |
## Форматы ответа модели
### Полный план — `full`
Ответ содержит `status` и массив `plan`:
```json
{
"status": "ready",
"plan": [
{"skill": "detect", "object": "распределительная коробка №1"},
{"skill": "approach", "object": "распределительная коробка №1"},
{"skill": "pick", "object": "распределительная коробка №1"},
{"skill": "move_to_operator", "object": "распределительная коробка №1", "target": "оператор"},
{"skill": "hold", "object": "распределительная коробка №1", "target": "оператор"},
{"skill": "wait_assembly", "object": "распределительная коробка №1"},
{"skill": "move_to_storage", "object": "распределительная коробка №1", "target": "зона хранения №1"},
{"skill": "release", "object": "распределительная коробка №1"},
{"skill": "return_home", "object": "робот", "target": "исходное положение"}
]
}
```
- `ready` — полный план достигает цели в логической модели сцены.
- `blocked` — цель недостижима в текущей сцене. План может содержать выполнимую часть действий; если действий нет, массив пуст.
### Следующее действие — `step`
```json
{
"status": "ready",
"plan": [{"skill": "pick", "object": "деталь №1"}]
}
```
В этом режиме `ready` означает доступность указанного следующего действия, а не гарантию завершения всей задачи. При достигнутой цели возвращается `ready` с пустым массивом; при невозможности продолжения — `blocked` с пустым массивом.
### План с ветвлением — `branch`
У каждого действия дополнительно присутствуют:
| Поле | Назначение |
|---|---|
| `id` | Идентификатор действия: `step_1`, `step_2` и далее |
| `on_success` | ID следующего действия или терминальный исход `ready` / `blocked` |
| `on_failure` | Терминальный исход `replan_required` |
Пример отдельного узла внутри плана:
```json
{
"id": "step_1",
"skill": "pick",
"object": "деталь №1",
"on_success": "step_2",
"on_failure": "replan_required"
}
```
Выполнение начинается с первого элемента `plan`. При успехе последнего действия переход ведёт к `ready` или `blocked`. При ошибке `replan_required` означает остановку, обновление сцены и построение нового плана. Эти три исхода не являются навыками. У пустого плана итог определяется полем `status`.