Class in Zendir.Classes | Inherits from Software

Declaration

class ThrusterForceMappingSoftware;

Description

Thruster force mapping software that allocates a commanded force (and optional torque) to an array of thrusters. This module takes a desired 3-axis force command and optionally a 3-axis torque command, then computes the individual thruster forces needed to achieve the requested wrench while respecting non-negative thrust constraints and saturation limits.

Unlike which maps torque-only for attitude RCS, this module handles translational force mapping for RPO scenarios where body-fixed thrusters must provide controlled translation while canceling any induced couples.

The algorithm builds a 6xN mapping matrix [ĝ; r×ĝ] and solves a non-negative least-squares problem to find thruster forces that achieve the desired wrench.


Properties

DeclaredDescription
AngleErrorThreshold[rad] Angular error threshold at which thruster forces are scaledto prevent super-saturation. When the angle between requested andachievable wrench exceeds this threshold, forces are uniformly scaled.Set negative to disable scaling.
ControlAxes_BArray of the control unit axes for the mapping.Identity matrix enables full 3-axis force control.Set rows to zero to disable control on specific axes.
In_BodyMassMsgVehicle mass properties input message containing center of mass.Used to compute moment arms for torque coupling calculations.Auto-resolved from parent spacecraft if not explicitly set.
In_CommandForceMsgCommanded spacecraft external control force message.Contains ForceRequest_B (body frame) and ForceRequest_N (inertial frame).Prefers ForceRequest_B; if near-zero, rotates ForceRequest_N via spacecraft state.
In_CommandTorqueMsgOptional commanded spacecraft external control torque message.Used when is true. A missing or zerocommand still allocates 6-DOF with a zero torque request so translationdoes not induce attitude motion.
In_SpacecraftStateMsgOptional spacecraft state message for N→B rotation.Used to rotate ForceRequest_N to body frame if ForceRequest_B is near-zero.Auto-resolved from parent spacecraft if not explicitly set.
In_ThrusterArrayConfigMsgConfiguration of thrusters attached to the spacecraft.Contains positions, thrust directions, and max thrust for each thruster.
IncludeTorqueCouplingFlag indicating if torque coupling should be included in the allocation.When true, builds a 6xN mapping matrix; when false, builds a 3xN force-only matrix.
Out_ThrustForceArrayMsgOutput thruster force commands for thruster array.Contains the computed force for each thruster to achieve the commanded wrench.
SmallValue[-] Specifies what is considered a small number for numerical comparisons.
UseSecondLoopFlag indicating if the 2nd least squares fitting loop should be used.When true, performs a second iteration on the active (non-negative) thruster set.
WrenchAngleError[rad] Angular error of the effector wrench (output).Angle between the requested wrench and the achieved wrench.
InheritedDescription
IsEnabledIs true if the object is currently enabled.
NameThe display name or tag of this object.
ParentThe currently attached parent object (if any).

Methods

InheritedDescription
DisableDisable the software componentDerived classes should clear any output messages
EnableEnable the software component
FindParentWithIDReturns an attached parent that satisfies the specified ID.
FindParentWithTypeReturns an attached parent that satisfies the specified type.
FindRootWithIDReturns a root object that satisfies the specified ID.
FindRootWithTypeReturns a root object that satisfies the specified type.