DQ Robotics: a Library for Robot Modeling and Control

Bruno Vilhena Adorno, Murilo Marques Marinho
10/25/2019
cs.ROeess.SY

Official code: dqrobotics/cpp (46 stars, LGPL-3.0, last commit 2026-09-21). 2 more implementations below.

Abstract

Dual quaternion algebra and its application to robotics have gained considerable interest in the last two decades. Dual quaternions have great geometric appeal and easily capture physical phenomena inside an algebraic framework that is useful for both robot modeling and control. Mathematical objects, such as points, lines, planes, infinite cylinders, spheres, coordinate systems, twists, and wrenches are all well defined as dual quaternions. Therefore, simple operators are used to represent those objects in different frames and operations such as inner products and cross products are used to extract useful geometric relationships between them. Nonetheless, the dual quaternion algebra is not widespread as it could be, mostly because efficient and easy-to-use computational tools are not abundant and usually are restricted to the particular algebra of quaternions. To bridge this gap between theory and implementation, this paper introduces DQ Robotics, a library for robot modeling and control using dual quaternion algebra that is easy to use and intuitive enough to be used for self-study and education while being computationally efficient for deployment on real applications.

View on arXivView PDF

Code Implementations(3)

dqrobotics/cppOfficial100%
LGPL-3.0

The DQ Robotics library in C++

4616C++, CMakeDec 21, 20181 months agoLGPL-3.0
dqrobotics/pythonOfficial100%
LGPL-3.0

The DQ Robotics library in Python

3112C++, CMakeDec 21, 20183 weeks agoLGPL-3.0
dqrobotics/matlabOfficial100%
LGPL-3.0

The DQ Robotics library in MATLAB

2814MATLABDec 21, 20181 months agoLGPL-3.0

Cite this paper

@article{adorno2019robotics,
  title  = {DQ Robotics: a Library for Robot Modeling and Control},
  author = {Bruno Vilhena Adorno and Murilo Marques Marinho},
  year   = {2019},
  eprint = {1910.11612},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1910.11612}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1910.11612.svg)](https://codeofpaper.com/paper/1910.11612)

Discussion