Skip to content

Backport ControllerDifferentialIK and assemble 1.6 changelog - #4156

Merged
jcarius-nv merged 3 commits into
newton-physics:release-1.6from
jcarius-nv:jcarius/release-1.6-backport-4129-changelog
Sep 4, 2026
Merged

Backport ControllerDifferentialIK and assemble 1.6 changelog#4156
jcarius-nv merged 3 commits into
newton-physics:release-1.6from
jcarius-nv:jcarius/release-1.6-backport-4129-changelog

Conversation

@jcarius-nv

Copy link
Copy Markdown
Member

Description

Backport #4129 to release-1.6, adding the model-based and model-free
ControllerDifferentialIK APIs and their registered example.

The first commit is a clean git cherry-pick -x of main commit
55c824a12f878f010eb5c4b95e2335c6d84f75eb.

The second commit assembles the pending Towncrier fragments into the rolling
1.6.0 section dated 2026-09-04 and removes the consumed fragment and .skip
files. Previously released changelog sections are unchanged.

Please merge this PR without squashing so the source backport and changelog
management commit remain independently traceable. The changelog commit will
later be synchronized to main after the release.

Checklist

  • New or existing tests cover these changes
  • The documentation is up to date with these changes
  • For user-facing changes, a fragment has been added by following the
    changelog fragment instructions

Test plan

uv lock --check
uv run docs/generate_api.py
uv run --extra dev -m newton.tests -k test_controllers_differential_ik -k test_controllers_one_sided_jacobi_svd_solver -k test_examples.example_controller_differential_ik
uvx --from towncrier==25.8.0 towncrier build --draft --version 1.6.0 --date 2026-09-04
uvx --python 3.12 pre-commit run -a

The focused controller run passed 145 CPU/CUDA tests. Changelog validation
confirmed 139 entries in the five supported categories, no duplicate
top-level entries, an empty [Unreleased] section, no remaining fragments,
and no changes to the 1.5.1 or older release history.

New feature / API change

from newton.controllers import ControllerDifferentialIK, DifferentialIKMethod

controller = ControllerDifferentialIK(
    model,
    articulations="panda_*",
    joints=[f"panda_joint{i}" for i in range(1, 8)],
    tool_sites="fr3_hand_tcp",
    bandwidth=5.0,
    ik_method=DifferentialIKMethod.ADAPTIVE_DAMPING,
    adaptive_damping_min=0.02,
    adaptive_damping_max=0.5,
    adaptive_damping_threshold=0.2,
)

jeff-hough and others added 2 commits September 4, 2026 14:47
Build the pending Towncrier fragments into the rolling 1.6.0 release
section. Remove the consumed fragments and skip records while preserving
previously released history.
@jcarius-nv
jcarius-nv requested a review from a team as a code owner September 4, 2026 13:07
@jcarius-nv jcarius-nv added this to the 1.6 Release milestone Sep 4, 2026
@jcarius-nv jcarius-nv added the release-management Label to tag tasks that are relevant for release management and procedures label Sep 4, 2026
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Team

Run ID: aa47282f-d98a-40bc-a90e-a2801a65ed0e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the api-changes This PR modifies public API label Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

API review

Detected 59 interface change(s): 59 added, 0 removed, 0 modified.

  • Added: newton.controllers.ControllerDifferentialIK (class)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs (class)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.bandwidth (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.damping (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.desired_tool_pose_world (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.joint_q (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.joint_qd (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.null_space_damping (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.null_space_stiffness (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Inputs.q_des_null (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Outputs (class)
  • Added: newton.controllers.ControllerDifferentialIK.Outputs.joint_q_target (constant)
  • Added: newton.controllers.ControllerDifferentialIK.Outputs.joint_qd_target (constant)
  • Added: newton.controllers.ControllerDifferentialIK.controlled_robot_count (property)
  • Added: newton.controllers.ControllerDifferentialIK.device (property)
  • Added: newton.controllers.ControllerDifferentialIK.input (method)
  • Added: newton.controllers.ControllerDifferentialIK.is_graphable (method)
  • Added: newton.controllers.ControllerDifferentialIK.max_controlled_dofs (property)
  • Added: newton.controllers.ControllerDifferentialIK.model_robot_count (property)
  • Added: newton.controllers.ControllerDifferentialIK.output (method)
  • … and 39 more change(s).

This check is advisory: the label means API review needed, not that a breaking change is proven.

Make the release notes concise, user-facing, and actionable. Merge semantic duplicates and keep each entry on one physical line while preserving migration guidance and released history.
@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.72193% with 32 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...src/controllers/impl/differential_ik/model_free.py 96.91% 11 Missing ⚠️
...rc/controllers/impl/differential_ik/model_based.py 95.00% 9 Missing ⚠️
newton/_src/controllers/joint_selection.py 86.95% 9 Missing ⚠️
newton/_src/controllers/tool_selection.py 95.58% 3 Missing ⚠️

📢 Thoughts on this report? Let us know!

@jcarius-nv
jcarius-nv merged commit 8798730 into newton-physics:release-1.6 Sep 4, 2026
32 checks passed
@jcarius-nv
jcarius-nv deleted the jcarius/release-1.6-backport-4129-changelog branch September 4, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api-changes This PR modifies public API release-management Label to tag tasks that are relevant for release management and procedures

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants