обновлен формат генерации датасета
This commit is contained in:
+112
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user