Разработать мета-модель для Фреймворка #147

Open
opened 2024-03-27 16:21:35 +03:00 by movefasta · 1 comment
movefasta commented 2024-03-27 16:21:35 +03:00 (Migrated from gitlab.com)
# базовые типы значений
ENUM BASETYPE = "string","number";

# сущности
ENUM ENTITY = "PARAM","MESH","PART","ASSEMBLY","ASSET","BTREE","BTACTION","SKILL","DATASET","INTERFACE","WEIGHTS";

SYSTEM:
    { name: Cube_001, function: Protector, model: Cube, position: Pose.msg, cost: Number },
    { name: Cube_002, function: Protector, model: Cube, position: Pose.msg },
    { name: Board_1, function: Computer, model: Arduino_UNO, position: Pose.msg },
    { name: Board_2, function: Driver, model: Arduino_UNO, position: Pose.msg },
    { name: Cube_Assembly_1, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number },
    { name: Cube_Assembly_2, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number },

STRUCTURE:
    { 
        Position : { XYZLOC }
        Cube_Assembly_1 : {
            Cube_001, 
            Cube_002,
            Board_2,
            Board_1
        }
    }

MODELS:
    { name: Cube_Assembly, formats: [stl] },
    Cube
    Arduino_UNO

(Имена уникальные, позиции, структура)
SYSTEM:
    PART (
        { name: Cube_001, function: Protector, model: Cube, position: Pose.msg, cost: Number },
        { name: Cube_002, function: Protector, model: Cube, position: Pose.msg },
        { name: Board_1, function: Computer, model: Arduino_UNO, position: Pose.msg },
        { name: Board_2, function: Driver, model: Arduino_UNO, position: Pose.msg },
    ),
    ASSEMBLY (
        { name: Cube_Assembly_1, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number },
        { name: Cube_Assembly_2, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number },
    )



MODEL: 
MODEL PACKAGE: package.json, где реализованы методы описания step, brep, fbx, stl, dae, ply, mass, csv

Характеристика: Форма
Методы описания: Облака точек, Граничное представление (BREP, чертёж), COLLISION, VISUAL, RENDER

Характеристика: Внешний вид
Методы описания: Цвет/Материал, Текстура

VIEW: , MESH (CG role), PART (CAD role), PARAM (Robotics engineer role)
MODEL: 

CG DOMAIN: Mesh (Облако точек) > Объект (+Позиция) > Модель (Содержит несколько объект + Текстура?) > Ассет ()


SYSTEM, MODULE, POSE

# представления
ENUM REPRESENT = "FILE_LINK",   # строка-ссылка на файл
                 "OBJECT_LINK", # строка-ссылка на объект (ENTITY)
                 "FILE",        # в общем случае сам файл (строка пути к нему)
                 "VALUE",       # непосредственное значение
                 "TREE",        # представление в виде дерева
                 "ARRAY",       # массив значений
                 "SEQUENCE";    # массив объектов

type PART = {
    "name": \${NAME:string:""},
    "pose6d": {"loc_xyz": \${XYZ:Array<number>3:[0.0,0.0,0.0]}, "rot_xyzw": \${XYZW:Array<number>4:[0.0,0.0,0.0,1.0]} },
    "attributes": [
        "Robossembler_NonSolid": True
    ],
    "mesh": \${OBJECT_LINK:MESH},
    "material": "/path/to/robossembler/materials/mmm.FCMat"
};

type ASSEMBLY = {
    name: \${NAME:string:""},
    subassemblies: \${subassemblies:SEQUENCE<ASSEMBLY>},
    parts: \${parts:SEQUENCE<PART>}
};

type PARAM = {
    "name": \${NAME:string:""},
    "represent": \${REPRESENT:Enum<REPRESENT>:"VALUE"}
};

type MESH = {
    "name": \${NAME:string:""},
    "file": \${FILE:string:"*.stl"},
    "path": \${PATH:string:"/path/to"}
};


type MODEL = {
    "name": \${NAME:string:""},
    "unit_scale": \${UNIT_SCALE:number:1.0},
    "dimensions": \${DIMENSIONS:Array<number>3:[0.0,0.0,0.0]}
};

type ASSET = {
    "name": \${NAME:string:""},
};

type BTREE = {
    "name": \${NAME:string:""},
};

type BTACTION = {
    "name": \${NAME:string:""},
};

type SKILL = {
    "name": \${NAME:string:""},
};

type DATASET = {
    "name": \${NAME:string:""},
};

type WEIGHTS = {
    "name": \${NAME:string:""},
    "file": \${FILE:string:"*.pth"},
    "epoch": \${EPOCH:number:""},
};

type INTERFACE = {
    "name": \${NAME:string:""},
    "in": [PARAM],
    "out": []
};

``` # базовые типы значений ENUM BASETYPE = "string","number"; # сущности ENUM ENTITY = "PARAM","MESH","PART","ASSEMBLY","ASSET","BTREE","BTACTION","SKILL","DATASET","INTERFACE","WEIGHTS"; SYSTEM: { name: Cube_001, function: Protector, model: Cube, position: Pose.msg, cost: Number }, { name: Cube_002, function: Protector, model: Cube, position: Pose.msg }, { name: Board_1, function: Computer, model: Arduino_UNO, position: Pose.msg }, { name: Board_2, function: Driver, model: Arduino_UNO, position: Pose.msg }, { name: Cube_Assembly_1, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number }, { name: Cube_Assembly_2, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number }, STRUCTURE: { Position : { XYZLOC } Cube_Assembly_1 : { Cube_001, Cube_002, Board_2, Board_1 } } MODELS: { name: Cube_Assembly, formats: [stl] }, Cube Arduino_UNO (Имена уникальные, позиции, структура) SYSTEM: PART ( { name: Cube_001, function: Protector, model: Cube, position: Pose.msg, cost: Number }, { name: Cube_002, function: Protector, model: Cube, position: Pose.msg }, { name: Board_1, function: Computer, model: Arduino_UNO, position: Pose.msg }, { name: Board_2, function: Driver, model: Arduino_UNO, position: Pose.msg }, ), ASSEMBLY ( { name: Cube_Assembly_1, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number }, { name: Cube_Assembly_2, function: X, model: Cube_Assembly, position: Pose.msg, cost: Number }, ) MODEL: MODEL PACKAGE: package.json, где реализованы методы описания step, brep, fbx, stl, dae, ply, mass, csv Характеристика: Форма Методы описания: Облака точек, Граничное представление (BREP, чертёж), COLLISION, VISUAL, RENDER Характеристика: Внешний вид Методы описания: Цвет/Материал, Текстура VIEW: , MESH (CG role), PART (CAD role), PARAM (Robotics engineer role) MODEL: CG DOMAIN: Mesh (Облако точек) > Объект (+Позиция) > Модель (Содержит несколько объект + Текстура?) > Ассет () SYSTEM, MODULE, POSE # представления ENUM REPRESENT = "FILE_LINK", # строка-ссылка на файл "OBJECT_LINK", # строка-ссылка на объект (ENTITY) "FILE", # в общем случае сам файл (строка пути к нему) "VALUE", # непосредственное значение "TREE", # представление в виде дерева "ARRAY", # массив значений "SEQUENCE"; # массив объектов type PART = { "name": \${NAME:string:""}, "pose6d": {"loc_xyz": \${XYZ:Array<number>3:[0.0,0.0,0.0]}, "rot_xyzw": \${XYZW:Array<number>4:[0.0,0.0,0.0,1.0]} }, "attributes": [ "Robossembler_NonSolid": True ], "mesh": \${OBJECT_LINK:MESH}, "material": "/path/to/robossembler/materials/mmm.FCMat" }; type ASSEMBLY = { name: \${NAME:string:""}, subassemblies: \${subassemblies:SEQUENCE<ASSEMBLY>}, parts: \${parts:SEQUENCE<PART>} }; type PARAM = { "name": \${NAME:string:""}, "represent": \${REPRESENT:Enum<REPRESENT>:"VALUE"} }; type MESH = { "name": \${NAME:string:""}, "file": \${FILE:string:"*.stl"}, "path": \${PATH:string:"/path/to"} }; type MODEL = { "name": \${NAME:string:""}, "unit_scale": \${UNIT_SCALE:number:1.0}, "dimensions": \${DIMENSIONS:Array<number>3:[0.0,0.0,0.0]} }; type ASSET = { "name": \${NAME:string:""}, }; type BTREE = { "name": \${NAME:string:""}, }; type BTACTION = { "name": \${NAME:string:""}, }; type SKILL = { "name": \${NAME:string:""}, }; type DATASET = { "name": \${NAME:string:""}, }; type WEIGHTS = { "name": \${NAME:string:""}, "file": \${FILE:string:"*.pth"}, "epoch": \${EPOCH:number:""}, }; type INTERFACE = { "name": \${NAME:string:""}, "in": [PARAM], "out": [] }; ```
movefasta commented 2024-03-27 16:21:36 +03:00 (Migrated from gitlab.com)

assigned to @movefasta

assigned to @movefasta
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: robossembler/framework#147
No description provided.