PINGU: Extending Air-Bearing Spacecraft Emulators with Open-Source Actuators and Learned Control for Contact-Rich Proximity Operations
Organizations: University of Luxembourg · Tohoku University · Georgia Institute of Technology
Abstract
Low-cost planar air-bearing testbeds have matured into a standard proxy for free-flying spacecraft GNC, but they remain largely thruster-only and are rarely equipped for contact-rich, inertia-coupled manipulation. Building on the open-source ATMOS testbed, we contribute a reaction wheel and two force/torque-sensed robotic arms (LEVION) with interchangeable end-effectors, integrated as first-class control actuators through a unified ROS 2 abstraction layer. On top of the software stack we build a reinforcement-learning training environment and digital twin, and a controller that exploits these added degrees of freedom, letting classical optimal controllers and learned policies be swapped on the same hardware without modification. We validate the integrated system, PINGU, across four benchmark tasks: point-to-pose navigation (classical LQR vs. sim-to-real PPO), dynamic disturbance rejection under arm-induced center-of-mass shifts, reaction-wheel momentum stabilization, and force-controlled docking. The results show that these additions extend an ATMOS-class emulator into the contact-rich regime and bridge classical optimal control and reinforcement learning on one reproducible platform.
Figures & tables
| ATMOS [ 5 ] | Astrobee F [ 12 ] | Astrobee G [ 13 ] | Slider [ 3 ] | ESA [ 6 ] | Bob & Charlie [ 10 ] | M-STAR [ 7 ] | JPL SSDT [ 22 ] | ZeroG FP [ 4 ] | PINGU (Ours) | |
| Physical properties | ||||||||||
| Mass [kg] | 16.80 | 9.58 | 18.97 | 4.27 | 221.67 | 14.90 | – | – | 5.32 | 25 |
| Moment of inertia [kg m 2 ] | 0.297 | 0.162 | 0.252 | 0.190 | 12.223 | – | – | 0.0591 | 0.72 - 1.35 c | |
| Height [m] | – | 0.32 | 0.32 | – | 1.025 | – | – | – | 0.45 | 0.65 |
| Max. payload [kg] | 150 | – | – | – | – | – | – | – | 20 | 1360 |
| Actuation | ||||||||||
| Methods | Point-to-Pose Navigation | |
|---|---|---|
| (a) All actuators | ||
| Sim | 0.0022 ( 0.0015$$ ) | 0.0044 ( 0.0033$$ ) |
| Sim + DR | 0.0124 ( 0.0191$$ ) | 0.0129 ( 0.0124$$ ) |
| PPO (Real) | 0.0081 ( 0.0006$$ ) | 0.0257 ( 0.0146$$ ) |
| (b) Thrusters and reaction wheel | ||
| Methods | Dynamic Disturbance Rejection | |
|---|---|---|
| Sim | 0.0070 ( 0.0054$$ ) | 0.0074 ( 0.0108$$ ) |
| Sim + DR | 0.0156 ( 0.0161$$ ) | 0.0340 ( 0.0574$$ ) |
| Real | 0.0889 ( 0.0405$$ ) | 0.0346 ( 0.0179$$ ) |
| Methods | Stabilization | |
|---|---|---|
| (b) Rest | ||
| Sim | 0.0467 ( 0.0153$$ ) | 3.7975 ( 1.6068$$ ) |
| Real | 0.0228 ( 0.0229$$ ) | 6.377 ( 4.941$$ ) |
| (c) Closed | ||
| Sim | 0.0432 ( 0.0150$$ ) | 3.8773 ( 1.6457$$ ) |
| Hyperparameter | PPO (MLP) | PPO (GRU) |
| Number of envs | 4096 | |
| Number of steps per iteration | 16 | |
| Number of learning epochs | 5 | |
| Number of mini-batches | 4 | |
| Clip range | 0.2 | |
| Entropy coefficient | 0.005 | |
| Method | ||
|---|---|---|
| (a) Point-to-Pose Navigation — all actuators | ||
| PPO (Sim) | 0.0022 ( 0.0015$$ ) | 0.0044 ( 0.0033$$ ) |
| PPO + DR (Sim) | 0.0274 ( 0.0760$$ ) | 0.0192 ( 0.0187$$ ) |
| PPO + DR (Real) | 0.0584 ( 0.0412$$ ) | 0.0560 ( 0.0151$$ ) |
| PPO-GRU + DR, 1000 ep (Sim) | 0.0209 ( 0.0344$$ ) | 0.0277 ( 0.0255$$ ) |
| PPO-GRU + DR, 1000 ep (Real, chkpt. 1) | 0.0862 ( 0.0862$$ ) | 0.0443 ( 0.0307$$ ) |
| Term | Expression | Weight | Scalar | Description |
| (a) Point-to-Pose Navigation | ||||
| Pose error | Precise spatial convergence and alignment to target. | |||
| Linear Velocity | Velocity regulation and movement encouragement. | |||
| Angular Velocity | Control of rotational stability. | |||
| Boundary | Safety constraint to stay within workspace. | |||
| (b) Reaction-Wheel Stabilization (Momentum Damping) |
| Side | Rest | Closed | ||||
| Method | ||||||
| (a) Thrusters and reaction wheel | ||||||
| PPO (Sim) | 0.0021 ( 0.0010$$ ) | 0.0038 ( 0.0043$$ ) | 0.0031 ( 0.0026$$ ) | 0.0020 ( 0.0022$$ ) | 0.0034 ( 0.0023$$ ) | 0.0018 ( 0.0013$$ ) |
| PPO + DR (Sim) | 0.0155 ( 0.0423$$ ) | 0.0193 ( 0.0175$$ ) | 0.0204 ( 0.0624$$ ) | 0.0406 ( 0.0513$$ ) | 0.0154 ( 0.0360$$ ) | 0.0122 ( 0.0122$$ ) |
| PPO + DR (Real) | 0.0115 ( 0.0076$$ ) | 0.0302 ( 0.0088$$ ) | 0.0246 ( 0.0155$$ ) | 0.0313 ( 0.0139$$ ) | 0.0406 ( 0.0227$$ ) | 0.0121 ( 0.0066$$ ) |
| PPO-GRU (Sim) | 0.0137 ( 0.0112$$ ) | 0.0047 ( 0.0039$$ ) | 0.0220 ( 0.0217$$ ) | 0.0047 ( 0.0036$$ ) | 0.0045 ( 0.0055$$ ) | 0.0040 ( 0.0033$$ ) |