雅克比矩阵(上)-----雅克比推导

1、前言
回顾前面几期的内容,在第一期中介绍了机器人的正/逆运动学建模,正运动学解决的问题是如何从关节空间的关节变量描述操作空间的位姿,反之则是逆运动学的内容。将操作空间和关节的空间的关系用以下关系式进行表达。
在这里插入图片描述
机器人正/逆运动学始终在解决上面这个公式,已知末端的位姿,求解关节变量,或者已知关节变量,确定末端的位姿,这些描述的是静态位置之间的关系,属于静态运动学问题。
在第二、三期介绍了机器人动力学建模,使用是拉格朗日法,由于需要计算的每个连杆的动能,因此在第三期介绍了角速度和线速度的传递公式,即在已知每个关节的转动/平动速度情况下,从第一个运动关节出发,递推末端关节的速度(v,w)。在本期中将介绍如和在已知末端的速度的情况下,求得每个关节需要的运动速度。在机器人的控制方案,一般先规划末端的轨迹,而不是规划每个关节的运动速度,因此通过末端的运动状态求解关节的运动更具现实意义。
2、雅克比矩阵
2.1概念补充
关节空间:n个自由度的机械臂的末端位姿由n个关节变量决定,这n个关节变量统称为n维关节矢量,所有关节矢量构成的空间称为关节空间。即关节空间是由关节变量组成的空间。
在这里插入图片描述
,式中指右边部分。
操作空间:也称任务空间,一般来讲是笛卡尔空间,简单来讲就是空间直角坐标系。末端的位姿在这个空间描述,上式指左边部分。关于末端空间姿态的表示的方法后续补充。
矩阵的求导:这里直接给出矩阵的求导的计算公式。
在这里插入图片描述
2.2雅克比矩阵意义
在这里插入图片描述
在前面我们知道正/逆运动学所要做的内容,可以用上式进行表述,那么是否存在这个的表达式能够将操作空间的速度和关节空间的速度联系起来。首先对上式关于时间t进行求导
在这里插入图片描述
通过链式法则得到了操作空间的速度与关节空间的速度关系,将以上关系简记成如下形式:
在这里插入图片描述
其中J即为本期需要介绍的雅克比矩阵,它建立从关节变量速度到末端速度的映射,且它们之间的关系为线性的。
2.3雅克比矩阵计算
方法一:根据变换矩阵
在笛卡尔坐标系下,末端的位姿和速度表示如下:
在这里插入图片描述
那么雅克比矩阵相应的可以表示成:
在这里插入图片描述
线速度部分
可以根据变换矩阵,其中第四列代表的含义为末端的位置。将第四列的前三个提取出来关于关节变量进行求导即可。
角速度部分
末端角速度是由每个不同的旋转关节进行线性叠加而成,在三维空间中,角速度的表示为指向旋转轴的向量,其方向可借助右手定则进行判断。在以自身旋转轴旋转和关节自身的坐标系下考虑角速度对末端的影响,关节的旋转轴在自身坐标系下通常定义为z轴([0,0,1]),角速度定义为[0,0,w],那么对于末端的角速度的贡献为0,0,w。而Jw是基于基坐标系下的表述形式。因此只需要将每个旋转轴转换成基坐标系中表示即可。

方法二:微元法
在这里插入图片描述

假设其它关节不动,只有第二关节绕其轴旋转微小角度。由此产生的第N个连杆的微小位移和微小转动
在这里插入图片描述
其中表示在基坐标系中第二个关节轴的单位矢量。
同样地可以计算从第1到第N的所有连杆。末端的实际位移和微小转动就是各个关节微小位移和微小转动的总和,即:
在这里插入图片描述
写成矩阵的形式:
在这里插入图片描述
其中:
在这里插入图片描述
方法三:根据速度传递公式
速度的传递公式可回顾第三期的内容。这里直接写出速度的传递公式:
在这里插入图片描述
以上均针对转动关节而言,将雅克比矩阵写成以下形式:
在这里插入图片描述
对于末端的线速度记,末端角速度记为we,末端的速度是由每个关节运动对末端叠加,写出如下叠加公式:
在这里插入图片描述
其中:
在这里插入图片描述
同上写出:
在这里插入图片描述

【下期预告】
实例讲解雅克比矩阵(下)-----雅克比应用
关注获取相关源码
在这里插入图片描述

### 关于机械臂速度雅克比矩阵推导 机械臂的速度雅克比矩阵描述了关节空间中的速度与操作空间(笛卡尔空间)中末端执行器线速度和角速度之间的关系。对于给定的机械臂配置,雅克比矩阵 \( J(q) \) 将关节角度的变化率映射到末端执行器的空间速度。 #### 雅克比矩阵定义 假设机械臂具有 \( n \) 个自由度,则其雅克比矩阵可以表示为: \[ J(q) = \begin{bmatrix}J_v \\ J_\omega\end{bmatrix}, \] 其中 \( J_v \in \mathbb{R}^{3\times n} \) 是线速度分量,\( J_\omega \in \mathbb{R}^{3\times n} \) 是角速度分量[^1]。 #### 推导过程 为了得到完整的雅克比矩阵表达式,考虑第 \( i \)-th 连杆相对于基座的姿态变换矩阵 \( T_i(\theta_i) \),以及相邻连杆间的相对位姿变化。通过链式法则计算末端位置向量对各关节变量的一阶偏导数来构建雅克比矩阵的具体形式。 对于每个连杆,如果已知该连杆末端的位置矢量 \( p_i \) 和姿态旋转矩阵 \( R_i \),则可以通过以下方式获得对应的列向量: - 对于平移轴上的关节:设 \( z_{i-1} \) 表示前一连杆坐标系下的单位方向矢量,则当前连杆贡献的线速度项为 \( J_{vi}=z_{i-1}\times(p_e-p_{i}) \),而角速度项直接等于 \( J_{wi}=z_{i-1} \)- 对于转动轴上的关节:此时仅存在角速度成分,即 \( J_{wi}=z_{i-1} \),并且由于转动能引起新的线速度,因此还需加上 \( J_{vi}=z_{i-1}\times p_e \)。 最终将所有这些局部影响组合起来形成整个系统的全局雅克比矩阵。 ```matlab function J = compute_jacobian(theta, link_lengths) % theta: Joint angles as a vector. % link_lengths: Lengths of the links. num_links = length(link_lengths); Jv = zeros(3,num_links); % Linear velocity part Jo = zeros(3,num_links); % Angular velocity part pe = sum([cos(cumsum(theta)).*link_lengths; sin(cumsum(theta)).*link_lengths], 2); for i=1:num_links zi_minus_1 = [0; 0; 1]; % Assuming Z-axis rotation if i==1 pi = [0; 0]; else pi = sum([cos(cumsum(theta(1:i-1))).*link_lengths(1:i-1); ... sin(cumsum(theta(1:i-1))).*link_lengths(1:i-1)], 2); end Ji_v = cross(zi_minus_1, pe - pi); Ji_o = zi_minus_1; Jv(:,i) = Ji_v(:); Jo(:,i) = Ji_o(:); end J = [Jv; Jo]; end ``` 此函数实现了上述理论,并可用于实际仿真环境中模拟不同构型下机械臂的行为特性[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值