Humanoid Reaction Wheel and CMG Balance Sizing
Size a humanoid reaction wheel or scissored CMG pair for push and post-slip recovery. Compare angular momentum, rotor size, speed, torque and gimbal saturation with nonlinear recovery dynamics.
A reaction wheel balance robot can reject a short push by transferring angular momentum from its body into a spinning rotor. A control moment gyroscope redirects an already spinning rotor instead. Both strategies have a finite momentum envelope: a powerful actuator can still run out of wheel speed or gimbal travel before the robot recovers.
This calculator supports early humanoid actuator design and laboratory balance studies. It connects the disturbance, the robot's centroidal inertia and the desired recovery time to rotor inertia, wheel speed, motor torque and CMG gimbal requirements. The default case represents a 60 kg robot recovering with a pair of counter-rotating, oppositely gimballed rotors.
Start with the complete supported mass, the distance from the stationary support to the center of mass, and the body inertia about the balance axis. Include rotor and housing mass in the supported mass. Exclude freely spinning rotor axial inertia from the body inertia: the model tracks that momentum separately. Use either a horizontal push impulse and its application distance, or the tangential CoM speed remaining after a slip has ended and a stationary contact has been restored. This is not a simulation of a foot sliding across the floor.
Choose the target recovery time and enter rotor dimensions or a known axial inertia from CAD or measurement. An annulus with zero bore ratio is a solid disk. For reaction wheel sizing, enter the initial speed, available motor torque and shaft power. For control moment gyroscope sizing, enter regulated spin speed, initial gimbal angle, stroke, rate, gimbal inertia, servo response and drive torque. The pair cancels the unwanted orthogonal gyroscopic torque.
The tool constructs a smooth lean trajectory ending upright and at rest, then integrates the required angular momentum exchange. A separate nonlinear simulation applies actuator limits and follows that trajectory with feedback. Play the recovery to see body lean and CMG precession. The momentum chart reveals saturation, while the recovery-time sweep shows why a slower response does not always require a smaller wheel: gravity has longer to add angular momentum.
The minimum diameter uses the entered rotor mass and bore ratio; it is an inertia-equivalent dimension, not a structural rotor design. Motor power shown for the equivalent reaction wheel is mechanical shaft power, including regenerative operation. Gimbal drive torque includes assembled rotor-plus-frame inertia and reciprocal gyroscopic loading. Enter the inertia of the complete gimballed unit; it must include the rotor's transverse inertia, which is at least half its axial inertia. If the torque-limited motor cannot restrain passive precession below the entered rate, the simulation ends and reports that limit. The selected actuator verdict checks its planned limits; the recovery verdict checks the simulated final attitude, body rate and contact feasibility.
This fixed-contact planar model does not cover stepping, active ankle torque, changing limb inertia, three-dimensional gait, rotor stress, containment, bearing life, thermal duty or electrical supply sizing. A successful recovery leaves momentum to unload through external contact torque or a later step. It does not establish readiness for repeated disturbances.
How it is calculated
The centroidal-inertia description follows Lee and Goswami (2007), especially the planar RMP in section III.B, attached PDF page 4. Here its leg length and body inertia are fixed, and lean θ is measured from upright. A separate physical rotor exchanges momentum with the body; this is not the paper's full variable-inertia humanoid mapping.
For a horizontal short impulse J at distance ℓp along the body, the support angular impulse is Jℓp cosθ₀. The body rate immediately afterward is ω₀ = Jℓp cosθ₀ / Iₚ, with Iₚ = Ibody + Mℓ². Alternatively ω₀ = vslip/ℓ for the tangential post-slip speed. The body's initial centroidal momentum is Ibody ω₀; support angular impulse and centroidal momentum are different quantities.
A quintic θd(t) matches initial angle and rate, starts with zero angular acceleration, and ends at θ = θ̇ = θ̈ = 0 at the chosen recovery time. The nonlinear inverse torque is u = Mgℓ sinθd − Iₚ θ̈d. Trapezoidal integration gives ΔH(t) = ∫u dt on 801 time points, including gravity throughout recovery.
An annular rotor has Iw = mw Ro²(1 + bore²)/2. A reaction wheel stores H = Iw ωabsolute; its bearing speed is H/Iw − θ̇. Both signed speed limits, motor torque and symmetric motoring/regeneration shaft-power limits are checked. Initial wheel speed is specified before the impulse, while the body is stationary.
For the scissored CMG pair, each rotor has h = Iw Ω and the useful momentum is H = 2h sinδ. Therefore body reaction torque is −2h cosδ δ̇: the finite-angle projection is retained. This is the momentum-vector precession relation treated by Wie (2008), with the paired arrangement verified by Park and Cho (2018), equations (3)–(5). With the same sign convention, reciprocal per-gimbal drive torque is Q = Ig δ̈ − h θ̇ cosδ, consistent with Xu et al. (2022), equation (3). At zero drive, δ̈ = h θ̇ cosδ / Ig: the resulting gyroscopic power gained by the gimbals equals the power lost by the body.
Minimum inertia enforces both signed wheel speed boundaries, or both CMG stroke boundaries and the instantaneous gimbal-rate boundary. The latter is solved analytically as a quadratic inequality in 2IwΩ, retaining the initial gimbal angle. The CMG drive-torque check remains separate because increasing inertia also increases gyroscopic drive load. The diameter maps that inertia onto the entered mass and bore ratio.
The achieved motion solves Iₚ θ̈ = Mgℓ sinθ − u and Ḣ = u using adaptive Dormand–Prince integration (ode45, relative tolerance 10⁻⁶), with feedforward and critically damped tracking at natural frequency 6/T. CMG rate servo dynamics, assembled rotor-plus-gimbal inertia and drive torque saturation are included. The requested gimbal rate is limited using the rated speed and directional braking distance. Actual acceleration always follows δ̈ = (Q + h θ̇ cosδ)/Ig with |Q| ≤ Qmax. If the drive cannot restrain the actual rate, the simulation ends at the rated operating boundary and reports the loss of rate control. Ground reactions follow the exact circular CoM acceleration. The simulation continues to 1.5T or stops at 45° lean, loss of normal contact, CMG stroke exhaustion or an uncontrollable gimbal rate. Initial normal force is checked before a recovery can start. Delivered torque and gimbal acceleration are evaluated directly from the dynamics, rather than differentiating sampled momentum. The plotted duration sweep solves 81 independent recovery plans.
Assumptions
One balance plane, one stationary point support, rigid constant-length body and constant body centroidal inertia. The wheel or symmetric CMG pair is centered at the CoM. No active ankle moment or stepping is credited. The short disturbance acts before the recovery clock starts, with no impulsive motor torque. Slip mode begins after contact has stopped sliding. Positive disturbance and lean share a sign.
CMG rotors are axially symmetric. Spin is regulated and opposite in the two units; gimbals mirror each other. The gimbal-inertia input is the complete rotor-plus-frame inertia about the gimbal axis. It must be at least Iw/2; rotor thickness and frame inertia add to that minimum. Rotor transverse and housing inertia are included in the user-supplied body inertia and treated as constant. The standard high-spin CMG approximation omits nutation, flexibility, spin regulation errors and rotor transverse-inertia variation with gimbal angle. Motor torque and mechanical power limits are symmetric. The feedback controller and recovery trajectory are derived for this tool, not claimed as Lee–Goswami's inertia-shaping controller.
Where it applies
A planned actuator limit pass applies only to this trajectory. The separate recovery verdict requires final lean within 0.5°, body rate within 1°/s, positive normal contact, sufficient entered friction and completion within the gimbal rate and stroke envelope. If the friction check fails, the fixed-contact trajectory is infeasible; sliding is not integrated. Gimbal drive demand is an ideal inverse-trajectory value; the actual servo starts at zero rate and its startup transient is included in the forward simulation.
The minimum rotor inertia covers speed/stroke and gimbal rate only. Check torque, shaft power and gimbal drive demand as well. Enlarging a rotor changes complete robot mass and body inertia: update those inputs and repeat. Equivalent reaction-wheel power and CMG drive outputs permit comparison; the two verdicts apply to the selected actuator. Clipped inverse CMG angles stop at 90° when momentum is impossible; the stroke utilization still identifies the infeasible requirement.
Recovery is one event followed by a short upright hold. Residual momentum must be removed through an external torque, ankle strategy or stepping; a wheel or CMG cannot remove net system momentum by itself. Rotor stress, containment, fatigue, balancing, bearings, electronics, energy conversion and repeated-event heating require separate design.
The adaptive ODE solver uses relative tolerance 10⁻⁶ and reports 1201 samples over 1.5T. An internal physical clock stops at the first contact, lean, CMG stroke or uncontrollable-rate boundary; solver interpolation can overshoot a boundary slightly within tolerance. The rate controller limits its command and its motor torque, while passive precession remains in the acceleration equation. Reaching a gimbal boundary ends the rated recovery trajectory; stop impacts and operation beyond the rated rate are not calculated. The wheel speed controller uses a look-ahead of at most 1.5 ms. The inverse plan has 801 points, and the 81-point duration sweep uses 401 integration points per plan. PCHIP interpolates the cached trajectory for animation only. The view is a normalized schematic; dimension labels carry physical size.
References
- Lee, S.-H. and Goswami, A. (2007). Reaction Mass Pendulum (RMP): An explicit model for centroidal angular momentum of humanoid robots. ICRA, pp. 4667–4672. DOI: https://doi.org/10.1109/ROBOT.2007.364198 ; author manuscript https://www.ambarish.com/paper/Lee_Goswami_ICRA2007.pdf
- Wie, B. (2008). Space Vehicle Dynamics and Control, second edition, AIAA. CMG momentum-vector precession and saturation background. DOI: https://doi.org/10.2514/4.860119 (bibliographic reference; full text not accessed).
- Park, J.-H. and Cho, B.-K. (2018). Development of a self-balancing robot with a control moment gyroscope. International Journal of Advanced Robotic Systems. DOI: https://doi.org/10.1177/1729881418770865 ; open article https://journals.sagepub.com/doi/full/10.1177/1729881418770865
- Astro- und Feinwerktechnik Adlershof (2023). ASTROFEIN Reaction Wheel Family, April 2023, p. 1. https://www.astrofein.com/wp-content/uploads/2023/04/ASTROFEIN-Reaction-Wheel-Family_20230425.pdf
- Xu, H. et al. (2022). Disturbance rejection for biped robots during walking and running using control moment gyroscopes. IET Cyber-Systems and Robotics 4(4), 268–282, especially equations (3) and (8). https://doi.org/10.1049/csy2.12070 ; open article https://ietresearch.onlinelibrary.wiley.com/doi/full/10.1049/csy2.12070
Inputs
| Input | Symbol | Unit | Default |
|---|---|---|---|
| Momentum actuator | device | Scissored CMG pair | |
| Total supported mass Include the complete actuator and its housing. | M_robot | kg | 60 |
| Support-to-CoM distance | L_com | m | 0.9 |
| Body centroidal inertia Use CAD inertia about the balance axis, excluding free rotor axial spin inertia. | I_body | kg*m^2 | 7 |
| Initial lean Positive lean and disturbance act in the same forward direction. | lean_0 | deg | 2 |
| Disturbance input | disturbance | Horizontal push impulse | |
| Push impulse Force integrated over the short push. | J_push | N*s | 8 |
| Support-to-push distance Distance along the body to the horizontal push. | L_push | m | 0.9 |
| Post-slip tangential CoM speed Velocity after a stationary support contact is re-established. | v_slip | m/s | 0.15 |
| Target recovery time | T_rec | s | 0.8 |
| Available friction coefficient | mu_contact | 0.6 | |
| Rotor inertia input | inertia_mode | Annular rotor dimensions | |
| Mass per rotor | m_rotor | kg | 4 |
| Outer rotor radius | R_rotor | m | 0.18 |
| Inner / outer radius Used for annular inertia and the equivalent minimum rotor diameter. | bore_ratio | 0.35 | |
| Axial inertia per rotor | I_known | kg*m^2 | 0.072738 |
| Rotor speed limit Reaction wheel: relative to body; CMG: regulated spin speed. | n_limit | rpm | 6000 |
| Wheel speed before push | n_start | rpm | 0 |
| Motor torque limit Use torque available at the rotor after gearing. | T_motor | N*m | 60 |
| Shaft power limit The same limit is applied to motoring and regenerative braking. | P_motor | W | 8000 |
| CMG spin speed | n_spin | rpm | 5000 |
| Initial gimbal angle The second gimbal mirrors the first. | delta_0 | deg | 0 |
| Gimbal angle limit | delta_limit | deg | 70 |
| Gimbal rate limit | rate_limit | rad/s | 3 |
| Rotor-plus-gimbal inertia Total inertia of one rotor and its frame about the gimbal axis. | I_gimbal | kg*m^2 | 0.05 |
| Drive torque per gimbal | Q_gimbal | N*m | 20 |
| Gimbal rate response time First-order rate command tracking before drive torque saturation. | t_servo | s | 0.02 |
| Recovery time | t_play | s | 0.18 |
Results
With the default inputs above, the calc gives:
| Result | Value |
|---|---|
| Actuator sizing | Planned actuator limits met |
| Simulated recovery | Upright hold reached |
| Peak required balance torque | 79.429 N·m |
| Peak added actuator momentum | 25.726 N·m·s |
| Installed inertia per rotor | 0.0727 kg·m² |
| Minimum inertia: speed, stroke and rate | 0.0281 kg·m² |
| Equivalent minimum rotor diameter | 0.224 m |
| Required operating rotor speed | 5,000 1/min |
| Peak total rotor kinetic energy | 19,942 J |
| Signed added momentum to unload | 18.972 N·m·s |
| Final body lean | 0.005 deg |
| Peak body lean | 2.972 deg |
| Required friction coefficient | 0.097 |
| Equivalent RW shaft power | 17,084 W |
| Required CMG gimbal rate | 1.054 rad/s |
| Required drive torque per gimbal | 4.931 N·m |
| Required CMG gimbal angle | 19.74 deg |
Checked against sources
Each case below was calculated by this calc and agrees with the value from its source (within the tolerance where one is shown).
Astrofein RW100 published momentum
Source: Astrofein Reaction Wheel Family, April 2023, p. 1: RW100 inertia 6.52×10⁻⁴ kg·m², momentum 0.4 N·m·s at 6000 rpm. Manufacturer rounding allowed; checks momentum storage, not complete robot recovery.
Inputs: Momentum actuator = Reaction wheel; Rotor inertia input = Known rotor inertia; Axial inertia per rotor = 6.52 × 10⁻⁴ kg·m²; Push impulse = 0 N·s; Initial lean = 0 deg; the others as above.
| Result | Source | This calc |
|---|---|---|
| Wheel momentum headroom | 0.4 ± 0.015 N·m·s | 0.4097 N·m·s |
Astrofein RW150 published momentum
Source: Astrofein Reaction Wheel Family, April 2023, p. 1: RW150 inertia 1.592×10⁻³ kg·m², momentum 1.0 N·m·s at 6000 rpm. Independent manufacturer specification with rounding.
Inputs: Momentum actuator = Reaction wheel; Rotor inertia input = Known rotor inertia; Axial inertia per rotor = 0.001592 kg·m²; Push impulse = 0 N·s; Initial lean = 0 deg; the others as above.
| Result | Source | This calc |
|---|---|---|
| Wheel momentum headroom | 1 ± 0.002 N·m·s | 1 N·m·s |
Park–Cho CMG torque measurement
Source: Park and Cho (2018), Experiment for the CMG module, DOI 10.1177/1729881418770865: two rotors, each 5.71×10⁻³ kg·m² at 3000 rpm, gimbal rate 4.7 rad/s, measured 15.1 N·m. The listed parameters give 16.86 N·m, whereas the paper states 14.8 N·m calculated; that arithmetic is inconsistent. A 1.9 N·m absolute comparison tolerance covers the measurement difference, rather than adjusting inertia to fit it. https://journals.sagepub.com/doi/full/10.1177/1729881418770865
Inputs: Rotor inertia input = Known rotor inertia; Axial inertia per rotor = 0.00571 kg·m²; CMG spin speed = 3,000 rpm; Gimbal rate limit = 4.7 rad/s; Initial lean = 0 deg; Push impulse = 0 N·s; the others as above.
| Result | Source | This calc |
|---|---|---|
| CMG torque at initial gimbal angle | 15.1 ± 1.9 N·m | 16.862 N·m |

Responses