Skip to content

novaphy.ik.JointBodyBundle

Python-only (joints, bodies) bridge used by legacy helpers and the class-style analytic Jacobian path.

JointBodyBundle(joints, bodies)

The entries must be in parent-before-child order, with one body per joint. The bridge lazily builds and caches a temporary NovaPhy Model; it does not reintroduce a C++ Articulation container.

Methods and attributes

Member Description
joints, bodies Copied Python lists.
num_links() Number of joint/link entries.
total_q() Sum of joint.num_q().
total_qd() Sum of joint.num_qd().
q_start(link) Coordinate-vector offset for a link.
qd_start(link) DOF-vector offset for a link.

The analytic and finite-difference Jacobian implementations in bundle mode currently populate only Revolute/Prismatic columns. Ball, Free, and D6 columns remain zero, and the high-level optimizers require total_q() == total_qd().

Legacy functions also accept an object with joints/bodies attributes or a plain joint list. Plain lists receive default RigidBody entries.

See also