Files
LLM-Robot-Control/docs/skills.md
T

113 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Навыки робота
Справочник 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`.