Description

The Thruster Force Mapping Software allocates commanded force and torque to an array of thrusters. Given a desired 3-axis force command and optional 3-axis torque command, the module computes individual thruster forces that achieve the requested wrench while respecting non-negative thrust constraints and saturation limits. This module is designed for RPO scenarios where body-fixed thrusters must provide controlled translation while canceling any induced torque couples.


Example Use Cases

  • Translational Maneuvers: Allocate force commands from a formation controller to thrusters for proximity operations.
  • 6-DOF Control: Simultaneously control translation and attitude using a combined force/torque allocation.
  • Torque-Nulling Translation: Execute pure translation maneuvers that cancel thruster-induced couples.

Module Implementation

Mapping Matrix

The algorithm constructs a mapping matrix relating thruster forces to the resultant wrench. For thrusters, the matrix has the form:

where is the thrust direction of the -th thruster and is the position of the thruster relative to the spacecraft center of mass. The upper rows map to force and the lower rows map to torque.

When torque coupling is disabled, only the force rows are used (3×N matrix).

Control Allocation

The module solves for the minimum-norm thruster force vector that achieves the desired wrench :

where is the control axes projection matrix that selects which force axes are active.

Non-Negative Thrust Constraint

Since thrusters can only produce thrust in one direction, the solution must satisfy for all thrusters. The module enforces this by subtracting the minimum force value from all thrusters:

This approach assumes the thruster array is arranged such that firing all thrusters uniformly produces no net wrench (a common RCS configuration).

Two-Pass Refinement

When enabled, the algorithm performs a second iteration using only the thrusters with positive force from the first pass. This improves the solution by eliminating the influence of inactive thrusters on the least-squares fit.

Wrench Angle Error

The module computes the angular error between the requested and achieved wrench vectors:

When this error exceeds a configurable threshold (due to saturation), the forces are uniformly scaled to reduce the error while maintaining wrench direction.

Force Limits

Final thruster forces are clamped to each thruster’s maximum thrust and ensured non-negative:


Assumptions/Limitations

  • Requires a Thruster Array configuration message with thruster positions, directions, and maximum thrusts.
  • The non-negative constraint method assumes symmetric thruster placement that produces zero net wrench when fired uniformly.
  • Body-frame force commands are preferred; inertial commands are rotated using spacecraft state if the body command is near-zero.
  • Torque coupling should be enabled for off-center thruster arrays to prevent attitude drift during translation.