Skip to content

Part

A part with a unique ID, 6-DOF pose [x, y, z, rx, ry, rz] (position and rotation in degrees), and optional dimensions (x_dim, y_dim, z_dim) and state (PartState enum).

Field

Required

FieldTypeDescription
idintUnique identifier for the part.
poseArrayLike6-element pose vector [x, y, z, rx, ry, rz] in degrees.

Optional

FieldTypeDescription
x_dimfloatX dimension of the part (float).
y_dimfloatY dimension of the part (float).
z_dimfloatZ dimension of the part (float).
statePartStateCurrent state of the part. See Enums for all values.

Example

python
from datatypes import datatypes
from datatypes.datatypes import PartState
from loguru import logger

# ------------------------------------------------
# 1. Create Part instance
# ------------------------------------------------
part = datatypes.Part(
    id=1,
    pose=[100.0, 200.0, 50.0, 0.0, 0.0, 90.0],
    x_dim=10.5,
    y_dim=20.0,
    z_dim=5.0,
    state=PartState.VISIBLE,
)

# ------------------------------------------------
# 2. Access data via to_dict
# ------------------------------------------------
part_dict = part.to_dict()
logger.info("Part to_dict id={}", part_dict["id"])
logger.info("Part to_dict pose={}", part_dict["pose"])
logger.info("Part to_dict x_dim={}", part_dict["x_dim"])
logger.info("Part to_dict y_dim={}", part_dict["y_dim"])
logger.info("Part to_dict z_dim={}", part_dict["z_dim"])
logger.info("Part to_dict state={}", part_dict["state"])

# ------------------------------------------------
# 3. Minimal Part (optional fields omitted)
# ------------------------------------------------
minimal_part = datatypes.Part(id=2, pose=[0, 0, 0, 0, 0, 0])
minimal_dict = minimal_part.to_dict()
logger.info("Minimal Part to_dict id={}", minimal_dict["id"])
logger.info("Minimal Part to_dict x_dim={}", minimal_dict["x_dim"])
logger.info("Minimal Part to_dict state={}", minimal_dict["state"])