From dd551f8344228722a0d1aef7c0a54f510d955d55 Mon Sep 17 00:00:00 2001 From: Igor Brylev Date: Fri, 16 Aug 2024 13:36:23 +0000 Subject: [PATCH] Add robot config --- docs/example.md | 50 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/docs/example.md b/docs/example.md index 1f2ebf6..3fa8438 100644 --- a/docs/example.md +++ b/docs/example.md @@ -2,7 +2,7 @@ Имеем доску, две модели фигур - коня и пешку, робота, камеру. Задачей будет из фигур в наличии расставить шахматы на доску в начальную позицию. -### Создаём проект +## Создаём проект * Projects ```json { @@ -12,7 +12,7 @@ } ``` -### Добавляем модели твёрдых тел (фигур и доски) в библиотеку проекта +## Добавляем модели твёрдых тел (фигур и доски) в библиотеку проекта Сначала добавляются пакеты: * Packages @@ -56,12 +56,9 @@ Затем при запуске "get_interface.py" для каждого пакета, получаем json со структурой: ```json { - "parts": [{"properties1": "value1", "propertiesN": "valueN"}], "cameras": [{"properties1": "value1", "propertiesN": "valueN"}], "robots": [{"properties1": "value1", "propertiesN": "valueN"}], "topics": [{"properties1": "value1", "propertiesN": "valueN"}], - "datasets": [{"properties1": "value1", "propertiesN": "valueN"}], - "weights": [{"properties1": "value1", "propertiesN": "valueN"}], "...": "" } ``` @@ -83,6 +80,7 @@ } } ``` + ```json { "sid": 2, @@ -97,6 +95,7 @@ } } ``` + ```json { "sid": 3, @@ -113,12 +112,13 @@ ``` Note. Кроме "sid" и "packages" все остальные поля заполняются из массива [{"properties1": "value1", "propertiesN": "valueN"}]. -### Добавляем пакет с моделью камеры в библиотеку проекта - * Packages +# Пример: цифровой двойник "Камера" + +## Добавляем пакет с моделью камеры в библиотеку проекта + ```json { "sid": 3, - "project": 1, "type": "digital_twin", "entity": "CAMERA", "description": "ROS Wrapper for Intel RealSense Cameras", @@ -128,14 +128,18 @@ Note. Кроме "sid" и "packages" все остальные поля запо "args": { "camera_namespace": \${NAME:string:""}, "camera_name": \${NAME:string:""}, + ... // + всё, что сейчас в модели данных в коде }, "interfaces": { "cmd": "python ros2_topic_to_json.py" } } ``` -### Добавляем экземпляр камеры в сцену (Scene Builder) + +## Добавляем экземпляр камеры в сцену (Scene Builder) + При этом запускаем "get_interface.py" и получаем json со структурой, описанной выше, но в данном случае в результате будет + ```json { "cameras": [ @@ -187,7 +191,28 @@ Note. Кроме "sid" и "packages" все остальные поля запо } ``` -### Робот добавляется аналогично камере. +## Робот добавляется аналогично камере + +Модель робота +```json +{ + "sid": 3, + "type": "digital_twin", + "entity": "ROBOT", + "description": "Robossembler Arm", + "command": "ros2 launch", + "package": "rbs_bringup", + "executable": "single_robot.launch.py", + "args": { + "robot_name": \${NAME:string:""}, + "dof": \${NAME:number:""}, + ... // + всё, что сейчас в модели данных в коде + }, + "interfaces": { + "cmd": "python ros2_topic_to_json.py" + } +} +``` * Topics ```json @@ -207,7 +232,8 @@ Note. Кроме "sid" и "packages" все остальные поля запо } ``` -### Добавляем пакет навыка Pose Estimation DOPE в библиотеку проекта +## Добавляем пакет навыка Pose Estimation DOPE в библиотеку проекта + * Packages ```json { @@ -244,7 +270,7 @@ Note. Кроме "sid" и "packages" все остальные поля запо } ``` -### Запускаем "get_interfaces.py" +## Запускаем "get_interfaces.py" * Topics ```json {