Skip to content

novaphy.SceneJointMetadata

Per-joint metadata recovered by the URDF scene-build path. Resolves the source 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 Legacy/misnamed field currently populated with the child body/articulation-link ordinal; it is not necessarily a valid Model articulation ID.
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.
has_mimic Whether the source joint has mimic metadata.
mimic_joint, mimic_multiplier, mimic_offset Source mimic target and affine parameters.
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