isaaclab_newton.ik#

Newton inverse-kinematics utilities.

Classes#

The following classes are part of the public isaaclab_newton.ik API.

NewtonIKJointLimitObjective

Soft joint-limit constraint reading the model's coordinate limits.

NewtonIKJointLimitObjectiveCfg

Soft joint-limit constraint penalizing coordinates outside the model limits.

NewtonIKObjective

Base built IK objective.

NewtonIKObjectiveCfg

Base configuration for a Newton IK objective.

NewtonIKPoseObjective

Command-driven position + rotation objective tracking one end-effector body.

NewtonIKPoseObjectiveCfg

A pose objective tracking one end-effector body.

NewtonIKSolver

Batched wrapper around Newton's inverse-kinematics solver.

NewtonIKSolverCfg

Configuration for the Newton inverse-kinematics solver.

class isaaclab_newton.ik.NewtonIKJointLimitObjective[source]#

Bases: NewtonIKObjective

Soft joint-limit constraint reading the model’s coordinate limits.

Methods:

__new__(*args, **kwargs)

__init__(cfg, ctx)

classmethod __new__(*args, **kwargs)#
__init__(cfg: NewtonIKJointLimitObjectiveCfg, ctx: NewtonIKBuildContext)[source]#
class isaaclab_newton.ik.NewtonIKJointLimitObjectiveCfg[source]#

Bases: NewtonIKObjectiveCfg

Soft joint-limit constraint penalizing coordinates outside the model limits.

A constraint-only objective: it adds a Newton residual but no action dimensions.

Methods:

__new__(*args, **kwargs)

__init__([class_type, weight])

classmethod __new__(*args, **kwargs)#
__init__(class_type: type | str = <factory>, weight: float = <factory>) None#
class isaaclab_newton.ik.NewtonIKObjective[source]#

Bases: object

Base built IK objective.

Owns the concrete newton.ik.IKObjective instances in solver_objectives. Pose objectives also set a name and a non-zero action_dim; constraint objectives leave the defaults.

Methods:

__new__(*args, **kwargs)

__init__()

classmethod __new__(*args, **kwargs)#
__init__()#
class isaaclab_newton.ik.NewtonIKObjectiveCfg[source]#

Bases: object

Base configuration for a Newton IK objective.

Subclasses set class_type to the runtime implementation, which the solver instantiates as class_type(cfg, model=..., num_envs=..., device=..., link_resolver=...). The implementation exposes the concrete newton.ik.IKObjective instances appended to the solver and, for command-driven objectives, an action-dimension contribution.

Methods:

__new__(*args, **kwargs)

__init__([class_type])

classmethod __new__(*args, **kwargs)#
__init__(class_type: type | str = <factory>) None#
class isaaclab_newton.ik.NewtonIKPoseObjective[source]#

Bases: NewtonIKObjective

Command-driven position + rotation objective tracking one end-effector body.

Exposes its command convention to the action’s Warp kernel as data: command_code / use_relative, the per-coordinate scale (wp.float32), the target-frame offset (wp.transformf), and the position/rotation target arrays the kernel writes into.

Methods:

__init__(cfg, ctx)

__new__(*args, **kwargs)

__init__(cfg: NewtonIKPoseObjectiveCfg, ctx: NewtonIKBuildContext)[source]#
classmethod __new__(*args, **kwargs)#
class isaaclab_newton.ik.NewtonIKPoseObjectiveCfg[source]#

Bases: NewtonIKObjectiveCfg

A pose objective tracking one end-effector body.

This is the command-driven objective: it contributes action dimensions (3 for "position", 6 for relative "pose", 7 for absolute "pose") and maps its slice of the policy action onto a target pose for body_name. Multiple pose objectives drive a multi-body solve, each with its own body, command convention, weights and scale.

Methods:

__new__(*args, **kwargs)

__init__([class_type, body_name, name, ...])

classmethod __new__(*args, **kwargs)#
__init__(class_type: type | str = <factory>, body_name: str = <factory>, name: str | None = <factory>, body_offset_pos: tuple[float, float, float] = <factory>, body_offset_rot: tuple[float, float, float, float] = <factory>, command_type: str = <factory>, use_relative_mode: bool = <factory>, scale: float | tuple[float, ...] = <factory>, position_weight: float = <factory>, rotation_weight: float = <factory>) None#
class isaaclab_newton.ik.NewtonIKSolver[source]#

Bases: object

Batched wrapper around Newton’s inverse-kinematics solver.

The solver is configured by an ordered list of NewtonIKObjectiveCfg. Each cfg is resolved to its runtime NewtonIKObjective and its concrete Newton objectives are appended to the underlying newton.ik.IKSolver. The built objectives are exposed via objectives / objectives_by_name; callers update a pose objective’s target by calling set_target_pose() on it directly.

The solver solves num_envs independent problems and is agnostic to how targets are produced – the prototype-broadcast policy used by the Newton IK action term lives in the action, not here. link_resolver maps an objective’s body name to a Newton link index; the caller owns it because the name-to-index mapping depends on the model layout (e.g. cloned env prefixes).

Methods:

__init__(cfg, *, model, num_envs, device, ...)

__new__(*args, **kwargs)

__init__(cfg: NewtonIKSolverCfg, *, model, num_envs: int, device: str, objectives: Sequence[NewtonIKObjectiveCfg], link_resolver: Callable[[str], int])[source]#
classmethod __new__(*args, **kwargs)#
class isaaclab_newton.ik.NewtonIKSolverCfg[source]#

Bases: object

Configuration for the Newton inverse-kinematics solver.

Holds solver hyperparameters only. Objectives (and their residual weights) are configured separately as a list of NewtonIKObjectiveCfg passed to the solver. Command semantics for manager-based actions (command_type, use_relative_mode) live on the action cfg.

class_type selects the solver implementation, so an alternative solver can be dropped in via config without changing callers.

Methods:

__new__(*args, **kwargs)

__init__([class_type, optimizer, ...])

classmethod __new__(*args, **kwargs)#
__init__(class_type: type | str = <factory>, optimizer: str = <factory>, jacobian_mode: str = <factory>, sampler: str = <factory>, n_seeds: int = <factory>, noise_std: float = <factory>, rng_seed: int = <factory>, iterations: int = <factory>, step_size: float = <factory>, lambda_initial: float = <factory>) None#