From a5783618c53dc24f3599933890de7260017ef361 Mon Sep 17 00:00:00 2001 From: Igor Brylev Date: Wed, 14 Aug 2024 14:36:49 +0000 Subject: [PATCH] Update entities.md --- docs/entities.md | 47 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/docs/entities.md b/docs/entities.md index f0a7adb..581a9a7 100644 --- a/docs/entities.md +++ b/docs/entities.md @@ -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 фоново запускает команду ` := :=`. После также запускает команду `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={}` внутри будет запускать субпроцесс вида ` := :=` и после запуска получать перечень интерфейсов, после чего возвращает веб-сервису все топики и их типы в системе. Веб-сервис записывает их в таблицу. Структура таблицы БД: `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]`