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
| Declared | Description |
|---|---|
| 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_B | Array 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_BodyMassMsg | Vehicle 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_CommandForceMsg | Commanded 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_CommandTorqueMsg | Optional 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_SpacecraftStateMsg | Optional 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_ThrusterArrayConfigMsg | Configuration of thrusters attached to the spacecraft.Contains positions, thrust directions, and max thrust for each thruster. |
| IncludeTorqueCoupling | Flag 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_ThrustForceArrayMsg | Output 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. |
| UseSecondLoop | Flag 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. |
| Inherited | Description |
|---|---|
| IsEnabled | Is true if the object is currently enabled. |
| Name | The display name or tag of this object. |
| Parent | The currently attached parent object (if any). |
Methods
| Inherited | Description |
|---|---|
| Disable | Disable the software componentDerived classes should clear any output messages |
| Enable | Enable the software component |
| FindParentWithID | Returns an attached parent that satisfies the specified ID. |
| FindParentWithType | Returns an attached parent that satisfies the specified type. |
| FindRootWithID | Returns a root object that satisfies the specified ID. |
| FindRootWithType | Returns a root object that satisfies the specified type. |