Block builder

Block blueprints

exception rostok.block_builder_api.block_blueprints.NotImplementedErrorCreatorInterface(*args: object)
class rostok.block_builder_api.block_blueprints.BlockCreatorInterface

To use it, you need to implement functions for creating from blueprints.

Raises:

NotImplementedErrorCreatorInterface: Need implementation for method in child class

abstract classmethod create_environment_body(blueprint: EnvironmentBodyBlueprint)
abstract classmethod create_primitive_body(blueprint: PrimitiveBodyBlueprint)
abstract classmethod create_revolve_joint(blueprint: RevolveJointBlueprint)
abstract classmethod create_transform(blueprint: TransformBlueprint)
init_block_from_blueprint(blueprint)

Make mapping creation functions with blueprints

Args:

blueprint : Any blueprint

class rostok.block_builder_api.block_blueprints.BodyBlueprintType

Use for mark block category

class rostok.block_builder_api.block_blueprints.EnvironmentBodyBlueprint(shape: rostok.block_builder_api.easy_body_shapes.Box | rostok.block_builder_api.easy_body_shapes.Cylinder | rostok.block_builder_api.easy_body_shapes.Sphere | rostok.block_builder_api.easy_body_shapes.Ellipsoid | rostok.block_builder_api.easy_body_shapes.FromMesh | rostok.block_builder_api.easy_body_shapes.ConvexHull = Box(width_x=0.1, length_y=0.5, height_z=0.1), density: float = 100, material: rostok.utils.dataset_materials.material_dataclass_manipulating.Material = DefaultChronoMaterialNSC(name='default_NSC', type_class='ChMaterialSurfaceNSC', Friction=0.5, Restitution=0.15, Compliance=1e-06, ComplianceT=1e-06, DampingF=1000000.0), is_collide: bool = True, color: list[int] | None = None, pos: rostok.block_builder_api.block_parameters.FrameTransform = FrameTransform(position=[0, 0, 0], rotation=[1, 0, 0, 0]))
color: list[int] | None = None
density: float = 100
is_collide: bool = True
material: Material = DefaultChronoMaterialNSC(name='default_NSC', type_class='ChMaterialSurfaceNSC', Friction=0.5, Restitution=0.15, Compliance=1e-06, ComplianceT=1e-06, DampingF=1000000.0)
pos: FrameTransform = ([0, 0, 0], [1, 0, 0, 0])
shape: Box | Cylinder | Sphere | Ellipsoid | FromMesh | ConvexHull = Box(width_x=0.1, length_y=0.5, height_z=0.1)
class rostok.block_builder_api.block_blueprints.JointBlueprintType

Use to mark block category

class rostok.block_builder_api.block_blueprints.PrimitiveBodyBlueprint(shape: rostok.block_builder_api.easy_body_shapes.Box | rostok.block_builder_api.easy_body_shapes.Cylinder | rostok.block_builder_api.easy_body_shapes.Sphere | rostok.block_builder_api.easy_body_shapes.Ellipsoid | rostok.block_builder_api.easy_body_shapes.FromMesh | rostok.block_builder_api.easy_body_shapes.ConvexHull = Box(width_x=0.1, length_y=0.5, height_z=0.1), density: float = 400, material: rostok.utils.dataset_materials.material_dataclass_manipulating.Material = DefaultChronoMaterialNSC(name='default_NSC', type_class='ChMaterialSurfaceNSC', Friction=0.5, Restitution=0.15, Compliance=1e-06, ComplianceT=1e-06, DampingF=1000000.0), is_collide: bool = True, color: list[int] | None = None)
color: list[int] | None = None
density: float = 400
is_collide: bool = True
material: Material = DefaultChronoMaterialNSC(name='default_NSC', type_class='ChMaterialSurfaceNSC', Friction=0.5, Restitution=0.15, Compliance=1e-06, ComplianceT=1e-06, DampingF=1000000.0)
shape: Box | Cylinder | Sphere | Ellipsoid | FromMesh | ConvexHull = Box(width_x=0.1, length_y=0.5, height_z=0.1)
class rostok.block_builder_api.block_blueprints.RevolveJointBlueprint(type_of_input: rostok.block_builder_api.block_parameters.JointInputType = <JointInputType.TORQUE: 'Torque'>, radius: float = 0.015, length: float = 0.03, material: rostok.utils.dataset_materials.material_dataclass_manipulating.Material = DefaultChronoMaterialNSC(name='default_NSC', type_class='ChMaterialSurfaceNSC', Friction=0.5, Restitution=0.15, Compliance=1e-06, ComplianceT=1e-06, DampingF=1000000.0), density: float = 400, starting_angle: float = 0.0, stiffness: float = 0.0, damping: float = 0.0, offset: float = 0.0, equilibrium_position: float = 0.0, with_collision: bool = True)
damping: float = 0.0
density: float = 400
equilibrium_position: float = 0.0
length: float = 0.03
material: Material = DefaultChronoMaterialNSC(name='default_NSC', type_class='ChMaterialSurfaceNSC', Friction=0.5, Restitution=0.15, Compliance=1e-06, ComplianceT=1e-06, DampingF=1000000.0)
offset: float = 0.0
radius: float = 0.015
starting_angle: float = 0.0
stiffness: float = 0.0
type_of_input: JointInputType = 'Torque'
with_collision: bool = True
class rostok.block_builder_api.block_blueprints.TransformBlueprint(transform: rostok.block_builder_api.block_parameters.FrameTransform = FrameTransform(position=[0, 0, 0], rotation=[1, 0, 0, 0]))
is_transform_input = False
transform: FrameTransform = ([0, 0, 0], [1, 0, 0, 0])
class rostok.block_builder_api.block_blueprints.TransformBlueprintType

Use to mark block category

Block parameters

class rostok.block_builder_api.block_parameters.FrameTransform(position, rotation)
position

Alias for field number 0

rotation

Alias for field number 1

class rostok.block_builder_api.block_parameters.JointInputType(value)

An enumeration.

POSITION = 'Angle'
TORQUE = 'Torque'
UNCONTROL = 'Uncontrol'
VELOCITY = 'Speed'

Shapes

class rostok.block_builder_api.easy_body_shapes.Box(width_x: float = 0.1, length_y: float = 0.5, height_z: float = 0.1)
height_z: float = 0.1
length_y: float = 0.5
width_x: float = 0.1
class rostok.block_builder_api.easy_body_shapes.ConvexHull(points: list[tuple[float, float, float]] = <factory>)
points: list[tuple[float, float, float]]
class rostok.block_builder_api.easy_body_shapes.Cylinder(radius: float = 0.1, height_y: float = 0.5)

The cylinder is created along the Y axis and centered at the center of mass

height_y: float = 0.5
radius: float = 0.1
class rostok.block_builder_api.easy_body_shapes.Ellipsoid(radius_x: float = 0.1, radius_y: float = 0.2, radius_z: float = 0.3)
radius_x: float = 0.1
radius_y: float = 0.2
radius_z: float = 0.3
class rostok.block_builder_api.easy_body_shapes.FromMesh(path: pathlib.Path)
path: Path
class rostok.block_builder_api.easy_body_shapes.Sphere(radius: float = 0.15)
radius: float = 0.15