← Latest papers
💻 computer science

mjorbit: A Simulation Framework for Space Robotics

This paper introduces mjorbit, a high-performance, open-source simulation framework built on MuJoCo that integrates orbit propagation with multi-body robotics dynamics to enable efficient on-orbit servicing, assembly, and manufacturing research via both CPU and GPU backends.

Original authors: John Z. Zhang, Joris Verhagen, Fausto Vega, Patrick McKeen, Zachary Manchester

Published 2026-09-09
📖 5 min read🧠 Deep dive

Original authors: John Z. Zhang, Joris Verhagen, Fausto Vega, Patrick McKeen, Zachary Manchester

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Space is not a silent, empty void where objects simply float forever. It is a dynamic environment governed by invisible forces that shape the motion of everything within it. Satellites and spacecraft are constantly pulled by Earth's gravity, pushed by the pressure of sunlight, and slowed by the faint drag of the upper atmosphere. For decades, engineers have had to choose between simulating the complex, tumbling motion of a robot arm or simulating the long-term journey of a spacecraft through orbit. Existing tools could do one well but struggled with the other. A robot simulator might treat space as a perfect vacuum where gravity does not exist, which works fine for a few minutes but fails over hours. A space simulator might track a satellite's path perfectly but cannot model a robot grabbing a floating piece of debris. This gap has made it difficult to design and test the autonomous robots needed for future missions, such as repairing satellites, removing space junk, or assembling structures in orbit.

A team of researchers at the Massachusetts Institute of Technology and the KTH Royal Institute of Technology has built a new tool to bridge this divide. They created a simulation framework called mjorbit, which combines the high-speed, detailed physics of modern robotics software with the precise orbital mechanics required for space travel. The system allows engineers to simulate a robot interacting with its environment over long periods, accurately capturing how a gentle touch or a small thruster firing can alter a spacecraft's path over hours or days. By testing this system on realistic scenarios, the researchers demonstrated that it can handle the complex, contact-heavy tasks required for space operations while running fast enough to train artificial intelligence.

The core challenge the team addressed was the difficulty of simulating two vastly different scales of motion at once. A spacecraft might travel thousands of kilometers in an orbit, while a robotic arm moves only a few meters. When these scales are mixed in a computer simulation, tiny rounding errors can accumulate and cause the entire model to drift apart from reality, especially when using the fast, single-precision math common in modern graphics processors. The researchers solved this by changing how the simulation views the world. Instead of tracking the spacecraft's absolute position in space, they anchored the simulation to a moving reference point that follows the spacecraft's intended path. They then calculated the small, relative movements of the robot and its parts against this moving anchor. This approach, known as using an orbit-following frame, prevents the computer from losing precision. It allows the system to run on powerful graphics cards, which can simulate thousands of scenarios simultaneously, without the results becoming inaccurate over time.

To prove their method worked, the team tested mjorbit on several realistic missions. In one test, they simulated a free-floating satellite with robotic arms that had to rotate the entire spacecraft by shifting its internal weight, a task requiring precise coordination of momentum. In another, they modeled a heavy spacecraft autonomously docking with a massive, passive target, a maneuver that demands millimeter-level accuracy. They also simulated a service robot capturing a drifting payload and holding it steady. In these tests, the researchers compared their new system against older, established simulators. They found that while traditional tools could take hours to run a single scenario, their new system could run thousands of simulations in the same time. More importantly, they showed that ignoring orbital physics leads to failure. In a test where a robot tried to point a captured object toward Earth, a simulator that ignored gravity and orbital forces failed to hold the object steady, causing it to swing wildly. The new system, which accounted for the subtle tug of gravity, successfully kept the object pointed in the right direction for two hours.

The researchers also demonstrated that this framework is ready for training artificial intelligence. By running 1,024 parallel simulations on a single graphics card, they trained a robot to fly to a drifting cargo module, grab it, and hold it steady. The robot learned this complex task in just one minute of computer time, achieving an 88 percent success rate across all the simulated worlds. This speed suggests that engineers can now use machine learning to develop control strategies for space robots that were previously too difficult to test. The system is open-source, meaning other researchers can use it to build their own tools for space exploration. While the current version focuses on the physical movement of rigid objects and does not yet include advanced sensors like cameras or lidar, it provides a robust foundation for the next generation of space robotics. The work confirms that by carefully managing how physics is calculated, it is possible to create a digital twin of space that is both fast enough for learning and accurate enough for real-world missions.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →