Skip to content

Honor articulation controller retargeting and joint index zero - #787

Open
sylvesterkaczmarek wants to merge 2 commits into
isaac-sim:developfrom
sylvesterkaczmarek:fix/articulation-controller-input-refresh
Open

Honor articulation controller retargeting and joint index zero#787
sylvesterkaczmarek wants to merge 2 commits into
isaac-sim:developfrom
sylvesterkaczmarek:fix/articulation-controller-input-refresh

Conversation

@sylvesterkaczmarek

Copy link
Copy Markdown

Description

Fix two input-refresh bugs in IsaacArticulationController.

First, the controller resolves robotPath / targetPrim only during initialisation. If the robot target changes later, the cached Articulation remains bound to the previous robot and subsequent commands are applied to the wrong articulation.

Second, explicit joint-index selection uses np.asarray(joint_indices).any() to decide whether an index list is present. For jointIndices=[0], .any() is false, so DOF 0 is treated as if no explicit index were supplied and the controller can fall through to the all-DOFs path.

This change resolves the requested robot on each compute and rebuilds the controller when it changes. It also tests index-list presence by size rather than value, so zero is a valid explicit DOF index.

Validation

  • regression test verifies jointIndices=[0] applies a one-value command specifically to DOF 0
  • regression test verifies changing /RobotA to /RobotB reinitializes the articulation controller
  • existing name/index selection and command-validation behavior is unchanged
  • production change is confined to the controller compute path

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant