Robot Screw Theory (Product of Exponentials)机器人螺旋理论(指数积)
Screw Theory 螺旋理论
Screw theory uses the fact that every rigid body transformation can be expressed by a rotational and translational movement.
螺旋理论利用了每个刚体变换都可以通过旋转和平移运动来表示这一事实。
Robert Ball developed the theory in 19th century
罗伯特·鲍尔在 19 世纪发展了该理论Chasles' theorem 沙勒定理
Klein, Plücker, Clifford and others developed it further
克莱因、普吕克、克利福德等人进一步发展了它
Screw Theory, also called Product of Exponentials (PoE), is an alternative to Denavit-Hartenberg (DH). DH is the most used method, but screw has some advantages:
螺旋理论,也称为指数积(PoE),是 Denavit-Hartenberg(DH)方法的替代方案。DH 是最常用的方法,但螺旋理论有一些优势:
setup is easier, because less frames and axis definitions are necessary
设置更容易,因为需要更少的框架和轴定义local singularities are avoided. There are no gimbal locks, polar kinematics 0,0 singularity and similar.
局部奇点被避免。没有万向节锁、极坐标运动学 0,0 奇点等类似情况。inverse kinematics can be developed in closed form, i. e. as algorithms without iterations. All possible solutions (up to 8 for a 6 axis industrial robot) are calculated, so the best can be chosen.
逆运动学可以以封闭形式开发,即作为无迭代的算法。所有可能的解决方案(对于 6 轴工业机器人最多 8 个)都被计算出来,因此可以选择最佳方案。the closed form avoids iterating problems with big distances. The question whether a pose is reachable can be decided fast
闭合形式避免了大距离迭代问题。姿态是否可达的问题可以快速决定。force/torque and trajectory planning are included in the theory with similar methods as for kinematics calculations
力/扭矩和轨迹规划包括在理论中,方法类似于运动学计算probably a speedup in calculation of inverse kinematics
可能是逆运动学计算的加速
disadvantage: 缺点:
application of subproblems require special setups of the axes being intersecting or parallel. Some configurations cannot be calculated, but scientific research tries to solve those unsolvable problems.
子问题的应用需要特殊设置轴相交或平行。有些配置无法计算,但科学研究试图解决这些无法解决的问题。
比较 DH 与螺旋理论 PoE
Both approaches describe the properties of a robot, but differently:
两种方法都描述了机器人的特性,但方式不同:
what 什么 | Denavit-Hartenberg, DH | Screw theory, PoE 螺旋理论,PoE |
joints 关节 | change of coordinate system | actuator axis orientation and a point on it |
links 链接 | two DH parameters d, a | implicit through points and Gst0 |
actuator angles 执行器角度 | through coordinate system | relative to Gst0 相对于 Gst0 |
points 点数 | not explicit 不明确 | points depend on setup 点数取决于设置 |
endpoint reference 端点参考 | not explicit 不明确 | Gst0 |
so screw needs less axis descriptions, but additional reference points. The reference points depend on the setup: do axes intersect or are parallel e.g. (the more, the better)
所以螺旋需要更少的轴描述,但需要额外的参考点。参考点取决于设置:例如,轴是相交还是平行(越多越好)。DH can be converted to Screw parameters by calculating forward kinematics
DH 可以通过计算正向运动学转换为螺旋参数Screw cannot be converted completely to DH, because Y rotations and translations are missing in DH
螺旋不能完全转换为 DH,因为 DH 中缺少 Y 轴旋转和平移both calculations are connected to transformation matrices by Rodrigues' formula
两种计算都通过罗德里格斯公式与变换矩阵相连
The power of screw theory shows in inverse kinematics and torque calculations to allow closed form calculations without iterations.
螺旋理论的力量体现在逆运动学和扭矩计算中,允许无迭代的闭式计算。
Description of Screw Setup
螺旋设置说明
An axis is described by
轴由...描述
axis direction of the rotating/moving axis (in DH the Z axis), e. g. (0,0,1) to rotate about the Z axis (rotary axis) or move in Z axis direction (prismatic axis)
旋转/移动轴的轴方向(在 DH 中为 Z 轴),例如 (0,0,1) 绕 Z 轴旋转(旋转轴)或沿 Z 轴方向移动(棱柱轴)an arbitray point on the axis
轴上的任意点type of axis 轴类型
The endpoint position is described
端点位置已描述
for a given set of angles (rotary) and positions (prismatic)
对于给定的一组角度(旋转)和位置(棱柱)endpoint as 3-value position and 9-value orientation
端点作为 3 值位置和 9 值方向
For parallel kinematics 用于并联运动学
how it's organized 它是如何组织的
how the axes movements are related
轴的运动如何相关
This information is sufficient to calculate new positions when changing angles/linear positions and to calculated inverse kinematics (i e. from endposition calculating back to the angles). This is possible, because the changed angles/positions are calculated from relative changes in respect to the reference angles.
这些信息足以在改变角度/线性位置时计算新位置,并计算逆运动学(即从终点位置计算回角度)。这是可能的,因为改变的角度/位置是根据相对于参考角度的相对变化计算的。
To avoid rounding problems, for axes which intersect, it is advantageous to use this crossing point as point on the two axes.
为了避免舍入问题,对于相交的轴,使用这个交点作为两个轴上的点是有利的。
Data model: 数据模型:
element 元素 | count 计数 | data 数据 | example 例子 |
axis 轴 | axisnr | direction vector, point on axis | 0,0,1,0,0,352 |
axis type 轴类型 | 1 | type of axis and how parallel setup | RRRRRR (industrial robot) |
endpoint 端点 | 1 | 3 direction vectors, point of endpoint | 1,0,0,0,1,0,0,0,1,500,0,712 |
endpoint angle reference 端点角参考 | 1 | maxactuators * degrees or positions | 0,0,0,0,0,0 |
The direction vectors must be normalized (i. e. the sum of the squares is 1).
方向向量必须归一化(即平方和为 1)。
The norm which is needed for CGA points is added and cached and is not needed as input value.
需要 CGA 点的规范已添加并缓存,不需要作为输入值。
To specify parallel kinematics setup, no standard exists yet. As workaround, the robotType parameter is used to specify the types.
要指定并联运动学设置,目前还没有标准。作为变通方法,使用 robotType 参数来指定类型。
Paden-Kahan subproblems Paden-Kahan 子问题
Paden-Kahan is used to solve the inverse kinematics, i. e. for a given endpoint (position and orientation), the actuator angles or linear position shall be calculated. Often, there exists more than one solution, so all solutions are calculated.
Paden-Kahan 用于解决逆运动学问题,即对于给定的端点(位置和方向),计算执行器的角度或线性位置。通常存在多个解决方案,因此计算所有解决方案。
The actuator chain shall be solved by simplifying the exponential formula by
执行器链应通过简化指数公式来解决
taking out known actuator values
取出已知的执行器值handling together axes which are connected somehow, like intersection or being parallel
一起处理某种方式连接的轴,例如交叉或平行finding points, vectors or distances in the chain which do not change by specific actuator changes
在链条中找到不会因特定执行器变化而改变的点、向量或距离
Paden developed an initial set of PK1 ... PKn (mainly 3) subproblems in his dissertation. It was extended for linear axes and other situations later.
帕登在他的论文中开发了一组初始的 PK1 ... PKn(主要是 3 个)子问题。后来它被扩展到线性轴和其他情况。
I'll label Paden's subproblems as PK1...PK3 (4,5,6), Pardos-Gators' ones like he labeled it PG1..., and extensions as PK2a, PK2b etc. from several scientific articles.
我将把 Paden 的子问题标记为 PK1...PK3(4,5,6),Pardos-Gators 的子问题像他标记的那样标记为 PG1...,扩展部分标记为 PK2a、PK2b 等,来自几篇科学文章。
The crossing was also defined by the "Pieper criterion". Nearly all kinematics which follow the Pieper criterion are solvable by closed form subproblems.
交叉点也由“Pieper 标准”定义。几乎所有遵循 Pieper 标准的运动学都可以通过封闭形式的子问题求解。
label 标签 | property 财产 | simplification possible if... | solutions *) 解决方案 *) |
PK1 | one rotary axis 一个旋转轴 | a point on the axis | 1 |
PK2 | two intersecting rotary axes | no 不 | 0...2 for the axis pair |
PK3 | rotary axis to given distance | distance fix 距离修复 | 1 |
*) number of angle solutions
*) 角度解的数量
The solutions are described on the geometric algebra detailed page, starting with PK2.
解决方案在几何代数详细页面上描述,从 PK2 开始。
screw formula, resolve by PK
螺旋公式,由 PK 解决
This frightening looking formula - tbd insert image - is simple, if looking in overview mode:
这个看起来令人害怕的公式 - tbd 插入图片 - 如果从概览模式来看是很简单的:
the e elements are single actuator, the theta are are angles or linear movements. Those are the screw rotations and translations.
e 元素是单个执行器,θ 是角度或线性运动。这些是螺钉的旋转和平移。noap is the end position of the reference angles/positions (noap stands for nick - ... - approach - position of a gripper) and is a 4x4 transformation matrix described on the firmware page.
noap 是参考角度/位置的终点位置(noap 代表 nick - ... - approach - 夹持器的位置),是固件页面上描述的 4x4 变换矩阵。
The angles/positions are resolved by isolating e elements or pairs of e elements by
角度/位置通过隔离 e 元素或 e 元素对来解决
moving the other elements to the right side by inverting them
将其他元素通过反转移到右侧finding points where e elements can be removed. They are the special cases of PK1 and PK3, if a point is on the axis
找到可以移除 e 元素的点。它们是 PK1 和 PK3 的特殊情况,如果一个点在轴上。getting the angle(s) by applying a PK method
通过应用 PK 方法获取角度
C parameter C 参数
Configuration has three parts:
配置有三个部分:
Direction of an axis and a point anywhere on the axis for revolute joints and a direction of the axis for prismatic/linear joints. Currently, two types of joints can be configured:
轴的方向和轴上任意一点用于旋转关节,轴的方向用于棱柱/线性关节。目前,可以配置两种类型的关节:
revolute/rotational with 3 values of omega and 3 values of q. From omega and v, a v is calculated. omega are orthonormal axis values of the rotating axis. q is a point on the axis.
旋转/旋转具有 3 个 omega 值和 3 个 q 值。从 omega 和 v 计算出一个 v。omega 是旋转轴的正交轴值。q 是轴上的一个点。translational/linear with omega being 3 values with 0 each, and v being 3 values of the direction of the axis
平移/线性,ω为 3 个值,每个值为 0,v 为轴方向的 3 个值
Endpoint position and orientation for reference angles, e.g. all angles being 0. This is called Gst(0) or HSt(0) or M. Gst(0) is a transformation matrix as described on the firmware page with a 3x3 rotation matrix and a 1x3 position vector, put together in a 4x4 matrix. It contains the orientation and position of the endpoint for given actuator angles (revolute joints) / positions (linear joints). Often all angles being 0 degrees or the home positions are taken as base for calculation of Gst(0).
端点位置和方向用于参考角度,例如所有角度为 0。这称为 Gst(0)或 HSt(0)或 M。Gst(0)是一个变换矩阵,如固件页面所述,具有 3x3 旋转矩阵和 1x3 位置向量,组合在一个 4x4 矩阵中。它包含给定执行器角度(旋转关节)/位置(线性关节)的端点的方向和位置。通常所有角度为 0 度或归位位置作为 Gst(0)的计算基础。
Crossing points of axes and endpoint position. This can probably be calculated from the other paramters or from the DH parameters if they are provided, also. Due to rounding errors of the float numbers, intersections may not be detected, so there will be an explicit method in configuration to tell firmware where intersections are located. => tbd
轴的交点和端点位置。这可能可以从其他参数或提供的 DH 参数计算得出。此外,由于浮点数的舍入误差,可能无法检测到交点,因此配置中将有一种显式方法来告诉固件交点的位置。= > tbd
The three parts are sufficient to calculate new endpoints with given actuator angles/positions and the inverse kinematics.
这三个部分足以用给定的执行器角度/位置和逆运动学来计算新的端点。
Overview of mathematical methods
数学方法概述
Screw configuration or extended Denavit-Hartenberg is used for setup and calculating forward kinematics
螺旋配置或扩展的 Denavit-Hartenberg 用于设置和计算正向运动学screw theory is used for setup and formula basis for Paden-Kahan based inverse kinematics
螺旋理论用于基于 Paden-Kahan 的逆运动学的设置和公式基础geometric algebra (Clifford algebra, multivectors, GA) is used to deduce the algorithms for Paden-Kahan subproblems. See the two dedicated pages
几何代数(Clifford 代数,多向量,GA)用于推导 Paden-Kahan 子问题的算法。请参阅两个专门页面。quaternions, dual quaternions (octonions, Cayley numbers) are used to calculate rotations and translations
四元数,双四元数(八元数,凯莱数)用于计算旋转和平移
Literature about screw theory, Paden-Kahan / canonical subproblems
关于螺旋理论的文献,Paden-Kahan / 规范子问题
When searching for screw theory, searching for Chasles' theorem will give some findinds also. The theorem says that all rigid body displacements can be described by a rotation and translation (a screw).
在搜索螺旋理论时,搜索沙勒定理也会有一些发现。该定理指出,所有刚体位移都可以通过旋转和平移(螺旋)来描述。
With the exception of most of the books, all the following literature was available free, being Open Access, source code (e.g. on github) or as pre-printed versions. I especially recommend buying the smaller, less expensive Pardos-Gotor book.
除了大多数书籍外,以下所有文献都是免费提供的,包括开放获取、源代码(例如在 github 上)或预印本。我特别推荐购买较小、较便宜的 Pardos-Gotor 书籍。
books 书籍
Jose Pardos-Gotor: Screw Theory for Robotics (about 200 pages). 4 additional subproblems called PG1...4, PG1...3 for translational (analogue to PK1...PK3), PG4 for parallel rotational axes
何塞·帕尔多斯-戈托尔:机器人螺旋理论(约 200 页)。4 个附加子问题称为 PG1...4,PG1...3 用于平移(类似于 PK1...PK3),PG4 用于平行旋转轴。Jose Pardos-Gotor: Screw Theory in Robotics (about 280 pages): I don't know its contents compared to the other one. It is very expensive.
何塞·帕尔多斯-戈托尔:《机器人中的螺旋理论》(约 280 页):我不知道它的内容与另一本相比。它非常贵。Murray/Li/Sastry book chapter 3.3.2 ff
Murray/Li/Sastry 书第 3.3.2 章及以下章节Lynch/Park Modern Robotics preprint 2017. Not about Paden-Kahan, but much about screw theory
林奇/帕克现代机器人预印本 2017。不是关于帕登-卡汉,而是关于螺旋理论。McCarthy: Introcution to Theoretical kinematics. Has some wasted pages, but is very affordable and provides good summaries about many topics including quaternions and closed chains.
麦卡锡:理论运动学导论。有一些浪费的页面,但价格非常实惠,并且提供了关于许多主题的良好总结,包括四元数和闭链。Peter Corke: Robotics, Vision and Control 2nd ed. 2nd ed is important, as in this edition screw theory was added as topic. Uses Matlab a lot, as Corke is an original developer of robotics toolbox and machine vision toolbox of Matlab. He offers two open source versions of the toolboxes.
彼得·科克:机器人、视觉与控制第 2 版。第 2 版很重要,因为在这一版中增加了螺旋理论作为主题。大量使用 Matlab,因为科克是 Matlab 机器人工具箱和机器视觉工具箱的原始开发者。他提供了两个开源版本的工具箱。
articles 文章
1 free + 2 parallel: Dimovski et al, Algorithmic approach to geometric...: one axis plus 2 parallel axes, without perpendicular requirement of first axis of Chen et al. PK2 modified
1 自由+2 平行:Dimovski 等人,几何算法方法……:一个轴加上 2 个平行轴,不需要 Chen 等人的第一个轴的垂直要求。PK2 修改1 perpend + 2 parallel (1, 2/3, 4/5, 6): Hong et al - Algorithm and Application of Inverse Kinematics. Chen/Zhu/Zhang - Improved Inverse Kinematics Algorithm
1 垂直 + 2 平行 (1, 2/3, 4/5, 6): Hong 等 - 逆运动学算法及应用. Chen/Zhu/Zhang - 改进的逆运动学算法Elias, Wen: Canonical Subproblems..., 2022. Overview of additional subproblems, and description of 6 changed/new subproblems, e. g. extension to 3 or 4 intersecting cones. Offers a good overview of previous articles about subproblems
埃利亚斯,温:规范子问题……,2022 年。概述了额外的子问题,并描述了 6 个更改/新子问题,例如扩展到 3 个或 4 个相交的圆锥体。提供了关于子问题的先前文章的良好概述。PK2 extended disjoint: Yue-sheng, Ai-ping: Extension of the Second Paden-Kahan Sub-problem..., 2008. Extension of PK2 for disjoint axes.
PK2 扩展不相交:岳生,爱平:第二个 Paden-Kahan 子问题的扩展……,2008 年。不相交轴的 PK2 扩展。An, H.S.; Seo, T.W.; Lee, J.W. Generalized solution for a sub-problem of inverse kinematics based on product of exponential formula. Joining PK2 and PK3 into one subproblem.
安, H.S.; 徐, T.W.; 李, J.W. 基于指数公式乘积的逆运动学子问题的广义解。将 PK2 和 PK3 合并为一个子问题。https://en.wikipedia.org/wiki/Paden%E2%80%93Kahan_subproblems with formulae PK1 to PK3 (draft for PK 4, 5)
Bertold Bongardt - An analysis of the dual-complex unit circle with applications to line geometry
贝托尔德·邦加特 - 双复数单位圆的分析及其在直线几何中的应用
article, using dual quaternions
文章,使用双四元数
Chen et al - Solution of an Inverse Kinematics Problem using Dual Quaternions
陈等人 - 使用双四元数解决逆运动学问题
articles CNC 5 axis (for all with PPPRR)
文章 CNC 5 轴(适用于所有带 PPPRR 的)
Jixiang Yang, Yusuf Altintas - Generalized kinematics of five-axis serial machines with non-singular tool path generation (2013)
杨吉祥,尤素福·阿尔廷塔斯 - 五轴串联机床的广义运动学及非奇异刀具路径生成 (2013)
dissertations 论文
Paden's dissertation (available as pdf),describing 4 subproblems
帕登的论文(可作为 pdf),描述了 4 个子问题