newton.selection.ArticulationView#
- class newton.selection.ArticulationView(model, pattern, include_joints=None, exclude_joints=None, include_links=None, exclude_links=None, include_joint_types=None, exclude_joint_types=None, verbose=None)[source]#
Bases:
objectArticulationView provides a flexible interface for selecting and manipulating subsets of articulations and their joints, links, and shapes within a Model. It supports pattern-based selection, inclusion/exclusion filters, and convenient attribute access and modification for simulation and control.
This is useful in RL and batched simulation workflows where a single policy or control routine operates on many parallel environments with consistent tensor shapes.
Example:
import newton view = newton.selection.ArticulationView(model, pattern="robot*") q = view.get_dof_positions(state) q_np = q.numpy() q_np[..., 0] = 0.0 view.set_dof_positions(state, q_np)
The
pattern,include_joints,exclude_joints,include_links, andexclude_linksparameters accept label patterns — see Label Matching.- Parameters:
model (Model) – The model containing the articulations.
pattern (str) – Pattern to match articulation labels.
include_joints (list[str] | list[int] | None) – List of joint names, patterns, or indices to include.
exclude_joints (list[str] | list[int] | None) – List of joint names, patterns, or indices to exclude.
include_links (list[str] | list[int] | None) – List of link names, patterns, or indices to include.
exclude_links (list[str] | list[int] | None) – List of link names, patterns, or indices to exclude.
include_joint_types (list[int] | None) – List of joint types to include.
exclude_joint_types (list[int] | None) – List of joint types to exclude.
verbose (bool | None) – If True, prints selection summary.
- __init__(model, pattern, include_joints=None, exclude_joints=None, include_links=None, exclude_links=None, include_joint_types=None, exclude_joint_types=None, verbose=None)#
- eval_fk(target, mask=None)#
Evaluates forward kinematics given the joint coordinates and updates the body information.
The written
target.body_qdvalues follow Newton’s public body-twist convention(v_com_world, omega_world).
- eval_jacobian(state, J=None, joint_S_s=None, mask=None)#
Evaluate spatial Jacobian for articulations in this view.
Computes the spatial Jacobian J that maps joint velocities to spatial velocities of each link in world frame, matching
state.body_qdunder Newton’s public COM/world body-twist convention.- Parameters:
state (State) – The state containing body transforms (body_q).
J – Optional output array for the Jacobian, shape (articulation_count, max_links*6, max_dofs). If None, allocates internally.
joint_S_s – Optional pre-allocated temp array for motion subspaces.
mask – Optional mask of articulations in this ArticulationView (all by default).
- Returns:
The Jacobian array J, or None if the model has no articulations.
- eval_mass_matrix(state, H=None, J=None, body_I_s=None, joint_S_s=None, mask=None)#
Evaluate generalized mass matrix for articulations in this view.
Computes the generalized mass matrix H = J^T * M * J, where J is the spatial Jacobian and M is the block-diagonal spatial mass matrix. The resulting matrix is consistent with kinetic energy computed from COM-referenced body twists.
- Parameters:
state (State) – The state containing body transforms (body_q).
H – Optional output array for mass matrix, shape (articulation_count, max_dofs, max_dofs). If None, allocates internally.
J – Optional pre-computed Jacobian. If None, computes internally.
body_I_s – Optional pre-allocated temp array for spatial inertias.
joint_S_s – Optional pre-allocated temp array for motion subspaces.
mask – Optional mask of articulations in this ArticulationView (all by default).
- Returns:
The mass matrix array H, or None if the model has no articulations.
- get_actuator_parameter(actuator, component, name)#
Read an actuator-component parameter for every DOF in this view.
The returned array covers all DOFs selected by the view (one column per DOF, one row per world). DOFs that are not driven by actuator are left at zero; driven DOFs contain the corresponding value gathered from
component.<name>.- Parameters:
- Returns:
Parameter values shaped
(world_count, dofs_per_world)wheredofs_per_worldis the total number of DOFs in the view (not just the actuated subset).
- get_attribute(name, source)#
Get an attribute from the source (Model, State, or Control).
- get_dof_forces(source)#
Get the joint forces (DoF forces) for the selected articulations.
- Parameters:
source (Control) – The source from which to retrieve the DoF forces.
- Returns:
The joint forces (dtype=float).
- Return type:
array
- get_dof_positions(source)#
Get the joint coordinate positions (DoF positions) for the selected articulations.
- get_dof_velocities(source)#
Get the joint coordinate velocities (DoF velocities) for the selected articulations.
- get_link_transforms(source)#
Get the world-space transforms of all links in the selected articulations.
- get_link_velocities(source)#
Get the world-space spatial velocities of all links in the selected articulations.
The returned
body_qdvalues follow Newton’s public convention:(v_com_world, omega_world).
- get_model_articulation_mask(mask=None)#
Get Model articulation mask from a mask in this ArticulationView.
- Parameters:
mask (array) – Mask of articulations in this ArticulationView (all by default).
- get_root_transforms(source)#
Get the root transforms of the articulations.
- get_root_velocities(source)#
Get the root velocities of the articulations.
- set_actuator_parameter(actuator, component, name, values, mask=None)#
Write an actuator-component parameter for every DOF in this view.
values must cover all DOFs in the view (one column per DOF, one row per world). Only entries whose DOFs are actually driven by actuator are written back to
component.<name>; the rest are ignored.- Parameters:
actuator (Actuator) – Actuator instance whose DOF indices determine which view DOFs are considered actuated.
component (Any) – The component that owns the parameter — a
Controller,Clamping, orDelayinstance.name (str) – Attribute name on component (e.g.
"kp","max_effort","delay_steps").values (array) – New parameter values shaped
(world_count, dofs_per_world)wheredofs_per_worldis the total number of DOFs in the view.mask – Per-world mask
(world_count,). Only masked worlds are updated.
- set_attribute(name, target, values, mask=None)#
Set an attribute in the target (Model, State, or Control).
- Parameters:
Note
When setting attributes on the Model, it may be necessary to inform the solver about such changes by calling
newton.solvers.SolverBase.notify_model_changed()after finished setting Model attributes.
- set_dof_forces(target, values, mask=None)#
Set the joint forces (DoF forces) for the selected articulations.
- Parameters:
target (Control) – The target where to set the DoF forces.
values (array) – The values to set (dtype=float).
mask (array, optional) – Mask of articulations in this ArticulationView (all by default).
- set_dof_positions(target, values, mask=None)#
Set the joint coordinate positions (DoF positions) for the selected articulations.
- set_dof_velocities(target, values, mask=None)#
Set the joint coordinate velocities (DoF velocities) for the selected articulations.
- set_root_transforms(target, values, mask=None)#
Set the root transforms of the articulations. Call
eval_fk()to apply changes to all articulation links.
- set_root_velocities(target, values, mask=None)#
Set the root velocities of the articulations.
- property body_names#
Alias for link_names.
- property body_shapes#
Alias for link_shapes.