@Joshua's answer to What is the minimum number of RCS thrusters capable of stabilizing a satellite against an arbitrary rotation? begins:

I know this question is old, but I randomly discovered a solution requiring only three thrusters on one thruster block that works if we don't mind introducing small transverse velocities.

The question is quite interesting and as yet I don't think there's a proof that two thrusters could not do it.

@Joshua's representation is shown below.

Question: Assuming a spherical cow spacecraft has a block of three thrusters at a point on its surface, all pointing tangent to the surface spaced at 90 degrees, the object is "at rest" in some frame, and assuming plenty of delta-v available, could they:

  1. indeed de-tumble any arbitrary initial spin state (as long as it's not spinning too fast)
  2. achieve both zero spin and zero velocity in the frame in which it was initially at rest? If so, how?

three-thruster spherical spacecraft from @Joshua's answer https://space.stackexchange.com/a/49369

  • $\begingroup$ somewhat related: Does a single off-axis thruster firing continuously eventually stabilize attitude gyroscopically? $\endgroup$
    – uhoh
    Jun 8, 2021 at 3:41
  • $\begingroup$ Prove 1) and I'll prove 2) for you. I can clearly rotate to any orientation, drift a bit, and return to the rest frame in a slightly other position but zero velocity and no additional rotation. $\endgroup$
    – Joshua
    Jun 10, 2021 at 3:27
  • $\begingroup$ @uhoh Doesn't "tumbling" require that the object be non-spherical? $\endgroup$
    – Roger Wood
    Jun 8, 2022 at 5:22
  • 1
    $\begingroup$ @RogerWood no, when you release a satellite in space and it has a nonzero rotation vector; one that you didn't specify but is just some residual from the deploy process, we can tall that tumbling. It's an undefined rotational state. It's just that spherical spacecraft tumble in a less-interesting way than real-world things do. $\endgroup$
    – uhoh
    Jun 8, 2022 at 6:12
  • 1
    $\begingroup$ @uhoh maybe it depends of you're an astronomer or an aerospace engineer (I'm neither) en.wikipedia.org/wiki/… $\endgroup$
    – Roger Wood
    Jun 8, 2022 at 15:50

1 Answer 1


No, this wouldn't work. If the craft is initially at rest, then after firing the middle thruster, it could never stop spinning.

Let's say the three thrusters have torque vectors +x,-x,+y, in a reference frame attached to the craft.

Angular momentum is conserved in any inertial frame, and it's also conserved in this rotating frame, because the rotation is around the same axis. (This requires spherical symmetry, or at least that the three components of the inertia tensor are equal. If they're not equal, then the angular velocity may not be parallel to the angular momentum, and the latter may not be conserved in the rotating frame.)

So the angular momentum in the rotating frame can only increase its y component, and it can't change its z component.

It's obvious if you look at Euler's equations. We have $I_1=I_2=I_3$ by sphericality, and $M_1$ is arbitrary (produced by the CW and CCW thrusters), and $M_2\geq0$ (produced by the OHR thruster), and $M_3=0$. This implies that $\dot\omega_2\geq0$ and $\dot\omega_3=0$; one component of angular velocity is non-decreasing, and one component is constant. If the initial value of $\omega_2$ is positive, then $\omega_2$ remains positive at later times. (This follows from the Mean Value Theorem; for any time $t_1>t_0$, there is some $t_2$ between them such that $\omega_2(t_1)-\omega_2(t_0)=(t_1-t_0)\,\dot\omega_2(t_2)\geq0$. Alternatively, the integral of a non-negative function is non-negative.)

More generally, any three-thruster spherical spacecraft wouldn't be able to de-tumble itself. We need the torque vectors to generate the whole 3D space of possible torques, in order to cancel any given tumble. This requires at least four torque vectors (given that thrust can't be negative).

Suppose there are only three. If these torque vectors are contained in a plane passing through $\vec0$, then any conical combination of them is also in that plane. If they're not contained in a plane, then they form a basis for 3D space (like the edges at one vertex of a parallelepiped), and any conical combination of them is contained in an octant. In either case, there is some point $\vec v$ outside of the cone.

Euler's equations for a rotating sphere have the vector form $\dot{\vec\omega}=\vec M/I_1$. The applied torque $\vec M$ is contained in the cone described above. Integrating, we get $\vec\omega(t_1)-\vec\omega(t_0)$ being contained in the same cone. If we choose the initial angular velocity to be $\vec\omega(t_0)=-\vec v$, and we want the final angular velocity to be $\vec\omega(t_1)=\vec0$, then we find that $\vec0-(-\vec v)$ is contained in the cone, a contradiction.

Now let's drop sphericality, and see if we can do with fewer than four thrusters. Assume $I_1=I_2\neq I_3$, e.g. a cylindrical spacecraft.

Euler's equations say that, if no torque is applied, then $\omega_3$ is constant, and $\omega_1,\omega_2$ move in a circle with frequency proportional to $\omega_3$. If $\omega_3=0$ or initially $\omega_1=\omega_2=0$ then all three are constant. The horizontal plane $\omega_3=0$ (or $z=0$) divides space into two regions, and $\vec\omega$ can never move from one region to the other, unless torque is applied.

A single thruster is not enough. If its torque is in one of the two half-spaces, and the initial value of angular velocity $\vec\omega(t_0)$ is in the same half-space, then any later value $\vec\omega(t_1)$ is also in that half-space. If the torque is exactly on the dividing plane, and the initial value $\vec\omega(t_0)$ is not, then any later value $\vec\omega(t_1)$ is also not on the plane. (In particular, it's non-zero.)

Two are sufficient! We just need one torque vector in each half-space, provided that the vectors aren't both aligned with the principal axes.

Instead of using torque directly, let's divide by the inertia tensor to get an angular acceleration vector associated with each thruster. Call them $\vec v_1$ and $\vec v_2$, and assume $\vec v_1$ is not parallel to the z-axis. Revolve $-\vec v_1$ around the z-axis to make a circular cone. Given any initial angular velocity, apply $\vec v_2$ until $\vec\omega$ is in the same half-space as $\vec v_2$ (and $-\vec v_1$ and the cone). If $\vec v_2$ is parallel to the z-axis, apply $\vec v_2$ until $\vec\omega$ is on the cone; if $\vec v_2$ is not parallel to the z-axis, wait until the circular motion brings $\vec\omega$ to the point farthest from $\vec v_2$, and then apply $\vec v_2$ as an impulse (a large torque in a small time) to put $\vec\omega$ on the cone. (This is all assuming that $\vec\omega$ was initially outside of the cone. If $\vec\omega$ is inside the cone, apply $\vec v_1$ until $\vec\omega$ is on the cone surface.) Wait until the circular motion brings $\vec\omega$ to the ray determined by $-\vec v_1$, and finally apply $\vec v_1$ as an impulse to put $\vec\omega$ at the cone's vertex, $\vec0$.

(That is an approximate solution. A thruster can't do a Dirac delta (unless it shoots solid pellets instead of gas?). Some time will pass, and $\vec\omega$ will drift forward in the circular motion, while $\vec v_1$ is being applied. It will come close but miss the cone's vertex. The exact solution, the point at which to start applying $\vec v_1$, is slightly before $\vec\omega$ reaches the ray $-\vec v_1$, and slightly inside the cone.)

The general case, $0<I_1<I_2<I_3$, is qualitatively similar to the previous case.

Euler's equations imply that, if no torque is applied ($\vec M=0$), then the energy and angular momentum magnitude are constant (though the angular momentum may change direction, because the reference frame itself is rotating):





These equations describe two ellipsoids; the angular velocity $\vec\omega(t)$ must remain on the curve where they intersect. Multiplying the first equation by $I_2$ and subtracting the second equation:


Thus the two intersecting planes $\omega_3=\pm\sqrt{\frac{I_1(I_2-I_1)}{I_3(I_3-I_2)}}\,\omega_1$ (or $z=\pm\sqrt{\frac{I_1(I_2-I_1)}{I_3(I_3-I_2)}}\,x$) divide space into four regions, and $\vec\omega$ can never move from one region to another, unless torque is applied.

Again a single thruster is not enough. If its angular acceleration (torque divided by inertia) is in one of the four regions, or on its boundary, and the initial angular velocity is in the same region, then the angular velocity remains in that region.

Again two are sufficient. We need acceleration vectors ($\vec v_1,\vec v_2$) in two opposite regions, not both aligned with principal axes (say $\vec v_1$ isn't aligned). Construct an elliptical cone using the ray $-\vec v_1$, such that any solution to Euler's equations with initial value on the cone remains on the cone when no torque is applied. Then use the same ideas from the previous section.

Notice that Euler's equations have a time symmetry: If $\vec\omega(t)$ is a solution with torque $\vec M(t)$, then $\vec\omega^\sim(t)=-\vec\omega(t_0+t_1-t)$ is a solution with torque $\vec M(t_0+t_1-t)$, and the initial and final values are swapped: $\vec\omega^\sim(t_0)=-\vec\omega(t_1)$ and $\vec\omega^\sim(t_1)=-\vec\omega(t_0)$.

Therefore, if the spacecraft can de-tumble itself from any $\vec\omega(t_0)$ to $\vec\omega(t_1)=\vec0$, then it can also spin up from $\vec\omega(t_0)=\vec0$ to any angular velocity $\vec\omega(t_1)$. Then we can simply concatenate two solutions, going from any initial angular velocity $\vec\omega(t_0)$, through $\vec\omega(t_1)=\vec0$, to any final angular velocity $\vec\omega(t_2)$.

This de-tumble ability also seems to imply that any combination of angular velocity and orientation can be achieved. Pick a path $\vec\omega(t)$ starting at $\vec\omega_0$, passing through some principal axes $\vec\omega_1,\vec\omega_2,\vec\omega_3$, and ending at (arbitrary) $\vec\omega_4$. Since $\vec\omega(t)$ is constant on a principal axis (if no torque is applied), the angular velocity can stay there for any amount of time, building up a rotation (change in orientation) by any angle around that axis. Then we should be able to combine those three rotations to make any rotation; see Euler angles. But this is complicated by the parts of the path between the axes, producing their own rotations and interfering with the Euler angle rotations. I haven't figured out how to deal with that, in general.

So I made a simplifying assumption: The torque vectors directly oppose each other, and are contained in the plane of two principal axes. (Still they must not be on a single principal axis, nor in one of the two planes described in the previous section.) This allows $\vec\omega$ to be sent directly from one axis to the other, by impulses, without spending (much) time in between. Thus the Euler angles are not interfered with, and we can make any rotation.

I suspect that the de-tumble ability implies that any combination of position, orientation, linear velocity, and angular velocity can be achieved.

To make things easier, again let's assume that the two torque vectors are opposite and in an axial plane. Let's also assume that the two force vectors are not opposite; so firing both thrusters gives no net torque but some net force $\vec F$. (E.g. the thrusters may be on opposite sides of the spacecraft, pointing in the same direction. Or they may have the same location and form a 'V' shape pointing toward the centre of the craft.)

Pick a path $\vec\omega(t)$ starting and ending with any given orientation and angular velocity, and passing through $\vec\omega=\vec0$ three times (or six times) with orientations that align $\vec F$ with an inertial frame's x, y, and z-axes. Since both orientation and angular velocity are constant when $\vec\omega=\vec0$, they can stay there for any amount of time, while the linear velocity changes by any amount parallel to $\vec F$. The unwanted changes in velocity, produced by the parts of the path with $\vec\omega\neq\vec0$, can simply be cancelled by adjusting those three (or six) lengths of time. Thus any combination of orientation, angular velocity, and linear velocity can be achieved.

Pick a path $\vec\omega(t)$ starting and ending with any given orientation and linear and angular velocity, and passing through $\vec\omega=\vec0$ three times (or six times) with velocities aligned with an inertial frame's x, y, and z-axes. Since orientation and linear and angular velocity are constant when $\vec\omega=\vec0$ (and $\vec F$ is not applied), they can stay there for any amount of time, while the position changes by any amount parallel to the velocity. The unwanted changes in position, produced by the parts of the path with $\vec\omega\neq\vec0$, can simply be cancelled by adjusting those three (or six) lengths of time. Thus any combination of orientation, angular velocity, position, and linear velocity can be achieved.

  • 1
    $\begingroup$ The tumble may be the same as that produced by the middle thruster. $\endgroup$
    – mr_e_man
    Jun 6, 2022 at 1:58
  • 1
    $\begingroup$ So step one could be to fire one of the other thrusters to change the rotational state to one that is easier to de-tumble. It may take a while, like a puzzle, but in the end you goal is to get to a state that can be zeroed. The moment of inertia tensor of the satellite isn't specified, it could certainly have off-diagonal elements $\endgroup$
    – uhoh
    Jun 6, 2022 at 1:59
  • 1
    $\begingroup$ @uhoh you could just say that you did not say that the thrussters were massless... I'm just not sure if it helps when the mass is at that position :) $\endgroup$
    – TrySCE2AUX
    Jun 13, 2022 at 4:48
  • 1
    $\begingroup$ @TrySCE2AUX - The design in the OP might work if the block of thrusters is massive and rectangular, but it would probably take a long time (because precession is slow with $I_1\approx I_2\approx I_3$), a lot of energy (because $\vec\omega$ must be moved into a thin wedge of space using a torque vector contained in that wedge, thus making $\vec\omega$ large), and/or precise control. $\endgroup$
    – mr_e_man
    Jun 14, 2022 at 13:35
  • 1
    $\begingroup$ @uhoh do the thrusters have to be in a cluster? $\endgroup$
    – Roger Wood
    Jun 15, 2022 at 19:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.