Update entities.md

This commit is contained in:
Igor Brylev 2024-08-14 14:36:49 +00:00
parent 587441baac
commit a5783618c5

View file

@ -19,13 +19,14 @@
{
"sid": 1,
"type": "computing_process",
"description": "Robossembler Dataset Generator",
"command": "blenderproc",
"package": "dataset_generator.py",
"executable": "",
"args": {
"folder": \${NAME:string:""},
},
"description": "Robossembler Dataset Generator"
"interfaces": "" // у процессов нет интерфейсов
}
```
@ -35,6 +36,7 @@
{
"sid": 2,
"type": "digital_twin",
"description": "ROS Wrapper for Intel RealSense Cameras",
"command": "ros2 launch",
"package": "realsense2_camera",
"executable": "rs_launch.py",
@ -42,7 +44,9 @@
"camera_namespace": \${NAME:string:""},
"camera_name": \${NAME:string:""},
},
"description": "ROS Wrapper for Intel RealSense Cameras"
"interfaces": {
"cmd": "python ros2_topic_to_json.py"
}
}
```
@ -51,6 +55,7 @@
{
"sid": 3,
"type": "skill_server",
"description": "Pose Estimation Skill Dope 6D",
"command": "ros2 launch",
"package": "dope6d",
"executable": "dope.py",
@ -60,7 +65,9 @@
"param3": \${INT:string:""},
"image_raw": \${TOPIC:CameraInfo:""},
},
"description": "Pose Estimation Skill Dope 6D"
"interfaces": {
"cmd": "python ros2_topic_to_json.py"
}
}
```
@ -69,6 +76,7 @@
{
"sid": 4,
"type": "behaviour_tree",
"description": "Behaviour tree executor",
"command": "ros2 launch",
"package": "rbs-bt",
"executable": "bt_executor",
@ -76,7 +84,28 @@
"xml": \${NAME:string:""},
"json": \${NAME:string:""}
},
"description": "Behaviour tree executor"
"interfaces": {
"cmd": "python skills_interfaces_to_json.py [args]",
}
}
```
Пример
```json
{
"sid": 5,
"type": "behaviour_tree",
"description": "Behaviour tree executor",
"command": "python",
"package": "",
"executable": "interfaces_to_json.py",
"args": {
"xml": \${NAME:string:""},
"json": \${NAME:string:""}
},
"interfaces": {
"cmd": "",
}
}
```
@ -108,17 +137,13 @@
}
```
3. После завершения конфигурации цифрового двойника Backend фоново запускает команду `<command> <package> <executable> <key1>:=<value1> <key2>:=<value2>`. После также запускает команду `ros2_topic_to_json.py` (выводит все топики и их типы в системе), получает интерфейсы ROS данного двойника(ов) и записывает их в таблицу. Структура таблицы БД: `parent` (ссылка на экземпляр цифрового двойника из п.2), `topic_name` (строка или path), `msg_type` (строка), `hash` (хеш, пока не будет использоваться, оставлять пустым по дефолту). Все изменения в Scene Builder должны быть синхронизированы с БД. Если устройство удаляется из сцены, то её интерфейсы также удаляются из таблицы по parent'у.
3. После завершения конфигурации цифрового двойника Backend фоново запускает команду `get_interfaces.py --json={}`, где json - это набор параметров двойника для данного экземпляра. Программа `get_interfaces.py --json={}` внутри будет запускать субпроцесс вида `<command> <package> <executable> <key1>:=<value1> <key2>:=<value2>` и после запуска получать перечень интерфейсов, после чего возвращает веб-сервису все топики и их типы в системе. Веб-сервис записывает их в таблицу. Структура таблицы БД: `parent` (ссылка на экземпляр цифрового двойника из п.2), `topic_name` (строка или path), `msg_type` (строка), `hash` (хеш, пока не будет использоваться, оставлять пустым по дефолту). Все изменения в Scene Builder должны быть синхронизированы с БД. Если устройство удаляется из сцены, то её интерфейсы также удаляются из таблицы по parent'у.
## Пример навыка
см. предыдущий пример (вместо "Цифровой двойник" - "Навык", вместо Scene Builder - BT Builder).
В редакторе деревьев появляется пользовательский Навык (создан на этапе 1-3), при добавлении которого уже известны интерфейсы цифровых двойников (запущены заранее).
5. Пользователь добавляет Навык на холст (под капотом присваивается sid) и конфигурируем его (добавляя уже записанные в БД интерфейсы).
6. При конфигурации навыка пользователь видит только те топики, которые поддерживают данный тип интерфейса (то есть из цифровых двойников или других источников данных).
7. При добавлении навыка, формирующего топик, пользователь указывает его имя и веб-сервис размещает его в таблицу. При удалении данного навыка с холста, топик удаляется.
1-3. см. предыдущий пример (вместо "Цифровой двойник" - "Навык", вместо Scene Builder - BT Builder, вместо Сцены - Холст). При конфигурации навыка пользователь видит только те топики, которые поддерживают данный тип интерфейса (то есть из цифровых двойников или других источников данных). При удалении данного навыка с холста, его интерфейсы удаляются из таблицы.
## Виды цифровых двойников
## Виды цифровых двойников (в разработке)
Parts:
`/parts/bolt_x/mesh_path [std_msgs/FilePath]`