novaphy.SceneJointMetadata¶
Per-joint metadata recovered during scene build. Resolves the URDF / USD
joint name to its DOF layout (q_start / qd_start, num_q / num_qd)
and records joint limits / friction / damping along with whether the joint
was eliminated by fixed-joint collapse.
Attributes¶
| Attribute | Description |
|---|---|
joint_name |
Original URDF / USD joint name. |
parent_link_name |
Parent link name. |
child_link_name |
Child link name. |
joint_type |
URDF joint type string ("revolute", "prismatic", …) — same vocabulary as UrdfJoint.type. |
urdf_joint_index |
Original URDF joint index. |
articulation_index |
Articulation the joint belongs to. |
q_start |
Start offset into the articulation's joint_q buffer. |
qd_start |
Start offset into the articulation's joint_qd buffer. |
num_q |
Number of generalized-position slots (1 for revolute / prismatic, 7 for free, …). |
num_qd |
Number of generalized-velocity slots. |
lower_limit, upper_limit |
Position limits (radians or meters depending on joint type). |
effort_limit, velocity_limit |
Effort and velocity limits. |
damping, friction |
Joint-level damping and friction coefficients. |
collapsed |
True when the joint was eliminated by fixed-joint collapse (no DOF in the runtime). |
Example¶
import novaphy
result = novaphy.SceneBuilderEngine().build_from_urdf(data)
for j in result.metadata.joints:
if j.collapsed:
continue
print(f"{j.joint_name}: qd[{j.qd_start}:{j.qd_start + j.num_qd}] "
f"limits=[{j.lower_limit:.3f}, {j.upper_limit:.3f}]")