Skip to content

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}]")

See Also