雅克比矩阵求导推导

本文详细介绍了机器人机械系统中雅克比矩阵动态导数的计算过程,涉及雅克比矩阵的定义、坐标变换以及关节速度的表示。通过一系列数学推导,阐述了如何求解单位方向向量的导数和末端位置向量的导数,并给出了解决方案,最终用于计算雅克比矩阵的动态变化。参考了《FundamentalsofRoboticMechanicalSystems》的相关内容,同时也提到了MATLAB中相应函数的使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,引入雅克比矩阵公式:

J=[u1u2⋯une1e2⋯en]\mathbf{J}=\left[\begin{array}{c} \begin{array}{lll}\mathbf{u}_{1} & \mathbf{u}_{2} & \cdots & \mathbf{u}_{n}\end{array} \\ \begin{array}{lll}\mathbf{e}_{1} & \mathbf{e}_{2} & \cdots & \mathbf{e}_{n}\end{array}\end{array}\right]J=[u1u2une1e2en]

J˙=[u˙1u˙2⋯u˙ne˙1e˙2⋯e˙n]\dot{\mathbf{J}}=\left[\begin{array}{c} \begin{array}{lll}\dot{\mathbf{u}}_{1} & \dot{\mathbf{u}}_{2} & \cdots & \dot{\mathbf{u}}_{n}\end{array} \\ \begin{array}{lll}\dot{\mathbf{e}}_{1} & \dot{\mathbf{e}}_{2} & \cdots & \dot{\mathbf{e}}_{n}\end{array}\end{array}\right]J˙=[u˙1u˙2u˙ne˙1e˙2e˙n]

其中 ui=ei×ri\mathbf{u}_{i}=\mathbf{e}_{i} \times \mathbf{r}_{i}ui=ei×riu˙i=e˙i×ri+ei×r˙i\dot{\mathbf{u}}_{i}=\dot{\mathbf{e}}_{i} \times \mathbf{r}_{i}+\mathbf{e}_{i} \times \dot{\mathbf{r}}_{i}u˙i=e˙i×ri+ei×r˙i


在这里插入图片描述

为了求得 J˙\dot{\mathbf{J}}J˙ ,我们已知 ei\mathbf{e}_{i}eiri\mathbf{r}_{i}ri

ei\mathbf{e}_{i}ei :坐标系{i}的Z轴单位方向向量在基坐标系下{0}下的坐标,由 Ti0T_{\mathrm{i}}^{0}Ti0 的第三列的前三个元素给出

ri\mathbf{r}_{i}riri=oe0−oi0\mathbf{r}_{i}=\mathbf{o}_{e}^{0}-\mathbf{o}_{i}^{0}ri=oe0oi0

oi0\mathbf{o}_{i}^{0}oi0 为坐标系{i}原点在基坐标{0}下的三维坐标,由 Ti0T_{\mathrm{i}}^{0}Ti0 的第四列的前三个元素给出

ri\mathbf{r}_{i}ri 为在基坐标系下,坐标系{i}原点到末端点的距离

ri\mathbf{r}_{i}ri 还有另一种表示方式:ri=ai+ai+1+⋯+an\mathbf{r}_{i}=\mathbf{a}_{i}+\mathbf{a}_{i+1}+\cdots +\mathbf{a}_{n}ri=ai+ai+1++an (式中的 ai\mathbf{a}_{i}ai 必须化为基坐标下表示)

其中 aii\mathbf{a}_{i}^{i}aii 为坐标系{i+1}的原点在坐标系{i}下的三维坐标,由 Ti+iiT_{\mathrm{i+i}}^{i}Ti+ii 的的第四列的前三个元素给出,若要化为基坐标下表示,需乘以一个旋转变换矩阵 Ri0\mathbf{R}_{i}^{0}Ri0


需要我们求:e˙i\dot{\mathbf{e}}_{i}e˙ir˙i\dot{\mathbf{r}}_{i}r˙i

其中 e˙i=ωi×ei\dot{\mathbf{e}}_{i}=\boldsymbol{\omega}_{i} \times \mathbf{e}_{i}e˙i=ωi×eir˙i=ωi×ai+ωi+1×ai+1+⋯+ωn×an\dot{\mathbf{r}}_{i}=\boldsymbol{\omega}_{i} \times \mathbf{a}_{i}+\boldsymbol{\omega}_{i+1} \times \mathbf{a}_{i+1}+\cdots+\boldsymbol{\omega}_{n} \times \mathbf{a}_{n}r˙i=ωi×ai+ωi+1×ai+1++ωn×an

求解 ωi\boldsymbol{\omega}_{i}ωi

ωi+1i+1=Rii+1ωii+θ˙i+1zi+1i+1\boldsymbol{\omega}_{i+1}^{i+1}=\mathbf{R}_{i}^{i+1} \boldsymbol{\omega}_{i}^{i}+\dot{\theta}_{i+1} \mathbf{z}_{i+1}^{i+1}ωi+1i+1=Rii+1ωii+θ˙i+1zi+1i+1

ωi+1=Ri+10ωi+1i+1\boldsymbol{\omega}_{i+1}=\mathbf{R}_{i+1}^{0}\boldsymbol{\omega}_{i+1}^{i+1}ωi+1=Ri+10ωi+1i+1

可以求得 e˙i\dot{\mathbf{e}}_{i}e˙i

e˙i=ωi×ei\dot{\mathbf{e}}_{i}=\boldsymbol{\omega}_{i} \times \mathbf{e}_{i}e˙i=ωi×ei

也可求得 r˙i\dot{\mathbf{r}}_{i}r˙i

r˙i=ωi×ai+ωi+1×ai+1+⋯+ωn×an\dot{\mathbf{r}}_{i}=\boldsymbol{\omega}_{i} \times \mathbf{a}_{i}+\boldsymbol{\omega}_{i+1} \times \mathbf{a}_{i+1}+\cdots+\boldsymbol{\omega}_{n} \times \mathbf{a}_{n}r˙i=ωi×ai+ωi+1×ai+1++ωn×an

综上,所有参数求得,最后求得

u˙i=e˙i×ri+ei×r˙i\dot{\mathbf{u}}_{i}=\dot{\mathbf{e}}_{i} \times \mathbf{r}_{i}+\mathbf{e}_{i} \times \dot{\mathbf{r}}_{i}u˙i=e˙i×ri+ei×r˙i


参考文献:《Fundamentals of Robotic Mechanical Systems》5.5节

matlab seriaLink 也有相应的求雅克比矩阵的函数 jacob_dot (注:该函数求的是雅克比矩阵导数与关节速度的乘积,即J˙q˙\dot{\mathbf{J}}\dot{\mathbf{q}}J˙q˙

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值