机器人期末复习 第二章 机器人位置运动学

1.引言

位置运动学分为正运动学,逆运动学。正运动学是已知关节变量求位姿,逆运动学是已知位姿求关节变量。

注意:在确定末端执行器的位姿时,一般不考虑末端执行器的长度,只考虑机器人的末端。

2.机器人机构

机器人机构分为闭环机构和开环机构。对闭环机构来说,当变量设定为特定值时,机器人的机构完全确定,所有其他变量也随之确定;对开环机构来说,如果关节和连杆有丝毫的偏差,该关节之后的所有关节的位置都会改变,而且没有反馈。

如何弥补开环机器人的缺陷呢?借助摄像机等装置来构成闭环系统,增加连杆和关节强度来减少偏移。

3.机器人运动学的矩阵表示

分为空间点,向量,坐标系在参考坐标系原点,坐标系在固定参考坐标系和刚体的表示。

点的表示:p=ax*i+by*j+cz*k

向量的表示:3*1矩阵\begin{bmatrix} ax \\ by \\cz \end{bmatrix} 4*1矩阵\begin{bmatrix} x\\y \\ z \\ w \end{bmatrix} 加入了比例因子w ax*w=x,by*w=y cz*w=z 此时ax,by,cz仍是实际的值。

w>1,向量放大;w=1,向量不变;w<1,向量缩小;w=0,表示向量的方向(可以理解为向量无限大)。

坐标系在固定参考坐标系原点的表示:机器人的参考坐标系分为全局参考坐标系,关节参考坐标系,工具参考坐标系。模仿笛卡尔坐标系的xyz,我们用noa三个互相垂直的单位向量表示机器人的坐标系,依次是normal(法线),oritentation(指向),approach(接近)。这样坐标系就表示为:

F=\begin{bmatrix} nx &ox &ax \\ ny& oy& ay\\ nz& oz& az \end{bmatrix}

坐标系在固定坐标系中的表示:

当坐标系的原点不在固定参考坐标系的原点时,坐标系如下表示:

F=\begin{bmatrix} nx &ox& ax &px \\ ny& oy& ay& py\\ nz& oz& az& pz\\ 0& 0 & 0 &1 \end{bmatrix} 前三个列向量是单位方向向量,最后一个列向量是原点位置向量,比例因子为1。

刚体的表示:首先在刚体上固连一个坐标系,再将该固连的坐标系在空间表示出来。因为物体相对于固连坐标系的位置是固定的,因此坐标系的原点也就决定了物体的位置,而物体相对于固连坐标系的位姿也是容易表示的,而固连坐标系可以通过参考坐标系表示,因此可以确定刚体的位姿。

F_object=\begin{bmatrix} nx &ox& ax &px \\ ny& oy& ay& py\\ nz& oz& az& pz\\ 0& 0 & 0 &1 \end{bmatrix}

这个坐标系有几个独立的参数呢?

6个,因为有12个参数,但是有六个约束条件:3个方向向量n,o,a互相垂直并且是单位向量。 

4.齐次变换矩阵

变换矩阵写成方阵的形式:

只有姿态变换:3*3矩阵。既有姿态又有位置:4*4矩阵。这种形式的矩阵称为齐次矩阵。

5.变换的表示

变换包括纯平移,纯旋转,平移加旋转。新坐标系的位置可以通过在坐标系矩阵前面左乘变换矩阵得到。下面是不同形式变化的变化矩阵:

纯平移:T=\begin{bmatrix} 1 &0 &0 &dx \\ 0&1 &0 &dy \\ 0&0 &1 &dz \\ 0& 0& 0& 1 \end{bmatrix}

纯旋转:注意y的参数和x,z不同

复合变换:

首先讨论一个坐标系相对于固定参考坐标系运动时的变换。此时坐标系静止,变换为绝对变换需要左乘变换矩阵。

每次变换后该点相对于参考坐标系的坐标都是通过用每个变换矩阵左乘该点的坐标得到的,矩阵的顺序不能改变。注意对于每次变换矩阵都是左乘,所以矩阵书写的顺序和进行变换的顺序正好相反。比如:

下面讨论一个坐标系相对于运动坐标系的变换。此时坐标系运动,叫做相对变换,需要右乘变换矩阵。比如:

 注意此时变换矩阵仍然在Pnoa左侧,只不过变换顺序是左乘或右乘。

6.变换矩阵的逆

旋转矩阵的逆是它的转置矩阵,具有这种特征的矩阵成为酉矩阵,所以所有的旋转矩阵都是酉矩阵。

3*3旋转矩阵:Rot(x,\theta )^{-1}=Rot(x,\theta )^{T}=\begin{bmatrix} 1 &0 &0 \\ 0& c\theta &s\theta \\ 0 & -s\theta & c\theta \end{bmatrix}

4*4旋转矩阵:T=\begin{bmatrix} nx &ox &ax &px \\ ny& oy& ay &py \\ nz& oz & az & pz\\ 0& 0 & 0 &1 \end{bmatrix}   T^{-1}=\begin{bmatrix} nx &ny &nz &-p.n\\ ox& oy &oz &-p.o \\ ax& ay & az & -p.a\\ 0& 0 &0 &1 \end{bmatrix} 矩阵的旋转部分仍是酉矩阵,只需要简单的转置;位置部分是向量p分别与n,o,a向量点积的负值。最后一行的0和比例因子不受影响。

7.机器人的正逆运动学

机器人正运动学方程要完成的任务:要确定机器人手的位姿,也必须在机器人手上固连一个坐标系,然后确定该坐标系的位姿。为使求解位姿的过程简化,可以先推导出位置方程,在推导出姿态方程,最后将两者结合到一起而组合成一组完整的方程。

位置的正逆运动学常用坐标系:

笛卡尔坐标:沿三个轴的运动完成,p点运动的变化矩阵是一种简单的平移变换矩阵,不涉及姿态。

        T_{cart}=\begin{bmatrix} 1 &0 &0 &px \\ 0& 1& 0 &py \\ 0& 0 &1 &pz \\ 0& 0 &0 &1 \end{bmatrix}

逆运动学的求解:只需要简单地设定期望的位置等于p。

圆柱坐标:包括两个线性平移运动和一个旋转运动。顺序为先沿x轴移动r,再沿z轴旋转\alpha,最后再沿z轴移动l。

  \begin{bmatrix} c\alpha &-s\alpha &0 &rc\alpha \\ s\alpha &c\alpha &0 & rs\alpha \\ 0& 0& 1 & l\\ 0& 0 &0 &1 \end{bmatrix}

逆运动学的求解:如果我们要让运动坐标系地姿态没有变化,而仅仅让位置发生变化,等效于圆柱坐标矩阵右乘旋转矩阵Rot(a,-\alpha)。

注意:应确保在机器人运动学中计算的角度位于正确的象限。

球坐标:包括一个线性运动和两个旋转运动,顺序为先沿z轴平移r,再绕y轴旋转\beta,最后绕z轴旋转\gamma

=

逆运动学的求解:如果我们要让运动坐标系姿态没有变化,而仅仅让位置发生变化,也可以回转最后一个坐标系,但是因为两个角度\beta\gamma是耦合的,所以球坐标系的逆运动学更为复杂。

 注意球坐标系下的机器人关节变量求解可能不只有一组解。

链式坐标:由三个旋转组成。具体看下面的D-H表示法。

姿态的正逆运动学常用坐标系:

假设固连在机器人手上的运动坐标系已经运动到期望的位置上,但它的姿态不一定是所期望的,下一步就要在不改变位置的情况下,旋转坐标系使其达到所期望的姿态。而旋转的顺序取决于机器人的构型。常见构型有:

滚动角,俯仰角,偏航角RPY:绕a轴旋转叫滚动roll,绕o轴旋转加俯仰pitch,绕n轴旋转叫偏航yaw。

         

已知最终期望的位姿:

 求n,o,a,px,py,pz

px py pz由矩阵已知,n,o,a由以下公式求:

 

 注意:ATAN(y,x)表示的是一个角度的tan值为y/x,注意参数的前后顺序。

在求解圆柱坐标系绕z轴的旋转角度时,实际应该旋转的角度应该是\phi _{a} - \alpha

欧拉角:不是绕a,o,n三个轴旋转,而是绕a,o,a分别旋转\phi\theta\psi度,分别称为进动角,章动角,自转角。

        

\phi ,\theta ,\psi由以下公式求解:

 

 

链式关节:见下

8.机器人正逆运动学方程的D-H表示法

对于多关节的机器人系统,机器人运动学的最终计算目的时通过测得的各关节的运动值来计算末端执行器在空间位置(正运动学)或根据末端执行器要求的位置计算各关节运动值(逆运动学)。

机器人中主要包括两类关节:转动关节和移动关节,分别提供一个转动自由度和移动自由度。

机器人杆件时连接两个关节的固体机械物体。

首先看正运动学方程的D-H表示法:

D-H表示法:

总体思想:首先给每个关节指定坐标系,然后确定从一个关节到下一个关节进行变化的步骤,将所有变化结合起来,就确定了末端关节相对于基座的变化。

坐标系的确定规则:

        关节连杆命名规则:第一个关节为关节n,第二个关节为关节n+1,其余以此类推,连杆命名规则与关节相同。

        z轴确定规则:旋转关节:旋转轴为z轴,转角\theta为关节变量;滑动关节:沿直线运动的方向为z轴,连杆长度d为关节变量,关节n处z轴下标为n-1。

        x轴确定规则:两关节z轴不平行不相交:取两z轴最短公垂线作为x轴。

                                两关节z轴平行,选择和连接下一个关节的连杆共面的一条线。

                                两关节z轴相交,两条z轴的叉积方向。

        注意:xn轴永远与zn轴交于后者所在的直线上,如图x3的确定交于z3上。

                   x0与末端执行器的z轴和x轴的选取存疑,如图x0和z6,x6。

从当前坐标系变换到下一坐标系的标准方法:

        绕zn轴旋转^{\theta_{n+1^{}}},它使得^{x_{n+1}}^{x_{n}}互相平行。 

        沿zn轴平移^{d_{n+1}}距离,使^{x_{n+1}}^{x_{n}}共线。

        沿 x_{n} 轴平移^{a_{n+1}}, 使^{x_{n+1}}^{x_{n}}的原点重合。

        绕 ^{x_{n+1}}轴将zn轴旋转^{a_{n+1}},使得zn轴与zn+1轴重合。

 列出变换矩阵:总的变换矩阵A等于各变换矩阵右乘。

        以此类推,总的变换矩阵为 

 确定D-H参数:

对每一步坐标系的变换分析·D-H参数填入D-H参数表汇总

 将参数代入变换矩阵:

求出总变换矩阵:

 

9.机器人的逆运动学解和机器人的逆运动学编程

 由以下公式求角度:

 

10.对机器人相关概念的补充

退化:当机器人失去一个自由度,并因此不按所期望的状态运动时即称为退化。退化发生条件:机器人达到物理极限,不能进一步运动;两个相似关节z轴共线。

不灵巧区域:当机器人越来越接近其工作空间的极限时,虽然机器人仍可能定位在期望的点上,但却可能无法定姿在期望的姿态上。

D-H表示法的缺陷分析:无法表示关于y轴的运动。

11.本章总结及存疑

总结:用矩阵表示点,向量,坐标系及变换的方法;

           正逆运动学方程的建立;

           用D-H法建立坐标系及变化方程;

           正逆运动学方程的求解。

存疑:   在用坐标轴确定x轴时,若两z轴相交,用右手定则确定的x轴交于下一个z轴所在的直线上,要克服视觉差。如图:

x5所在轴虽然没有直接画在z5上,但是交于z5所在直线上。

            在确定D-H参数时,注意确定机器人的零位,有时旋转角需要加上一个常数,如下图:

绕z1轴转的角度是90+\theta _{2}

            在解齐次矩阵时,|oy|=1,书上的姐只有oy=1,而不是1/-1,猜测可能是因为解超过两个所以不予讨论。

            ATAN(y,x)书上给的取值范围是(0,2\pi),但是课件上给出的是(-\pi\pi),个人倾向于书上。

 

 

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 机器人学导论第三章是关于矩阵和向量运算的内容。MATLAB是一种常用的数学软件,用于进行矩阵和向量的计算和处理。以下是该章的一些MATLAB习题解答: 1. 假设有两个向量A=[1, 2, 3]和B=[4, 5, 6],求它们的点积和叉积。 解答: ``` A = [1, 2, 3]; B = [4, 5, 6]; dot_product = dot(A, B); cross_product = cross(A, B); ``` 2. 定义一个3x3的单位矩阵。 解答: ``` I = eye(3); ``` 3. 计算以下矩阵的乘积: ``` A = [1, 2, 3; 4, 5, 6; 7, 8, 9] B = [9, 8, 7; 6, 5, 4; 3, 2, 1] ``` 解答: ``` product = A * B; ``` 4. 对以下矩阵进行转置和求逆: ``` A = [1, 2, 3; 4, 5, 6; 7, 8, 9] ``` 解答: ``` transpose = transpose(A); inverse = inv(A); ``` 通过在MATLAB中使用这些函数,可以方便地进行矩阵和向量运算,用于机器人学中的计算和分析。 ### 回答2: 机器人学导论第三章的MATLAB习题主要涉及机器人运动学以及转换矩阵的计算。以下是一些示例习题的解答: 1. 已知机器人 DH 坐标系参数为:a = [0, 1, 1, 0.5], alpha = [0, 0, 0, 0], d = [0, 0, 0, 1], theta = [0, pi/2, -pi/2, 0],请编写 MATLAB 代码计算机器人从基座标系到末端执行器坐标系的正运动学变换矩阵。 解答: ```MATLAB a = [0, 1, 1, 0.5]; alpha = [0, 0, 0, 0]; d = [0, 0, 0, 1]; theta = [0, pi/2, -pi/2, 0]; n = length(a); T = eye(4); % 初始化变换矩阵为单位矩阵 for i = 1:n % 计算当前关节的变换矩阵 A = [ cos(theta(i)), -sin(theta(i))*cos(alpha(i)), sin(theta(i))*sin(alpha(i)), a(i)*cos(theta(i)); sin(theta(i)), cos(theta(i))*cos(alpha(i)), -cos(theta(i))*sin(alpha(i)), a(i)*sin(theta(i)); 0, sin(alpha(i)), cos(alpha(i)), d(i); 0, 0, 0, 1 ]; % 更新总的变换矩阵 T = T * A; end T % 输出正运动学变换矩阵 ``` 2. 对于一个平面二自由度机器人,其末端执行器的位置分别为 x = t, y = sin(t),请编写 MATLAB 代码绘制机器人的末端执行器的轨迹。 解答: ```MATLAB t = 0:0.01:10; % 时间范围 x = t; % x 轴位置 y = sin(t); % y 轴位置 figure; plot(x, y, 'b-'); % 绘制蓝色曲线 hold on; plot(x(1), y(1), 'ro'); % 标记起始点为红色 plot(x(end), y(end), 'go'); % 标记结束点为绿色 xlabel('x'); ylabel('y'); title('末端执行器轨迹'); grid on; ``` 以上是机器人学导论第三章MATLAB习题的部分示例解答。通过编写代码并求解习题,我们可以学习和掌握机器人运动学以及MATLAB 在机器人学中的应用。 ### 回答3: 机器人学导论第三章为matlab习题,故需要使用matlab编程进行解答。以下是针对这些习题的简要回答。 第一题要求使用matlab计算机器人坐标系的旋转矩阵。可以使用matlab内置函数`rotx`、`roty`和`rotz`来分别计算绕x、y和z轴的旋转矩阵。通过调用这些函数,并输入相应的角度,即可计算得到机器人坐标系的旋转矩阵。 第二题是关于转换矩阵的计算。题目给出了机器人的DH参数,并要求计算机器人末端执行器的位姿。可以先使用`dh2matrix`函数将DH参数转化为转换矩阵,然后通过乘法运算将各个转换矩阵相乘得到末端执行器的位姿矩阵。 第三题是关于通过已知机器人结构的转换矩阵和末端执行器的位姿,求解机器人的关节角度。可以使用matlab内置函数`matrix2dh`将已知机器人结构的转换矩阵转化为DH参数,然后通过反解DH参数和末端执行器的位姿,即可求解出机器人的关节角度。 这些习题要求对matlab编程语言有一定的了解,并且熟悉机器人学中的基本概念与原理。解答这些习题可以帮助加深对机器人学的理解,并且提高matlab编程的能力。同时,这些习题也可以为以后的机器人学研究与实践提供基础。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值