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
| Field | Type | Description |
|---|---|---|
id | int | Unique identifier for the part. |
pose | ArrayLike | 6-element pose vector [x, y, z, rx, ry, rz] in degrees. |
Optional
| Field | Type | Description |
|---|---|---|
x_dim | float | X dimension of the part (float). |
y_dim | float | Y dimension of the part (float). |
z_dim | float | Z dimension of the part (float). |
state | PartState | Current 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"])
