Skip to content

Commit 8aa4bf6

Browse files
committed
Update changelog fragments for the data-layer migration
- isaaclab: replace get_jacobians / get_mass_matrix / get_gravity_compensation_forces method entries with the new body_link_jacobian_w / body_com_jacobian_w / mass_matrix / gravity_compensation_forces properties on BaseArticulationData. - isaaclab_physx: rephrase the Fixed entry to describe the latent frame mismatch the new link-origin Jacobian closes (without marking the entry **Breaking** in a minor fragment, since the old methods were never released). - isaaclab_newton / isaaclab_ovphysx / isaaclab_tasks: align references to the new data-layer property names.
1 parent 1d620d4 commit 8aa4bf6

5 files changed

Lines changed: 93 additions & 55 deletions

File tree

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
Added
22
^^^^^
33

4-
* Added :meth:`~isaaclab.assets.BaseArticulation.get_jacobians`,
5-
:meth:`~isaaclab.assets.BaseArticulation.get_mass_matrix`, and
6-
:meth:`~isaaclab.assets.BaseArticulation.get_gravity_compensation_forces`
7-
abstract methods, so task-space controllers no longer call PhysX-only
8-
``root_view`` accessors directly. Backends without a native
9-
primitive raise :class:`NotImplementedError`.
4+
* Added :attr:`~isaaclab.assets.BaseArticulationData.body_link_jacobian_w` and
5+
:attr:`~isaaclab.assets.BaseArticulationData.body_com_jacobian_w` properties,
6+
exposing the per-body geometric Jacobian referenced at the link origin and
7+
body center of mass respectively. The pair mirrors the existing
8+
:attr:`~isaaclab.assets.BaseArticulationData.body_link_pose_w` /
9+
:attr:`~isaaclab.assets.BaseArticulationData.body_com_pose_w` and
10+
:attr:`~isaaclab.assets.BaseArticulationData.body_link_vel_w` /
11+
:attr:`~isaaclab.assets.BaseArticulationData.body_com_vel_w` exposure pattern.
12+
Backends without a native primitive raise :class:`NotImplementedError`.
13+
* Added :attr:`~isaaclab.assets.BaseArticulationData.mass_matrix` property,
14+
exposing the joint-space generalized mass matrix ``M(q)``.
15+
* Added :attr:`~isaaclab.assets.BaseArticulationData.gravity_compensation_forces`
16+
property, exposing the joint-space gravity-loading torque vector ``g(q)``.
1017
* Added :attr:`~isaaclab.assets.BaseArticulation.joint_to_jacobi_offset`
11-
property: the offset added to a state-space joint index to get the
12-
matching Jacobian column index. Concrete with
13-
:class:`NotImplementedError` on the base class so backends declare
14-
their own convention explicitly. Returns 0 on backends whose
15-
Jacobian counts the same DoFs as joint-state buffers, and 6 on
16-
PhysX floating-base where the Jacobian prepends 6 floating-base
17-
DoFs.
18+
property: the offset added to a state-space joint index to get the matching
19+
Jacobian column index. Concrete with :class:`NotImplementedError` on the
20+
base class so backends declare their own convention explicitly. Returns
21+
``0`` on backends whose Jacobian counts the same DoFs as joint-state
22+
buffers, and ``6`` on PhysX floating-base where the Jacobian prepends
23+
6 floating-base DoFs.
1824

1925
Changed
2026
^^^^^^^
@@ -23,7 +29,7 @@ Changed
2329
:class:`~isaaclab.envs.mdp.actions.task_space_actions.OperationalSpaceControllerAction`,
2430
and :class:`~isaaclab.envs.mdp.actions.rmpflow_task_space_actions.RMPFlowAction`
2531
to fetch dynamic quantities through the new
26-
:class:`~isaaclab.assets.BaseArticulation` accessors instead of the
32+
:class:`~isaaclab.assets.BaseArticulationData` properties instead of the
2733
PhysX-only ``root_view``. The OSC action term now also gates the
2834
per-step mass-matrix and gravity-compensation fetches behind the
2935
controller cfg's :attr:`inertial_dynamics_decoupling`,
@@ -35,3 +41,12 @@ Changed
3541
:attr:`~isaaclab.assets.BaseArticulation.joint_to_jacobi_offset`
3642
property, so backends with different floating-base joint-axis
3743
conventions work without changes to the action terms.
44+
* PhysX backend's :attr:`body_link_jacobian_w` applies the COM→origin shift to
45+
PhysX's natively COM-referenced Jacobian. The previously-exposed
46+
``Articulation.get_jacobians()`` was a passthrough that returned the raw
47+
COM-referenced Jacobian, while IK / OSC consumers also read
48+
:attr:`body_link_pose_w` as the EE pose setpoint — a frame mismatch that
49+
produced a ``ω × r_com_w`` per-body bias in tracking. The new property
50+
reads the same engine buffer and applies the shift so ``J · q_dot`` matches
51+
``body_link_lin_vel_w``. Consumers that intentionally want the raw
52+
COM-referenced form can read :attr:`body_com_jacobian_w`.

source/isaaclab_newton/changelog.d/jichuanh-ik-newton-compat-mvp.minor.rst

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,39 @@ Added
22
^^^^^
33

44
* Added :attr:`~isaaclab_newton.assets.Articulation.joint_to_jacobi_offset`
5-
override returning ``0``. Newton's
6-
``ArticulationView.joint_dof_count`` already counts the 6
7-
floating-base DoFs on floating-base assets, so a state-space
8-
joint index is also the matching Jacobian column index without
9-
any shift.
10-
* Added :meth:`~isaaclab_newton.assets.Articulation.get_jacobians`
11-
and :meth:`~isaaclab_newton.assets.Articulation.get_mass_matrix`
12-
wrapping ``ArticulationView.eval_jacobian`` and
13-
``ArticulationView.eval_mass_matrix`` and returning view-sized
14-
arrays matching the PhysX shape contract. Per-step behavior is
15-
allocation-free and safe under CUDA graph capture: source / scratch
16-
/ output buffers are pre-allocated in ``_create_buffers``, and new
5+
override returning ``0``. Newton's ``ArticulationView.joint_dof_count``
6+
already counts the 6 floating-base DoFs on floating-base assets, so a
7+
state-space joint index is also the matching Jacobian column index
8+
without any shift.
9+
* Added Newton implementations of
10+
:attr:`~isaaclab.assets.BaseArticulationData.body_link_jacobian_w`,
11+
:attr:`~isaaclab.assets.BaseArticulationData.body_com_jacobian_w`, and
12+
:attr:`~isaaclab.assets.BaseArticulationData.mass_matrix` on
13+
:class:`~isaaclab_newton.assets.ArticulationData`. The properties wrap
14+
``ArticulationView.eval_jacobian`` and ``ArticulationView.eval_mass_matrix``
15+
with view-sized output buffers cached via the standard timestamped-buffer
16+
pattern. Per-step behavior is allocation-free and safe under CUDA-graph
17+
capture: source / scratch / output buffers are pre-allocated in
18+
``_create_buffers``, and
1719
:func:`~isaaclab_newton.assets.articulation.kernels.gather_jacobian_rows`
1820
and :func:`~isaaclab_newton.assets.articulation.kernels.gather_mass_matrix_rows`
19-
Warp kernels gather just this view's rows from the model-sized
20-
buffers Newton populates.
21-
* Added a new
21+
Warp kernels gather just this view's rows from the model-sized buffers
22+
Newton populates.
23+
* Added the
2224
:func:`~isaaclab_newton.assets.articulation.kernels.shift_jacobian_com_to_origin`
23-
Warp kernel that applies the
25+
Warp kernel applying the
2426
``v_origin = v_com - omega x (R · body_com_pos_b)`` shift to the
25-
linear-velocity rows of the gathered, view-sized Jacobian, so the
26-
returned Jacobian's linear rows reference the link origin in world
27-
frame -- matching the cross-backend
28-
:meth:`~isaaclab.assets.BaseArticulation.get_jacobians` contract.
27+
linear-velocity rows of the gathered, view-sized Jacobian, so the link-
28+
origin form matches the cross-backend
29+
:attr:`~isaaclab.assets.BaseArticulationData.body_link_jacobian_w`
30+
contract.
2931

3032
Fixed
3133
^^^^^
3234

33-
* Fixed :meth:`~isaaclab_newton.assets.Articulation.get_jacobians` and
34-
:meth:`~isaaclab_newton.assets.Articulation.get_mass_matrix` returning
35+
* Fixed
36+
:attr:`~isaaclab_newton.assets.ArticulationData.body_link_jacobian_w`
37+
and :attr:`~isaaclab_newton.assets.ArticulationData.mass_matrix` returning
3538
the wrong DoF columns for floating-base articulations. The IsaacLab
3639
Newton view is constructed with ``exclude_joint_types=[FREE, FIXED]``
3740
so its joint count excludes the free-root joint, but Newton's
@@ -47,7 +50,7 @@ Fixed
4750
Changed
4851
^^^^^^^
4952

50-
* :meth:`~isaaclab_newton.assets.Articulation.get_gravity_compensation_forces`
53+
* :attr:`~isaaclab_newton.assets.ArticulationData.gravity_compensation_forces`
5154
raises :class:`NotImplementedError` with a message pointing at the
5255
upstream gap. Newton's ``ArticulationView`` does not expose an
5356
inverse-dynamics primitive yet (upstream Newton issues
Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
Added
2-
^^^^^
1+
Changed
2+
^^^^^^^
33

4-
* Added concrete-with-:class:`NotImplementedError` stubs for the new
5-
:meth:`~isaaclab.assets.BaseArticulation.get_jacobians`,
6-
:meth:`~isaaclab.assets.BaseArticulation.get_mass_matrix`, and
7-
:meth:`~isaaclab.assets.BaseArticulation.get_gravity_compensation_forces`
8-
abstract methods, so the ovphysx ``Articulation`` class remains
9-
instantiable.
4+
* Inherits the base
5+
:attr:`~isaaclab.assets.BaseArticulationData.body_link_jacobian_w`,
6+
:attr:`~isaaclab.assets.BaseArticulationData.body_com_jacobian_w`,
7+
:attr:`~isaaclab.assets.BaseArticulationData.mass_matrix`, and
8+
:attr:`~isaaclab.assets.BaseArticulationData.gravity_compensation_forces`
9+
:class:`NotImplementedError` defaults — ovphysx's OmniGraph-based view
10+
does not expose articulation Jacobians, mass matrices, or gravity
11+
compensation. Use the PhysX or Newton backends for task-space
12+
controllers.

source/isaaclab_physx/changelog.d/jichuanh-ik-newton-compat-mvp.rst

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,28 @@ Added
22
^^^^^
33

44
* Added PhysX implementations of
5-
:meth:`~isaaclab.assets.BaseArticulation.get_jacobians`,
6-
:meth:`~isaaclab.assets.BaseArticulation.get_mass_matrix`, and
7-
:meth:`~isaaclab.assets.BaseArticulation.get_gravity_compensation_forces`
8-
as one-line passthroughs to the corresponding
9-
``physx.ArticulationView`` methods, plus the
10-
:attr:`~isaaclab_physx.assets.Articulation.joint_to_jacobi_offset`
11-
override that returns ``6`` for floating-base articulations
12-
(PhysX prepends 6 floating-base DoFs to the Jacobian's joint
13-
axis) and ``0`` for fixed-base.
5+
:attr:`~isaaclab.assets.BaseArticulationData.body_link_jacobian_w`,
6+
:attr:`~isaaclab.assets.BaseArticulationData.body_com_jacobian_w`,
7+
:attr:`~isaaclab.assets.BaseArticulationData.mass_matrix`, and
8+
:attr:`~isaaclab.assets.BaseArticulationData.gravity_compensation_forces`
9+
on :class:`~isaaclab_physx.assets.ArticulationData`. The COM
10+
variant is a passthrough to ``physx.ArticulationView.get_jacobians``;
11+
the link-origin variant applies a new
12+
:func:`~isaaclab_physx.assets.articulation.kernels.shift_jacobian_com_to_origin`
13+
Warp kernel to convert the COM-referenced linear-velocity rows to
14+
link-origin references using each body's pose and COM offset.
15+
* Added :attr:`~isaaclab_physx.assets.Articulation.joint_to_jacobi_offset`
16+
override returning ``6`` for floating-base articulations (PhysX prepends
17+
6 floating-base DoFs to the Jacobian's joint axis) and ``0`` for fixed-base.
18+
19+
Fixed
20+
^^^^^
21+
22+
* Fixed a latent correctness bug in IK / OSC controllers on the PhysX
23+
backend, where the previously-exposed Jacobian was COM-referenced but
24+
the controllers used :attr:`~isaaclab_physx.assets.ArticulationData.body_link_pose_w`
25+
as the EE pose setpoint. The frame mismatch caused tracking error on
26+
bodies whose COM offset is non-trivial. The new
27+
:attr:`~isaaclab.assets.BaseArticulationData.body_link_jacobian_w`
28+
applies the COM→origin shift so the Jacobian and pose share a
29+
reference point.

source/isaaclab_tasks/changelog.d/jichuanh-ik-newton-compat-mvp.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ Changed
99
the default in ``ReachPhysicsCfg``. Direct-workflow callers in
1010
``automate``, ``factory``, and the deploy MDP events module were
1111
migrated to the new
12-
:class:`~isaaclab.assets.BaseArticulation` accessors.
12+
:class:`~isaaclab.assets.BaseArticulationData` properties
13+
(:attr:`body_link_jacobian_w`, :attr:`mass_matrix`).

0 commit comments

Comments
 (0)