Engineering
Parallel motion platform
Fly a take-off in a full-motion simulator in a dark hall: the cockpit capsule rides on six blue-lit actuators of a Stewart platform before a glowing projection dome. The washout turns the aircraft’s push of 0.29 g into a quick surge that comes back to centre as a0 t² e^(-ωt)/2, while tilt coordination pitches the cabin up toward asin(a/g) at 3° per second until gravity gives the pilot the push - and the horizon on the dome rises with the cabin. The six leg lengths follow from the pose in closed form, and the motion computer recovers the pose from them by Newton’s method. Slow the washout and the legs run out of stroke, their lamps turning amber and red; switch tilt off and the push is lost. Hold a pose with an offset payload and read the forces J^-T gives; move the platform joints toward the base pairs and the forces soar near the singularity. The actuators’ work is followed into the cabin’s height and motion.

What happens
A Stewart–Gough platform: six actuators of 2.3–3.3 m join base joints, in pairs on a circle of 2.2 m (±8°), to platform joints on a circle of 1.5 m (±50° by default), so each leg crosses to the neighbouring pair; at mid-stroke the upper joint plane stands 2.378 m above the lower. Inverse kinematics is closed form, l_i = o + R·p_i − b_i; the motion computer recovers the pose from the six lengths by Newton’s method with the exact derivative of the yaw-pitch-roll rotation (two or three iterations a frame, error below 10^-12 m). The Jacobian rows [n_i, (a_i − c) × n_i] give the leg rates and, through J^-T, the forces that hold a wrench; its condition number (angular columns scaled by the platform radius) is √(λmax/λmin) of JᵀJ by Jacobi rotations: 2.29 at neutral, 52 with the joints at 10°, infinite when the hexagons are similar. The washout: surge, heave and sway pass x(s) = s·a(s)/(s + ω)³ with ω = 2 rad/s, so a step a0 gives a0·t²·e^(−ωt)/2 and the cabin returns to centre; tilt coordination pitches and rolls the cabin toward asin(f/g) (at most 20°) with a 1 s lag and a 3°/s rate limit; the aircraft’s pitch and roll rates pass s/(s + 0.5). Each filter is advanced exactly with its input held over the 1 ms sub-step. The cabin of 7 t (radii of gyration 1.0, 1.15 and 1.05 m, centre of mass 1.1 m above the joints) is a rigid body on six force-controlled actuators: the feed-forward J^-T·(m(a_ref + g), 0) plus a servo of 3 MN/m and 100 kN·s/m on each leg’s length error to the reference legs, clamped 2 cm inside the stroke. Euler velocity, trapezoid position, an implicit-midpoint body rate and the exact rotation of the midpoint rate make the actuators’ work equal the kinetic plus potential energy to round-off.
Try this
Watch the take-off: the surge comes back to centre while the tilt builds the push, until the felt surge equals the aircraft’s; switch tilt coordination off, or slow the washout until the lamps turn red; choose Turbulence; choose Hold a pose, pitch with the payload moved forward and bring the joint angle toward 10° to watch the condition number and the forces climb.
The model and its limits
Massless actuators with ideal force servos and no force limit (the largest force is only reported), point joints without angle limits, no collision check of the legs or of finite joints; the cabin a rigid body of fixed inertia. The washout works in hall axes without the aircraft’s attitude transformation and with fixed gains; the felt force is taken at the centre of mass and the vestibular thresholds enter only as the tilt rate limit. A clamped leg stops 2 cm short of its end and the cabin goes where the six lengths put it, so the cue turns false. Near the architecture singularity the servos still hold the pose, slowly and with little damping. The dome is a fixed screen with the eye at its centre.
Equations used in the module
Equations l_i = o + R(φ,θ,ψ)·p_i − b_i, L_i = |l_i|, FK: q ← q − (∂L/∂q)^-1·(L(q) − L_measured) dL/dt = J·(v, ω), J_i = [n_i, (a_i − c) × n_i], f = J^-T·(m(a_ref + g), 0), κ = √(λmax/λmin) of JᵀJ x(s) = s·a(s)/(s + ω)³: a0 step → x = a0·t²·e^(−ωt)/2, θ → asin(f/g) at ≤ 3°/s, θ_r(s) = q(s)/(s + k) m·dv/dt = Σ f_i·n_i + m·g, I·dΩ/dt + Ω × IΩ = Σ r_i × f_i·n_i, W_act = ΔE_k + ΔE_p


