isaaclab_newton.ik#
Newton inverse-kinematics utilities.
Classes#
The following classes are part of the public isaaclab_newton.ik API.
Soft joint-limit constraint reading the model's coordinate limits. |
|
Soft joint-limit constraint penalizing coordinates outside the model limits. |
|
Base built IK objective. |
|
Base configuration for a Newton IK objective. |
|
Command-driven position + rotation objective tracking one end-effector body. |
|
A pose objective tracking one end-effector body. |
|
Batched wrapper around Newton's inverse-kinematics solver. |
|
Configuration for the Newton inverse-kinematics solver. |
- class isaaclab_newton.ik.NewtonIKJointLimitObjective[source]#
Bases:
NewtonIKObjectiveSoft joint-limit constraint reading the model’s coordinate limits.
Methods:
- classmethod __new__(*args, **kwargs)#
- __init__(cfg: NewtonIKJointLimitObjectiveCfg, ctx: NewtonIKBuildContext)[source]#
- class isaaclab_newton.ik.NewtonIKJointLimitObjectiveCfg[source]#
Bases:
NewtonIKObjectiveCfgSoft joint-limit constraint penalizing coordinates outside the model limits.
A constraint-only objective: it adds a Newton residual but no action dimensions.
Methods:
- classmethod __new__(*args, **kwargs)#
- class isaaclab_newton.ik.NewtonIKObjective[source]#
Bases:
objectBase built IK objective.
Owns the concrete
newton.ik.IKObjectiveinstances insolver_objectives. Pose objectives also set anameand a non-zeroaction_dim; constraint objectives leave the defaults.Methods:
- classmethod __new__(*args, **kwargs)#
- __init__()#
- class isaaclab_newton.ik.NewtonIKObjectiveCfg[source]#
Bases:
objectBase configuration for a Newton IK objective.
Subclasses set
class_typeto the runtime implementation, which the solver instantiates asclass_type(cfg, model=..., num_envs=..., device=..., link_resolver=...). The implementation exposes the concretenewton.ik.IKObjectiveinstances appended to the solver and, for command-driven objectives, an action-dimension contribution.Methods:
- classmethod __new__(*args, **kwargs)#
- class isaaclab_newton.ik.NewtonIKPoseObjective[source]#
Bases:
NewtonIKObjectiveCommand-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-coordinatescale(wp.float32), the target-frameoffset(wp.transformf), and the position/rotation target arrays the kernel writes into.Methods:
- __init__(cfg: NewtonIKPoseObjectiveCfg, ctx: NewtonIKBuildContext)[source]#
- classmethod __new__(*args, **kwargs)#
- class isaaclab_newton.ik.NewtonIKPoseObjectiveCfg[source]#
Bases:
NewtonIKObjectiveCfgA 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 forbody_name. Multiple pose objectives drive a multi-body solve, each with its own body, command convention, weights and scale.Methods:
- 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:
objectBatched wrapper around Newton’s inverse-kinematics solver.
The solver is configured by an ordered list of
NewtonIKObjectiveCfg. Each cfg is resolved to its runtimeNewtonIKObjectiveand its concrete Newton objectives are appended to the underlyingnewton.ik.IKSolver. The built objectives are exposed viaobjectives/objectives_by_name; callers update a pose objective’s target by callingset_target_pose()on it directly.The solver solves
num_envsindependent 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_resolvermaps 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: 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:
objectConfiguration for the Newton inverse-kinematics solver.
Holds solver hyperparameters only. Objectives (and their residual weights) are configured separately as a list of
NewtonIKObjectiveCfgpassed to the solver. Command semantics for manager-based actions (command_type,use_relative_mode) live on the action cfg.class_typeselects the solver implementation, so an alternative solver can be dropped in via config without changing callers.Methods:
- 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#