当前位置: 首页 > article >正文

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
两个 DH 参数 d,a

implicit through points and Gst0
隐式通过点和 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)
RRRRRR(工业机器人)

endpoint 端点

1

3 direction vectors, point of endpoint
3 个方向向量,端点的点

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
0...2 对于轴对

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 个子问题

43f34aba34521ffaf8cd51bcd5f10fd6.png


http://www.kler.cn/a/421421.html

相关文章:

  • 【机器学习】CatBoost 模型实践:回归与分类的全流程解析
  • Harnessing Large Language Models for Training-free Video Anomaly Detection
  • VSCode如何关闭Vite项目本地自启动
  • 消息中间件-Kafka1-实现原理
  • 华为HarmonyOS 让应用快速拥有账号能力 -- 1 华为账号一键登录
  • 002-日志增强版
  • 鸿蒙Next学习-webview原生与JS交互通信
  • 你听说过MIPS吗?它和ARM有何区别?
  • 2023年第十四届蓝桥杯Scratch国赛真题—推箱子
  • 如何解决 java.rmi.AlreadyBoundException: 已绑定异常问题?亲测有效的解决方法!
  • [C++设计模式] 为什么需要设计模式?
  • C++入门一
  • P3916 图的遍历(Tarjan缩点和反向建边)
  • 模拟实现单链表 —— SingleLinkedList
  • C++:特殊类设计及类型转换
  • 动捕丨数字人丨AIGC实训室方案:赋能高校数字化复合型人才培养
  • Scala正则表达式03
  • ESP32项目 --- 智能门锁(WiFi 蓝牙 OTA)
  • 《Vue零基础入门教程》第十七课:侦听器
  • SQLite:DDL(数据定义语言)的基本用法
  • echarts的双X轴,父级居中的相关配置
  • 如何参加华为欧拉考试?
  • 安装战网的时候提示“缺失libcef.dll”怎么办?libcef.dll文件丢失是什么原因?教你六大解决方法
  • Cad c#二次开发 常见错误
  • 小程序入门学习(四)之全局配置
  • EdDSA (Edwards-curve Digital Signature Algorithm)算法详解及python实现