Bug in OgnIsaacArticulationController “joint_indices” comparison logic

I think there is a bug in the OgnIsaacArticulationController extension (specifically in ...exts/isaacsim.core.nodes/isaacsim/core/nodes/ogn/python/nodes/OgnIsaacArticulationController.py) in lines 110–111:

if np.asarray(joint_indices).any() and np.asarray([joint_indices != state.joint_indices]).flatten().any():
    state.joint_indices = np.array(joint_indices)

Issue:
If joint_indices has a different shape than state.joint_indices (e.g., (n,) vs. (m,)), this comparison can raise a broadcasting error such as:

ValueError: operands could not be broadcast together with shapes ...

Implications:
This issue can surface when multiple controllers are running simultaneously or successively, each commanding a different number of joints, causing inconsistent shapes for joint_indices and thus triggering the error.

Possible Fix:
Use a more robust comparison that checks array equality directly (for example, using np.array_equal). For instance:

if np.asarray(joint_indices).any() and not np.array_equal(joint_indices, state.joint_indices):
    state.joint_indices = np.array(joint_indices)

This approach avoids shape mismatch problems by cleanly determining if the new array differs from the old one.

Request:
Could the development team confirm if this fix is tracked or addressed for a future Isaac Sim release? Meanwhile, the above workaround can help anyone experiencing errors with dynamic or mismatched joint arrays.

Let me know if you need any further details or a full reproducible example. Thanks!

Thank you for reporting this issue. We have logged an internal ticket to address the bug identified in the OgnIsaacArticulationController regarding the joint_indices comparison logic. We will provide updates on this forum thread as they become available.