The comprehensive motion algebra (COMA) library is a header-only c++ implementation of the Comprehensive Motion Transformation Matrix (CMTM) along the needed lie algebra tools.
Currently, you can only download it from github. As a header-only library, one way to use the lib is to copy-paste the include directory. Otherwise, you can proceed as follow.
To compile you need the following tools:
For benchmarks:
git clone --recursive https://github.com/vsamy/coma
cd coma
mkdir build
cd build
cmake [options] ..
make -j8 && make install
You can set BUILD_TESTING
to ON/OFF
to enable/disable test building.
You can set BUILD_EXAMPLE
to ON/OFF
to enable/disable example building.
You can set BUILD_BENCH
to ON/OFF
to enable/disable benchmark building.
Here are some benchmarks made with google benchmarks and a i7-7700HQ@2.80GHz. GCC and Clang tests have been made under WSL2.
The next graph is a multiplication between two CMTM.
Static corresponds to CMTM<double, 6, order>
and dynamic to CMTM<double, 6, coma::Dynamic>
.
The next graph is a multiplication between two CMTM that also consider the construction of the two CMTM matrices and the deconstruction of the result.
Static corresponds to CMTM<double, 6, order>
and dynamic to CMTM<double, 6, coma::Dynamic>
.
Related paper can be found here
Citation
@inproceedings{samy2021generalized,
title={Generalized Comprehensive Motion Theory for High-Order Differential Dynamics},
author={Samy, Vincent and Ayusawa, Ko and Yoshida, Eiichi},
journal={Robotics: Science and Systems XVII},
year={2021}
}