space-robot-dq - a Python library for dual quaternion kinematics, dynamics, and control of free-floating space robot manipulators

Loading...
Thumbnail Image

Authors

Jahanshahi, Hadi
Zhu, Zheng Hong

Journal Title

Journal ISSN

Volume Title

Publisher

Frontiers Media

Abstract

This article presents space-robot-dq, an open-source Python library for the kinematics, dynamics, and resolved-rate control of free-floating space robot manipulators using dual quaternion algebra. Unlike ground-based robots, space manipulators operate on platforms with no fixed base. When the arm moves, the spacecraft reacts to conserve momentum, changing the mapping between joint motion and end-effector motion. The library implements Product of Exponentials forward kinematics in dual quaternion arithmetic, numerical and analytical Jacobians, optimization-based inverse kinematics, the Umetani–Yoshida generalized Jacobian for momentum-coupled systems, and closed-loop resolved-rate controllers for a momentum-conserving free-floating plant with base pose propagation. It supports arbitrary N-DOF serial chains of revolute joints through a declarative configuration interface. The implementation is verified by 153 unit tests across four robot architectures and a 19-check benchmark suite. Independent validation covers forward-kinematics agreement below 10–11 m against two reference implementations that share no code with the library and first-order-convergent stationarity of the system’s center of mass, while construction-level consistency checks confirm momentum residuals at the 10–15 level. Two control studies quantify the practical consequences of the free-floating coupling. In Cartesian tracking of a 0.27 m maneuver, a controller using the fixed-base Jacobian accumulates 26.372 mm root mean square (RMS) error even with feedback, whereas the generalized-Jacobian controller tracks at 0.2512 mm RMS (a 105-fold difference that measures the cost of the model mismatch alone, because both controllers run on the same plant). In a capture-approach scenario, the end-effector maintains a full 6-DOF grasp pose against a client tumbling at 5° per second, holding 0.008429 mm and 0.000581° RMS with the generalized Jacobian versus 4.267 mm and 0.22° with the fixed-base model (506-fold and 379-fold differences attributable to the neglected coupling), while the spacecraft base drifts 2.4°, an attitude cost the library quantifies for mission design. All figures and numbers in this article are reproduced by a single, deterministic script included in the repository.

Description

© 2026 Jahanshahi and Zhu. This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.

Keywords

Dual quaternion, Free-floating manipulator, Generalized Jacobian, Momentum conservation, Python, Resolved-rate control, Space robotics, Tumbling target capture, On-orbit servicing, Active debris removal, Space manipulator dynamics, Open-source robotics software, Satellite capture

Citation

Jahanshahi H and Zhu ZH (2026) space-robot-dq: a Python library for dual quaternion kinematics, dynamics, and control of free-floating space robot manipulators. Front. Space Technol. 7:1955127. doi: 10.3389/frspt.2026.1955127