机械臂的雅克比矩阵推导

这篇具有很好参考价值的文章主要介绍了机械臂的雅克比矩阵推导。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 线速度和角速度的递推通式推导

机械臂的雅克比矩阵推导,机器人学,机器人学,雅克比矩阵,机械臂
p i = p i − 1 + R i − 1 r i − 1 , i i − 1 \mathbf{p}_{i}=\mathbf{p}_{i-1}+\mathbf{R}_{i-1} \mathbf{r}_{i-1, i}^{i-1} pi=pi1+Ri1ri1,ii1

p i − 1 \mathbf{p}_{i-1} pi1 { i − 1 } \{i-1\} {i1}坐标系的原点的向量, p i \mathbf{p}_{i} pi { i } \{i\} {i}坐标系的原点的向量,对于向量如果没有上标默认在 { 0 } \{0\} {0}坐标系下表示(往后向量不说在哪个坐标系下表示默认是在 { 0 } \{0\} {0}坐标系下表示) r i − 1 , i i − 1 \mathbf{r}_{i-1, i}^{i-1} ri1,ii1 { i } \{i\} {i}坐标系的原点相对于 { i − 1 } \{i-1\} {i1}坐标系的原点构成的位置向量,这个向量在 { i − 1 } \{i-1\} {i1}坐标系下表示。对上式求导:

p ˙ i = p ˙ i − 1 + R i − 1 r ˙ i − 1 , i i − 1 + ω i − 1 × R i − 1 r i − 1 , i i − 1 = p ˙ i − 1 + v i − 1 , i + ω i − 1 × r i − 1 , i \dot{\mathbf{p}}_{i}=\dot{\mathbf{p}}_{i-1}+\mathbf{R}_{i-1} \dot{\mathbf{r}}_{i-1, i}^{i-1}+\mathbf{\omega}_{i-1} \times \mathbf{R}_{i-1} \mathbf{r}_{i-1, i}^{i-1}=\dot{\mathbf{p}}_{i-1}+\mathbf{v}_{i-1, i}+\mathbf{\omega}_{i-1} \times \mathbf{r}_{i-1, i} p˙i=p˙i1+Ri1r˙i1,ii1+ωi1×Ri1ri1,ii1=p˙i1+vi1,i+ωi1×ri1,i

上式中, v i − 1 , i \mathbf{v}_{i-1, i} vi1,i { i } \{i\} {i}坐标系的原点相对于 { i − 1 } \{i-1\} {i1}坐标系的原点构成的线速度向量。

对于旋转矩阵,我们有:

R i = R i − 1 R i i − 1 \mathbf{R}_{i}=\mathbf{R}_{i-1} \mathbf{R}_{i}^{i-1} Ri=Ri1Rii1

对旋转矩阵求导我们有: R ˙ ( t ) = S ( t ) R ( t ) \dot{\mathbf{R}}(t)=\mathbf{S}(t) \mathbf{R}(t) R˙(t)=S(t)R(t),其中 S ( t ) \mathbf{S}(t) S(t)是一个反对称矩阵,带入上式我们有:

S ( ω i ) R i = S ( ω i − 1 ) R i + R i − 1 S ( ω i − 1 , i i − 1 ) R i i − 1 \mathbf{S}(\boldsymbol{\omega}_{i}) \mathbf{R}_{i}=\mathbf{S}(\boldsymbol{\omega}_{i-1}) \mathbf{R}_{i}+\mathbf{R}_{i-1} \mathbf{S}(\boldsymbol{\omega}_{i-1, i}^{i-1}) \mathbf{R}_{i}^{i-1} S(ωi)Ri=S(ωi1)Ri+Ri1S(ωi1,ii1)Rii1

上式中, ω i − 1 , i i − 1 \omega_{i-1, i}^{i-1} ωi1,ii1 { i } \{i\} {i}坐标系的原点相对于 { i − 1 } \{i-1\} {i1}坐标系的原点构成的角速度向量,这个向量在 { i − 1 } \{i-1\} {i1}坐标系下表示。

由于旋转矩阵是正交矩阵:

R i − 1 S ( ω i − 1 , i i − 1 ) R i i − 1 = R i − 1 S ( ω i − 1 , i i − 1 ) R i − 1 T R i − 1 R i i − 1 \mathbf{R}_{i-1} \mathbf{S}\left(\boldsymbol{\omega}_{i-1, i}^{i-1}\right) \mathbf{R}_{i}^{i-1}=\mathbf{R}_{i-1} \mathbf{S}(\boldsymbol{\omega}_{i-1, i}^{i-1}) \mathbf{R}_{i-1}^{T} \mathbf{R}_{i-1} \mathbf{R}_{i}^{i-1} Ri1S(ωi1,ii1)Rii1=Ri1S(ωi1,ii1)Ri1TRi1Rii1

这里使用公式 R S ( ω ) R T = S ( R ω ) \mathbf{R} \mathbf{S}(\mathbf{\omega}) \mathbf{R}^{T}=\mathbf{S}(\mathbf{R} \mathbf{\omega}) RS(ω)RT=S(Rω),我们有:

R i − 1 S ( ω i − 1 , i i − 1 ) R i i − 1 = S ( R i − 1 ω i − 1 , i i − 1 ) R i \mathbf{R}_{i-1} \mathbf{S}(\boldsymbol{\omega}_{i-1, i}^{i-1}) \mathbf{R}_{i}^{i-1}=\mathbf{S}(\mathbf{R}_{i-1} \boldsymbol{\omega}_{i-1, i}^{i-1}) \mathbf{R}_{i} Ri1S(ωi1,ii1)Rii1=S(Ri1ωi1,ii1)Ri

于是前面的式子变成:

S ( ω i ) R i = S ( ω i − 1 ) R i + S ( R i − 1 ω i − 1 , i i − 1 ) R i \mathbf{S}(\boldsymbol{\omega}_{i}) \mathbf{R}_{i}=\mathbf{S}(\boldsymbol{\omega}_{i-1}) \mathbf{R}_{i}+\mathbf{S}(\mathbf{R}_{i-1} \boldsymbol{\omega}_{i-1, i}^{i-1}) \mathbf{R}_{i} S(ωi)Ri=S(ωi1)Ri+S(Ri1ωi1,ii1)Ri

于是我们有:

ω i = ω i − 1 + R i − 1 ω i − 1 , i i − 1 = ω i − 1 + ω i − 1 , i = \boldsymbol{\omega}_{i}=\boldsymbol{\omega}_{i-1}+\mathbf{R}_{i-1} \boldsymbol{\omega}_{i-1, i}^{i-1}=\boldsymbol{\omega}_{i-1}+\boldsymbol{\omega}_{i-1, i}= ωi=ωi1+Ri1ωi1,ii1=ωi1+ωi1,i=

总结我们得到的线速度和角速度的递推通式为:

机械臂的雅克比矩阵推导,机器人学,机器人学,雅克比矩阵,机械臂

1.1 平移副情况

对于平移副,我们有角速度:

ω i − 1 , i = 0 \boldsymbol{\omega}_{i-1, i}=\mathbf{0} ωi1,i=0

线速度:

v i − 1 , i = d ˙ i z i − 1 \mathbf{v}_{i-1, i}=\dot{d}_{i} \mathbf{z}_{i-1} vi1,i=d˙izi1

z i − 1 \mathbf{z}_{i-1} zi1 { i − 1 } \{i-1\} {i1}坐标系沿着 z \mathbf{z} z轴的单位向量。

带入前面的公式我们有:

ω i = ω i − 1 p ˙ i = p ˙ i − 1 + d ˙ i z i − 1 + ω i × r i − 1 , i \begin{aligned} \boldsymbol{\omega}_{i} & =\boldsymbol{\omega}_{i-1} \\ \dot{\mathbf{p}}_{i} & =\dot{\mathbf{p}}_{i-1}+\dot{d}_{i} \mathbf{z}_{i-1}+\boldsymbol{\omega}_{i} \times \mathbf{r}_{i-1, i} \end{aligned} ωip˙i=ωi1=p˙i1+d˙izi1+ωi×ri1,i

1.2 旋转副情况

对于旋转副,我们有角速度:

ω i − 1 , i = ϑ ˙ i z i − 1 \boldsymbol{\omega}_{i-1, i}=\dot{\vartheta}_{i} \mathbf{z}_{i-1} ωi1,i=ϑ˙izi1

v i − 1 , i = ω i − 1 , i × r i − 1 , i \boldsymbol{v}_{i-1, i}=\boldsymbol{\omega}_{i-1, i} \times \boldsymbol{r}_{i-1, i} vi1,i=ωi1,i×ri1,i

于是我们有:

ω i = ω i − 1 + ϑ ˙ i z i − 1 p ˙ i = p ˙ i − 1 + ω i × r i − 1 , i \begin{aligned} \boldsymbol{\omega}_{i} & =\boldsymbol{\omega}_{i-1}+\dot{\vartheta}_{i} \mathbf{z}_{i-1} \\ \dot{\mathbf{p}}_{i} & =\dot{\mathbf{p}}_{i-1}+\boldsymbol{\omega}_{i} \times \mathbf{r}_{i-1, i} \end{aligned} ωip˙i=ωi1+ϑ˙izi1=p˙i1+ωi×ri1,i

2. 雅克比矩阵计算

2.1 线速度雅克比分量

p ˙ e = ∑ i = 1 n ∂ p e ∂ q i q ˙ i = ∑ i = 1 n J P i q ˙ i \dot{\mathbf{p}}_{e}=\sum_{i=1}^{n} \frac{\partial \mathbf{p}_{e}}{\partial q_{i}} \dot{q}_{i}=\sum_{i=1}^{n} \boldsymbol{J}_{P i} \dot{q}_{i} p˙e=i=1nqipeq˙i=i=1nJPiq˙i

上式可以看到,末端的线速度都是由每个关节的线速度贡献的,其中 q ˙ i \dot{q}_i q˙i是关节速度。

2.1.1 平移副情况

对于平移副我们有 q i = d i q_{i}=d_{i} qi=di

根据:

v i − 1 , i = d ˙ i z i − 1 \mathbf{v}_{i-1, i}=\dot{d}_{i} \mathbf{z}_{i-1} vi1,i=d˙izi1

q ˙ i J P i = d ˙ i z i − 1 \dot{q}_{i} \boldsymbol{J}_{P i}=\dot{d}_{i} \mathbf{z}_{i-1} q˙iJPi=d˙izi1

于是我们有:

J P i = z i − 1 \boldsymbol{J}_{P i}=\mathbf{z}_{i-1} JPi=zi1

2.1.2 旋转副情况

对于旋转副我们有 q i = θ i q_{i}=\theta_{i} qi=θi:
机械臂的雅克比矩阵推导,机器人学,机器人学,雅克比矩阵,机械臂
q ˙ i J P i = ω i − 1 , i × r i − 1 , e = ϑ ˙ i z i − 1 × ( p e − p i − 1 ) \dot{q}_{i} \boldsymbol{J}_{P i}=\boldsymbol{\omega}_{i-1, i} \times \mathbf{r}_{i-1, e}=\dot{\vartheta}_{i} \mathbf{z}_{i-1} \times\left(\mathbf{p}_{e}-\mathbf{p}_{i-1}\right) q˙iJPi=ωi1,i×ri1,e=ϑ˙izi1×(pepi1)

于是:

J P i = z i − 1 × ( p e − p i − 1 ) \boldsymbol{J}_{P i}=\mathbf{z}_{i-1} \times\left(\mathbf{p}_{e}-\mathbf{p}_{i-1}\right) JPi=zi1×(pepi1)

2.2 角速度雅克比分量

对于角速度我们有:

ω e = ω n = ∑ i = 1 n ω i − 1 , i = ∑ i = 1 n J O i q ˙ i \boldsymbol{\omega}_{e}=\boldsymbol{\omega}_{n}=\sum_{i=1}^{n} \boldsymbol{\omega}_{i-1, i}=\sum_{i=1}^{n} \boldsymbol{J}_{O i} \dot{q}_{i} ωe=ωn=i=1nωi1,i=i=1nJOiq˙i

2.2.1 平移副情况

对于平移副我们有 q i = d i q_{i}=d_{i} qi=di

q ˙ i J O i = 0 \dot{q}_{i} \boldsymbol{J}_{O i}=\mathbf{0} q˙iJOi=0

于是有:

ȷ O i = 0 \boldsymbol{\jmath}_{O i}=\mathbf{0} Oi=0

2.2.2 旋转副情况

对于旋转副我们有 q i = θ i q_{i}=\theta_{i} qi=θi:

q ˙ i J O i = ϑ ˙ i z i − 1 \dot{q}_{i} \boldsymbol{J}_{O i}=\dot{\vartheta}_{i} \mathbf z_{i-1} q˙iJOi=ϑ˙izi1

于是有:

J O i = z i − 1 \boldsymbol{J}_{O i}=\mathbf{z}_{i-1} JOi=zi1

2.3 雅可比矩阵综合

我们可以把线速度和角速度的雅克比矩阵的分量合成,于是我们有:

J = [ J P 1 J P n … J O 1 J O n ] \mathbf{J}=\left[\begin{array}{lll} \boldsymbol{J}_{P 1} & & \boldsymbol{J}_{P n} \\ & \ldots & \\ \boldsymbol{J}_{O 1} & & \boldsymbol{J}_{O n} \end{array}\right] J= JP1JO1JPnJOn

可以分成平移副和旋转副来讨论雅克比矩阵中的分量:

[ J P i J O i ] = { [ z i − 1 0 ]  平移副  [ z i − 1 × ( p e − p i − 1 ) z i − 1 ]  旋转副  \left[\begin{array}{l} \boldsymbol{J}_{P i} \\ \boldsymbol{J}_{O i} \end{array}\right]=\left\{\begin{array}{ll} {\left[\begin{array}{c} \boldsymbol{z}_{i-1} \\ \mathbf{0} \end{array}\right]} & \text { 平移副 } \\ {\left[\begin{array}{c} \boldsymbol{z}_{i-1} \times\left(\boldsymbol{p}_{e}-\boldsymbol{p}_{i-1}\right) \\ \boldsymbol{z}_{i-1} \end{array}\right]} & \text { 旋转副 } \end{array}\right. [JPiJOi]= [zi10][zi1×(pepi1)zi1] 平移副  旋转副 

关于上式的 z i − 1 \mathbf{z}_{i-1} zi1 p e \mathbf{p}_e pe p i − 1 \mathbf{p}_{i-1} pi1计算如下:

机械臂的雅克比矩阵推导,机器人学,机器人学,雅克比矩阵,机械臂

3. 不同坐标系下雅克比矩阵的转换

不同坐标系下线速度和加速度的转换如下:

[ p ˙ e u ω e u ] = [ R u 0 0 R u ] [ p ˙ e ω e ] , \left[\begin{array}{c} \dot{\mathbf{p}}_{e}^{u} \\ \boldsymbol{\omega}_{e}^{u} \end{array}\right]=\left[\begin{array}{cc} \mathbf{R}^{u} & \mathbf{0} \\ \mathbf{0} & \mathbf{R}^{u} \end{array}\right]\left[\begin{array}{c} \dot{\mathbf{p}}_{e} \\ \boldsymbol{\omega}_{e} \end{array}\right], [p˙euωeu]=[Ru00Ru][p˙eωe],

于是有:

[ p ˙ e u ω e u ] = [ R u 0 0 R u ] J q ˙ \left[\begin{array}{c} \dot{\mathbf{p}}_{e}^{u} \\ \boldsymbol{\omega}_{e}^{u} \end{array}\right]=\left[\begin{array}{cc} \mathbf{R}^{u} & \mathbf{0} \\ \mathbf{0} & \mathbf{R}^{u} \end{array}\right] \mathbf{J} \dot{\mathbf{q}} [p˙euωeu]=[Ru00Ru]Jq˙

则有:

J u = [ R u 0 0 R u ] J \mathbf{J}^{u}=\left[\begin{array}{cc} \mathbf{R}^{u} & \mathbf{0} \\ \mathbf{0} & \mathbf{R}^{u} \end{array}\right] \mathbf{J} Ju=[Ru00Ru]J

这里的 J u \mathbf{J}^{u} Ju就是在 { u } \{u\} {u}坐标系下表示的雅克比矩阵。

参考资料

[1]Siciliano B, Sciavicco L, Villani L, et al. . Robotics: Modelling, Planning and Control, 106-113文章来源地址https://www.toymoban.com/news/detail-553218.html

到了这里,关于机械臂的雅克比矩阵推导的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人学基础--运动学--2.3 变换矩阵

    2.3 变换矩阵 (1)齐次坐标系变换 2.1,2.1中讨论了坐标系及其平移,旋转两种变换。在实际应用中两个坐标系之间的关系往往既有平移又有旋转,因此这篇文章我们将讨论一下如何以一种更为紧凑的方式来表达两个坐标系之间的位置及姿态关系。 可以把这个问题分解开来看

    2024年02月11日
    浏览(44)
  • 《机器人学导论》根据DH参数表计算变换矩阵MATLAB代码

    PUMA560的DH参数表如下 根据参数表可以求出每一个连杆变换矩阵,求各连杆变换矩阵的MATLAB函数如下 带入DH表的最后三行参数,计算使用样例如下: 得到的结果为: 书上结果为  对比可得,代码计算结果与书上结果一致

    2024年02月06日
    浏览(52)
  • 机器人学基础(2)-微分运动和速度-雅可比矩阵计算、雅可比矩阵求逆、计算关节运动速度

    本文知识点: 坐标系的微分运动、坐标系之间的微分变化、机器人和机器人手坐标系的微分运动、雅可比矩阵的计算、雅可比矩阵求逆、雅可比矩阵和微分算子之间的关联 雅可比矩阵表示机构部件随时间变化的几何关系,它可以将单个关节的微分运动或速度转换为感兴趣点

    2024年02月06日
    浏览(44)
  • 机器人学|手机玻璃加工全自动化——AGV+机器人+视觉解决方案(含双目三维视觉SLAM建图、MATLAB的AGV路径规划导航避障、六轴机械手臂建模与路径规划仿真,附带源代码)

    文章目录 前言 一、国内外移动操作机器人现状 二、方案概述 三、主要部件BOM清单 1.差动轮式AGV: 2.UR5系列机械臂 3.Cognex智能相机 4.加工台 5.控制系统 6.电源和电缆 四、技术点及工作流程 五、计算自动化方案与人工方案成本收回时间 1.自动化方案成本分析: 2.人工方案成本

    2024年01月22日
    浏览(50)
  • 《动手学机器人学》7.2.4姿态之间的互相转换,Python&&C++支持四元数,欧拉角旋转矩阵、轴角

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途。 上一节小鱼带你一起学习了四种姿态表示方式,这节课我们就利用相关的开源库,来完成姿态的不同表示方式之间的转

    2024年02月02日
    浏览(47)
  • 机器人学:(1)机器人基础

    机器人的机械机构由一系列刚性构件(连杆)通过链接(关节)联结起来,机械臂的特征在于具有用于保证可移动性的臂(arm),提供灵活性的腕(wrist)和执行机器人所需完成任务的末端执行器(end - effector)。 机器人分为串联机器人与并联机器人。 运动链 是由两个或两个以

    2024年02月07日
    浏览(44)
  • 机器人学:(3)机器人运动学

    机器人运动学(Kinematics)是从几何角度描述和研究机器人的位置、速度和加速度随时间的变化规律的科学,它不涉及机器人本体的物理性质和加在其上的力。这里主要介绍机器人运动学的建模方法及逆运动学的求解方法。 机器人运动学问题主要在机器人的工作空间与关节空

    2024年02月07日
    浏览(50)
  • 机器人学基础(三):机器人运动学

    运动学问题是在不考虑引起运动的力和力矩的情况下,描述机械臂的运动。上一篇我们已经讨论了机器人运动方程的表示方法,这一篇将会讨论机器人的DH建模方法。 Denavit-Hartenberg(D-H)模型于1955年首次提出,用于描述机器人连杆和节点之间相互关系。后来逐步完善推导出了

    2024年02月09日
    浏览(52)
  • 【机器人学】逆运动学

    逆运动学 是一个非线性的求解问题,相对于正运动学较为复杂,主要是因为可解性探究、多重解以及多重解的选择等问题。例如,形如【机器人学】正运动学详解-6.4 一个简单例子中所用的六自由度机器人,其 逆运动学 可以描述为:假设我们已经知道其次变换矩阵 R T H ^RT

    2023年04月08日
    浏览(53)
  • 机器人学-正运动学

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 DH约定 正运动学 总结 本文介绍串联机械臂基础算法,并使用python和matlab进行算法设计、建模仿真。 标准DH配置  坐标系示意图  DH参数 代码如下(python):

    2024年02月15日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包