Geometry is a fundamental part of robotics and there have been various frameworks of representation over the years. Recently, geometric algebra has gained attention for its property of unifying many of those previous ideas into one algebra. While there are already efficient open-source implementations of geometric algebra available, none of them is targeted at robotics applications. We want to address this shortcoming with our library gafro. This article presents an overview of the implementation details as well as a tutorial of gafro, an efficient c++ library targeting robotics applications using geometric algebra. The library focuses on using conformal geometric algebra. Hence, various geometric primitives are available for computation as well as rigid body transformations. The modeling of robotic systems is also an important aspect of the library. It implements various algorithms for calculating the kinematics and dynamics of such systems as well as objectives for optimisation problems. The software stack is completed by python bindings in pygafro and a ROS interface in gafro_ros.
翻译:几何学是机器人学的基础组成部分,多年来出现了多种表示框架。近年来,几何代数因其将众多先前思想统一为一种代数的特性而受到关注。尽管已有高效的几何代数开源实现,但尚无专门针对机器人学应用的方案。我们希望通过我们的库gafro解决这一不足。本文概述了gafro的实现细节及教程——这是一款利用几何代数的面向机器人学应用的高效C++库。该库专注于使用共形几何代数,因此支持多种几何基元的计算以及刚体变换。机器人系统的建模也是该库的重要方面,它实现了多种用于计算机器人系统运动学和动力学的算法,以及优化问题中的目标函数。该软件栈通过pygafro中的Python绑定和gafro_ros中的ROS接口进一步完善。