isaaclab_contrib.actuators#

Classes

Thruster

Low-level motor/thruster dynamics with separate rise/fall time constants.

ThrusterCfg

Configuration for thruster actuator groups.

Thruster Actuator#

class isaaclab_contrib.actuators.Thruster[source]#

Bases: object

Low-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:

computed_thrust

The computed thrust for the actuator group.

applied_thrust

The applied thrust for the actuator group.

num_thrusters

Number of actuators in the group.

thruster_names

Articulation's thruster names that are part of the group.

thruster_indices

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_thrust based 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 num_thrusters: int#

Number of actuators in the group.

property thruster_names: list[str]#

Articulation’s thruster names that are part of the group.

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].

reset_idx(env_ids=None) None[source]#

Re-sample parameters and reinitialize state.

Parameters:

env_ids – Env indices to reset. If None, resets all envs.

reset(env_ids: Sequence[int]) None[source]#

Reset all envs.

class isaaclab_contrib.actuators.ThrusterCfg[source]#

Bases: object

Configuration 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 MISSING are required and must be provided by the user configuration.

Attributes:

dt

Simulation/integration timestep used by the thruster update [s].

thrust_range

values are clipped to this interval.

max_thrust_rate

Per-motor thrust slew-rate limit applied inside the first-order model [N/s].

thrust_const_range

Range for thrust coefficient \(k_f\) [N/(rps²)].

tau_inc_range

Range of time constants when commanded output is increasing (rise dynamics) [s].

tau_dec_range

Range of time constants when commanded output is decreasing (fall dynamics) [s].

torque_to_thrust_ratio

Yaw-moment coefficient converting thrust to motor torque about +Z [N·m per N].

use_discrete_approximation

Determines how the actuator/motor mixing factor is computed.

integration_scheme

Numerical integrator for the first-order model.

thruster_names_expr

Articulation's joint names that are part of the group.

dt: float#

Simulation/integration timestep used by the thruster update [s].

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].

thrust_const_range: tuple[float, float]#

Range for thrust coefficient \(k_f\) [N/(rps²)].

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 factor 1 / tau.

integration_scheme: Literal['rk4', 'euler']#

Numerical integrator for the first-order model. Defaults to ‘rk4’.

thruster_names_expr: list[str]#

Articulation’s joint names that are part of the group.