isaaclab_contrib.actuators#
Classes
Low-level motor/thruster dynamics with separate rise/fall time constants. |
|
Configuration for thruster actuator groups. |
Thruster Actuator#
- class isaaclab_contrib.actuators.Thruster[source]#
Bases:
objectLow-level motor/thruster dynamics with separate rise/fall time constants.
Integration scheme is Euler or RK4. All internal buffers are shaped (num_envs, num_motors). Units: thrust [N], rates [N/s], time [s].
Attributes:
The computed thrust for the actuator group.
The applied thrust for the actuator group.
Number of actuators in the group.
Articulation's thruster names that are part of the group.
Articulation's thruster indices that are part of the group.
Methods:
__init__(cfg, thruster_names, thruster_ids, ...)Construct buffers and sample per-motor parameters.
compute(control_action)Advance the thruster state one step.
reset_idx([env_ids])Re-sample parameters and reinitialize state.
reset(env_ids)Reset all envs.
- computed_thrust: torch.Tensor#
The computed thrust for the actuator group. Shape is (num_envs, num_thrusters).
- applied_thrust: torch.Tensor#
The applied thrust for the actuator group. Shape is (num_envs, num_thrusters).
This is the thrust obtained after clipping the
computed_thrustbased on the actuator characteristics.
- __init__(cfg: ThrusterCfg, thruster_names: list[str], thruster_ids: slice | torch.Tensor, num_envs: int, device: str, init_thruster_rps: torch.Tensor)[source]#
Construct buffers and sample per-motor parameters.
- Parameters:
cfg – Thruster configuration.
thruster_names – List of thruster names belonging to this group.
thruster_ids – Slice or tensor of indices into the articulation thruster array.
num_envs – Number of parallel/vectorized environments.
device – PyTorch device string or device identifier.
init_thruster_rps – Initial per-thruster rotations-per-second tensor used when the configuration uses RPM-based thrust modelling.
- property thruster_indices: slice | torch.Tensor#
Articulation’s thruster indices that are part of the group.
Note
If
slice(None)is returned, then the group contains all the thrusters in the articulation. We do this to avoid unnecessary indexing of the thrusters for performance reasons.
- compute(control_action: MultiRotorActions) MultiRotorActions[source]#
Advance the thruster state one step.
Applies saturation, chooses rise/fall tau per motor, computes mixing factor, and integrates with the selected kernel.
- Parameters:
control_action – (num_envs, num_thrusters) commanded per-thruster thrust [N].
- Returns:
(num_envs, num_thrusters) updated thrust state [N].
- class isaaclab_contrib.actuators.ThrusterCfg[source]#
Bases:
objectConfiguration for thruster actuator groups.
This config defines per-actuator-group parameters used by the low-level thruster/motor models (time-constants, thrust ranges, integration scheme, and initial state specifications). Fields left as
MISSINGare required and must be provided by the user configuration.Attributes:
Simulation/integration timestep used by the thruster update [s].
values are clipped to this interval.
Per-motor thrust slew-rate limit applied inside the first-order model [N/s].
Range for thrust coefficient \(k_f\) [N/(rps²)].
Range of time constants when commanded output is increasing (rise dynamics) [s].
Range of time constants when commanded output is decreasing (fall dynamics) [s].
Yaw-moment coefficient converting thrust to motor torque about +Z [N·m per N].
Determines how the actuator/motor mixing factor is computed.
Numerical integrator for the first-order model.
Articulation's joint names that are part of the group.
- thrust_range: tuple[float, float]#
values are clipped to this interval.
- Type:
Per-motor thrust clamp range [N]
- max_thrust_rate: float#
Per-motor thrust slew-rate limit applied inside the first-order model [N/s].
- tau_inc_range: tuple[float, float]#
Range of time constants when commanded output is increasing (rise dynamics) [s].
- tau_dec_range: tuple[float, float]#
Range of time constants when commanded output is decreasing (fall dynamics) [s].
- torque_to_thrust_ratio: float#
Yaw-moment coefficient converting thrust to motor torque about +Z [N·m per N]. Used as
tau_z = torque_to_thrust_ratio * thrust_z * direction.
- use_discrete_approximation: bool#
Determines how the actuator/motor mixing factor is computed. Defaults to True.
If True, uses the discrete-time factor
1 / (dt + tau), accounting for the control loop timestep. If False, uses the continuous-time factor1 / tau.