机器人数学基础

本文介绍了如何使用矩阵法来描述机器人机械手的位姿、坐标系变换,包括位置、方位和位姿的数学表示,以及平移和旋转的直角坐标系变换。通过实例演示了如何计算经过旋转和平移后的位姿,是理解机器人运动学的基础内容。
摘要由CSDN通过智能技术生成

机械手是机器人系统的机械运动部分,它的执行机构是用来保证复杂空间运动的综合刚体,而它也往往作为统一体进行运动.因此,需要用一种简便的数学方法来描述单一刚体的位移、速度、加速度和运动学的问题.这种数学描述不是唯一的,不同的人可能采用不同的方法.这里采用矩阵法来描述机器人机械手的运动学问题.这种数学方法是以四阶方阵变换三维空间的齐次坐标为基础的,能够将运动、变换和映射与矩阵运算联系起来.接下来让我们看看是如何做到的.

1 位姿和坐标系描述

1.1 位置描述

对于直角坐标系{ A {A} A},空间任一点 p p p的位置可用 3 × 1 3 \times 1 3×1的列矢量 A p {^{A}\boldsymbol p} Ap表示,上标 A A A代表参考坐标系{ A A A},称 A p {^{A}\boldsymbol p} Ap为位置矢量.
A p = [ p x p y p z ] ^{A}\boldsymbol{p}=\left[\begin{aligned}{ }{p}_x \\ {p}_y \\ p_z\end{aligned}\right] Ap= pxpypz

1.2 方位描述

物体的方位(orientation)可由某个固接于此物体的坐标系描述.为了规定空间某刚体 B B B的方位,设置一直角坐标系{ B B B}与此刚体固接.用坐标系{ B B B}的三个单位主矢量 x B , y B , z B \boldsymbol{x}_B,\boldsymbol{y}_B,\boldsymbol{z}_B xB,yB,zB相对于参考坐标系{ A A A}的方向余弦组成的 3 × 3 3\times3 3×3旋转矩阵 B A R _B^A\boldsymbol{R} BAR来表示刚体 B B B相对于坐标系{ A A A}的方位.式中,上标 A A A代表参考坐标系{ A A A},下标 B B B代表被描述的坐标系{ B B B}.
B A R = [ A x B A y B A z B ] = [ r 11 r 12 r 13 r 23 r 22 r 23 r 31 r 32 r 33 ] _{B}^{A} \boldsymbol{R}=\left[\begin{array}{c} ^A \boldsymbol{x}_B & ^A\boldsymbol{y}_B & ^A\boldsymbol{z}_B \end{array}\right]=\left[\begin{array}{c}r_{11} & r_{12} & r_{13} \\ r_{23} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33}\end{array}\right] BAR=[AxBAyBAzB]= r11r23r31r12r22r32r13r23r33

B A R _B^A \boldsymbol{R} BAR共有9个元素,但只有3个是独立的,由于 B A R _B^A\boldsymbol{R} BAR的三个列矢量 A x B , A y B 和 A z B ^A \boldsymbol{x}_B,^A\boldsymbol{y}_B和^A\boldsymbol{z}_B AxB,AyBAzB都是单位矢量,且两两正交,因而它的9个元素满足6个约束条件:
A x B   ⋅   A x B   =   A y B   ⋅   A y B   =   A z B   ⋅   A z B   =   1 ^A \boldsymbol{x}_B\ \cdot\ ^A \boldsymbol{x}_B\ =\ ^A\boldsymbol{y}_B\ \cdot\ ^A \boldsymbol{y}_B\ =\ ^A\boldsymbol{z}_B\ \cdot\ ^A \boldsymbol{z}_B\ =\ 1 AxB  AxB = AyB  AyB = AzB  AzB = 1

A x B   ⋅   A y B   =   A y B   ⋅   A z B   =   A z B   ⋅   A x B   =   0 ^A \boldsymbol{x}_B\ \cdot\ ^A \boldsymbol{y}_B\ =\ ^A\boldsymbol{y}_B\ \cdot\ ^A \boldsymbol{z}_B\ =\ ^A\boldsymbol{z}_B\ \cdot\ ^A \boldsymbol{x}_B\ =\ 0 AxB  AyB = AyB  AzB = AzB  AxB = 0

可见,旋转矩阵 B A R _B^A\boldsymbol{R} BAR是正交的,并且满足条件:
B A R − 1   =   B A R T ∣   B A R   ∣ = 1 _B^A\boldsymbol{R}^{-1}\ =\ _B^A\boldsymbol{R}^{\rm{T}} \\ \left|\ \begin{matrix}^A_B\boldsymbol{R}\end{matrix}\ \right|=1 BAR1 = BART  BAR  =1
对应于轴 x , y 或 z x,y或z x,yz做转角 θ \theta θ的旋转变换,其旋转矩阵分别如下,其中, s s s表示   s i n \ \rm{sin}  sin c c c表示   c o s \ \rm{cos}  cos.
R ( x , θ ) = [ 1 0 0 0 c θ − s θ 0 s θ c θ ]     R ( y , θ ) = [ c θ 0 s θ 0 1 0 − s θ 0 c θ ]     R ( z , θ ) = [ c θ − s θ 0 s θ c θ 0 0 0 1 ] \boldsymbol{R}(x,\theta)=\left[\begin{array}{c }1 & 0 & 0 \\ {0} & c\theta & -s\theta \\ 0 & s\theta & c\theta\end{array}\right] \ \\\ \boldsymbol{R}(y,\theta)=\left[\begin{array}{c }c\theta & 0 & s\theta\\ {0} & 1 & 0 \\ -s\theta & 0 & c\theta\end{array}\right]\ \\\ \boldsymbol{R}(z,\theta)=\left[\begin{array}{ c}c\theta & -s\theta & 0 \\ s\theta & c\theta & 0 \\ 0 & 0 & 1 \end{array}\right] R(x,θ)= 1000cθsθ0sθcθ   R(y,θ)= cθ0sθ010sθ0cθ   R(z,θ)= cθsθ0sθcθ0001

1.3 位姿描述

要完全描述刚体 B B B在空间的位姿(位置和姿态),通常将物体 B B B与某一坐标系{ B B B}固接。{ B B B}的坐标原点一般选在物体 B B B的的特征点,如质心等.相对参考系{ A A A},坐标系{ B B B}的原点位置和坐标轴的方位分别由位置矢量 A p B o ^A\boldsymbol{p}_{B_{o}} ApBo和旋转矩阵 B A R ^A_B\boldsymbol{R} BAR描述.这样,刚体 B B B的位姿可由坐标系{ B B B}来描述,即有:
{ B }   =   { B A R         A p B o } \left\{\begin{aligned} {B}\end{aligned}\right\}\ =\ \left\{\begin{aligned} ^A_B\boldsymbol{R}\ \ \ & \ \ ^A\boldsymbol{p}_{B_{o}}\end{aligned}\right\} {B} = {BAR     ApBo}
当表示位置时,旋转矩阵 B A R = I ^A_B\boldsymbol{R}=\boldsymbol{I} BAR=I(单位矩阵);当表示方位时,位置矢量 A p B o = 0 ^A\boldsymbol{p}_{B_o}=\bf{0} ApBo=0.

2 平移和旋转直角坐标系变换

2.1 平移坐标变换

坐标系{ B B B}与{ A A A}有相同的方位,但二者坐标原点不同.用位置矢量 A p B o ^A\boldsymbol{p}_{B_o} ApBo描述{ B B B}相对于{ A A A}的位置(平移矢量).如果点 p p p在坐标系{ B B B}中位置 B p ^B\boldsymbol{p} Bp,那么点 p p p相对于坐标系{ A A A}的位置矢量 A p ^A\boldsymbol{p} Ap可由{ B B B}坐标系的原点在{ A A A}坐标系下的位置矢量 A p B o ^A\boldsymbol{p}_{B_o} ApBo 和 点 p p p在坐标系{ B B B}的位置矢量 B p ^B\boldsymbol{p} Bp相加得出,即有:
A p   =   B p   +   A p B o ^A\boldsymbol{p}\ =\ ^B\boldsymbol{p}\ +\ ^A\boldsymbol{p}_{B_o} Ap = Bp + ApBo
称上式为坐标平移方程.

2.2 旋转坐标变换

坐标系{ B B B}与{ A A A}有共同的坐标原点,但二者方位不同.用旋转矩阵 B A R ^A_B\boldsymbol{R} BAR描述{ B B B}相对于{ A A A}的方位.如果点 p p p在坐标系{ B B B}中位置 B p ^B\boldsymbol{p} Bp,那么点 p p p相对于坐标系{ A A A}的位置矢量 A p ^A\boldsymbol{p} Ap可由{ B B B}坐标系相对于{ A A A}坐标系的旋转矩阵 B A R ^A_B\boldsymbol{R} BAR 左乘 点 p p p在坐标系{ B B B}的位置矢量 B p ^B\boldsymbol{p} Bp得出,即有:

A p   =   B A R   B p ^A\boldsymbol{p}\ =\ ^A_B\boldsymbol{R}\ ^B\boldsymbol{p} Ap = BAR Bp
称上式为坐标旋转方程.

类似地用 A B R ^B_A\boldsymbol{R} ABR描述坐标系{ A A A}相对于{ B B B}的方位. B A R ^A_B\boldsymbol{R} BAR A B R ^B_A\boldsymbol{R} ABR都是正交矩阵,两者互逆.根据正交矩阵的性质可得:
A B R   =   B A R − 1   =   B A R T ^B_A\boldsymbol{R}\ =\ ^A_B\boldsymbol{R}^{-1}\ =\ ^A_B\boldsymbol{R}^{\rm{T}} ABR = BAR1 = BART

2.3 复合变换

对于最一般的情形,坐标系{ B B B}的原点与坐标系{ A A A}的原点并不重合,且{ B B B}系的方位与{ A A A}系的方位也不相同.用位置矢量 A p B o ^A\boldsymbol{p}_{B_o} ApBo描述{ B B B}相对于{ A A A}的位置;用旋转矩阵 B A R ^A_B\boldsymbol{R} BAR描述{ B B B}相对于{ A A A}的方位.对于任一点 P P P,在两坐标系{ A A A}和{ B B B}中的描述 A p 和 B p ^A\boldsymbol{p}和 ^B\boldsymbol{p} ApBp具有以下变换关系:
A p   =   B A R   B p   +   A p B o ^A\boldsymbol{p}\ =\ ^A_B\boldsymbol{R}\ ^B\boldsymbol{p}\ +\ ^A\boldsymbol{p}_{B_o} Ap = BAR Bp + ApBo
把上式看成坐标旋转和坐标平移的复合变换.实际上规定一个过渡坐标系{ C C C},使{ C C C}的坐标原点与{ B B B}的坐标原点重合,而{ C C C}的方位与{ A A A}的方位相同.据式(9)可得向过渡坐标系{ C C C}的变换:
C p   =   B C R   B p   =   B A R   B p ^C\boldsymbol{p}\ =\ ^C_B\boldsymbol{R}\ ^B\boldsymbol{p}\ =\ ^A_B\boldsymbol{R}\ ^B\boldsymbol{p} Cp = BCR Bp = BAR Bp
再由式(8),可得复合变换:
A p   =   C p   +   A p C o   =   B A R   B p   +   A p B o ^A\boldsymbol{p}\ =\ ^C\boldsymbol{p}\ +\ ^A\boldsymbol{p}_{C_o}\ =\ ^A_B\boldsymbol{R}\ ^B\boldsymbol{p}\ +\ ^A\boldsymbol{p}_{B_o} Ap = Cp + ApCo = BAR Bp + ApBo

2.4 案例

假设两坐标系{ A A A}和{ B B B}初始重合,首先{ B B B}相对于{ A A A}的 z A z_A zA轴转 30 ° 30\degree 30°,再沿着 x A x_A xA轴平移12单位,再沿着 y A y_A yA轴移动6单位。求位置矢量 A p B o ^A\boldsymbol{p}_{B_o} ApBo和旋转矩阵 B A R ^A_B\boldsymbol{R} BAR.假设点 p p p在{ B B B}中的描述为 B p = [ 3 , 7 , 0 ] T ^B\boldsymbol{p}=[3,7,0]^{\rm T} Bp=[3,7,0]T,求它在{ A A A}中的描述 A p ^A\boldsymbol{p} Ap.

clear all;clc;
format short
% 旋转矩阵,绕{A}的z轴转30度
R_z30=[cos(pi/6) -sin(pi/6) 0;
       sin(pi/6) cos(pi/6) 0;
        0 0 1]

% {B}的原点在{A}的描述
pA_Bo=[12;6;0]

% 点p在{B}的描述
pB=[3;7;0];

% 点p在{A}的描述
pA=R_z30*pB+pA_Bo

结果:

R_z30 =
    0.8660   -0.5000         0
    0.5000    0.8660         0
         0         0    1.0000
pA_Bo =
    12
     6
     0
pA =
   11.0981
   13.5622
         0

下篇:机器人数学基础2

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值