Home
Name Modified Size InfoDownloads / Week
Rotations Conversion Library v1.2.0.zip 2018-01-22 54.0 kB
README 2018-01-22 2.9 kB
Rotations Conversion Library v1.1.0.zip 2016-10-28 37.7 kB
Rotations Conversion Library v1.0.1.zip 2016-08-11 36.2 kB
Totals: 4 Items   130.7 kB 0
Rotations Conversion Library
============================
Author: Philipp Allgeuer
Version: 1.2.0
Date: 22/01/18

General Overview
----------------
The Rotations Conversion Library (RCL) is a collection of functions that address common computations and numerical handling of rotations in 3D Euclidean space. The rotation representations that are supported are rotation matrices (`Rotmat`), Quaternions (`Quat`), intrinsic ZYX Euler angles (`Euler`), fused angles (`Fused`) and tilt angles (`Tilt`). In addition to the core competency of being able to convert between each of the representations, operations such as inversion, ZYX yaw extraction, fused yaw extraction, renormalisation, equality detection, vector rotation and much more have been implemented. Tilt vector addition and the relative and absolute tilt phase spaces are also supported. Unit tests for each function are provided to ensure that the library performs exactly as it should. The implementation of the Rotations Conversion Library is based on the very related Matlab/Octave Rotations Library (MORL), which is a highly tested reference implementation for the required conversion algorithms (see https://sourceforge.net/projects/rotationslib/).

Please note that the *fused angles* and *tilt angles* rotation representations are the invention of the author, and have been specifically designed to overcome the many limitations and peculiarities of the Euler angles representation. More information can be found in the IROS paper "Fused Angles: A Representation of Body Orientation for Balance" (at time of writing available online at http://www.ais.uni-bonn.de/~pallgeuer/papers/IROS_2015_fused.pdf). The tilt phase space is also an invention of the author.

Getting Started
---------------
This library is implemented as a collection of platform-independent C++ source files. To get started (if you haven't done so already) download the latest ZIP of the library from the SourceForge page, and extract it to the desired location on your computer.

There are three ways of using the library:
1) Directly include the source files in your project, and build them with the rest of your project.
2) Build a static library (e.g. *.a or *.lib) of the source code and link your project to it.
3) Build a dynamic library (e.g. *.so or *.dll) of the source code and link your project to it.

Due to the small and efficient nature of the library, one of the first two options is recommended. Very minimal benefit is expected from building a dynamic library.

Please refer to the Wiki for basic information on the library:
https://sourceforge.net/p/rotconvlib/wiki/

I welcome all feedback, suggestions and bug reports. If you improve or fix anything about the library then I encourage you to let me know so that the library can be improved for everyone!

Email: pallgeuer[at]ais.uni-bonn.de

Philipp Allgeuer
Source: README, updated 2018-01-22