机器人基础之雅克比矩阵

  • 概述
  • 雅克比矩阵的构造
  • 微分运动和广义速度
  • 微分变换法
  • MATLAB实现


概述

雅克比矩阵ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵是从关节空间向操作空间的速度传递的线性关系,借助于机械原理中的概念,可以理解为广义传动比。
对于ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_02个关节的机器人,其雅克比矩阵是ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_03阶矩阵。其中前3行代表机器人末端坐标系线速度ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_04的传递比;后3行代表对手爪的角速度ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_05的传递比。另一方面,每一列代表相应的关节速度对末端坐标系线速度和角速度的传递比。因此,可将雅克比矩阵分块,即ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_06

雅克比矩阵的构造

微分运动和广义速度

刚体或坐标系的微分运动包含微分移动矢量ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_07和微分转动矢量ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_08。前者由沿三个坐标轴的微分移动组成,后者由绕三坐标轴的微分转动组成。将两者合并为6维列矢量ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_09,称为刚体或坐标系的微分运动矢量。ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_10 相应地,刚体或坐标系的广义速度ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_11是由线速度ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_04和角速度ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_05组成的6维列矢量。即ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_14 微分运动矢量D和广义速度V也是相对于某坐标系而言的,在不同坐标系中表达式不同。若坐标系{T}相对于基坐标系的齐次变换矩阵为 ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_15 则坐标系{T}中的微分运动ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_16和基坐标系中的微分运动ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_09之间的关系为: ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_18 上式简写为 ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_19 其中 ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_20 反对称矩阵ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_21定义为ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_22 类似的,任意两坐标系{A}和{B}之间微分运动的坐标变换为ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_23

微分变换法

下面采用构造性的方法,不需要求导而直接构造出ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_24ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_25
以六自由度机械臂为例。

  1. 首先计算出各连杆变换矩阵ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_26ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_27ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_28ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_29ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_30ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_31
  2. 然后利用公式ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_32计算得ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_33ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_34ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_35ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_36ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_37ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_38
  3. 依次计算末端坐标系在各连杆坐标系中的变化矩阵ceres库雅克比为矩阵 雅克比矩阵怎么计算_分块_39ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_40ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_41ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_42ceres库雅克比为矩阵 雅克比矩阵怎么计算_MATLAB_43ceres库雅克比为矩阵 雅克比矩阵怎么计算_坐标轴_38
  4. 利用公式9计算微分运动变化矩阵。
  5. 若关节ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_45为直线运动,则取微分运动变化矩阵的第三列作为雅克比矩阵的第ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_45列;
    若关节ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_45为旋转运动,则取微分运动变化矩阵的第六列作为雅克比矩阵的第ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_45列;
    对于六自由度机械臂而言,显然取微分运动变化矩阵的第六列作为雅克比矩阵的第ceres库雅克比为矩阵 雅克比矩阵怎么计算_ceres库雅克比为矩阵_45列。

至此,构造出机器人的雅克比矩阵。

MATLAB实现

function J = calJacobi(DH_parameter)
% 计算雅克比矩阵
% DH_parameter:DH参数表;

[dim_row, dim_col] = size(DH_parameter);
J = zeros(6, dim_row);

for i = 1 : dim_row
    T = calT(DH_parameter, i - 1, dim_row);
    R = T(1:3, 1:3);
    P = T(1:3, 4);
    DiffM = [R', -R' * antiSymMatrix(P); zeros(3, 3), R'];
    J(:, i) = DiffM(:, 6);
end