开篇总结:
------机械手运动学是机器人控制中的重要研究内容,得知机械手各关节变量的大小,可以计算出机械手末端的位姿,这个过程叫做机械手的正向运动学
------获得机械手末端在笛卡尔空间中的位姿,可以计算机械手的各个关节变量的大小,这种逆过程叫做机械手逆向运动学
------给定机械手各关节大小以及 D-H 模型,则可以唯一计算出机械手末端在笛卡尔空间中的位姿,但是,其逆过程可能对应多个解。

机械手的正运动学问题和机械手的逆运动学问题

------关于机械手的一些知识,我之前介绍了关于基于视觉伺服技术的机械手控制的两种方法,即基于图像的视觉伺服和基于位置的视觉伺服,在这一部分,我将介绍通过举例介绍什么事机械手的正运动学问题,什么是机械手的逆运动学问题。

1. 机械臂系统构型描述

------一个串联的机械臂的整个链路由一组被称为连杆的刚体组成,这些连杆由关节(运动副)连接起来。每个关节都有一个自由度,可以是滑动的或移动的,也可以是转动的(转动关节)。关节的运动改变了其相邻连杆的相对角度或位置。
------一个机器人的关节结构可以用一个字符串来描述,例如 Puma 为‘RRRRRR’,斯坦福臂为‘RRPRRR’,其中每个字符代表了相应关节的类型,R 是转动副,P 是移动副。在 1955 年,迪拉维特(Denavit)和哈滕贝格(Hartenberg)提出了一种系统的描述串联式链路上连杆和关节的几何形状的方法,这就是如今熟知的 D-H 参数法。
------有 N 个关节(编号从 1 到 N)的机械臂有 N +1个连杆(编号从 0 到 N)。连杆0 是机械臂的基座,连杆 N则固定连接末端执行器或者工具。关节 j 将连杆 j +1接到连杆 j ,因此关节 j 带动连杆 j 。连杆被看作一个刚体,它确定了相邻两个关节轴线的空间关系。一个连杆由长度aia_{i}ai​和扭转角αi\alpha_{i}αi​两个参数来描述。同样,一个关节也由两个参数来描述,其中连杆偏移did_{i}di​是指沿着关节轴线从一个连杆坐标系到另一个连杆坐标系的距离,而关节角θi\theta_{i}θi​则是指一个连杆相当于另一个连杆关于关节轴线的转动角度。

-----------------------------------------------------------------图1 ----------------------------------------------

------图1对这种参数法进行了图示说明。深红色和蓝色分别表示与连杆和连杆关联的所有参数。而圆圈中的数字表示进行基本变换的顺序,圆圈中的数字表示基本变换的顺序。{j}坐标系固接于连杆 j 的远端或末梢。关节 j 的轴线即为该坐标系的 z 轴,这些关节和连杆的参数既我们所熟知的 D-H 参数,总结与表 1 中。
------在这个约定之后,第一个关节 1,连接连杆 0 和连杆 1。连杆 0 是机器人的基础。通常对于第一个连杆,di=αi=0d_{i}=\alpha_{i}=0di​=αi​=0,但我们可以假设 did_{i}di​来表示基座上的肩关节的高度超出基座。

----------------------表1. D-H参数,包括它们的物理意义,符号和定义 ------------------------------

------最后一个关节 N ,连接连杆 N -1连杆和 N ,连杆 N 是机器人的工具,它的相关参数dNd_{N}dN​ 和aNa_{N}aN​ 分别代表了该工具的长度和 x 轴偏移量。
------从连杆坐标系{j -1} 到坐标系{j}的变换被定义为基本的旋转和平移,其形式如下:


----------------------------------------------------------------------------------(1)
它可以展开为

--------------------------------------------------------------------------------------------(2)
------参数aja_{j}aj​ 和αj\alpha_{j}αj​ 始终是常量,对于转动关节θj\theta_{j}θj​是关节变量且djd_{j}dj​是常量,然而对于移动关节djd_{j}dj​ 是变量,θj\theta_{j}θj​是常量,且 αj=0\alpha_{j}=0αj​=0。使用如下的广义关节坐标:

------对于一个 N 轴的机器人,其广义关节坐标为q∈lq\in lq∈l ,其中l⊂RNl\subset \mathbb{R}^{N}l⊂RN被称为关节空间或者位形空间。一般情况下,一个全旋转机器人的关节坐标被称为关节角度。这种关节坐标同时也称为机械臂姿态,它不属于笛卡尔姿态的末端执行器的姿态。
------使用matlab中 Robot 工具箱中的 Link 对象来描述一个机器人连杆,其创建如下;

>> L = Link([0, 0.1, 0.2, pi/2, 0])
L=
theta=q d=0.1 a=0.2 alpha=1.571(R,stdDH)

------其中,输入向量的元素按顺序分别是θj\theta_{j}θj​,djd_{j}dj​,aja_{j}aj​ ,αj\alpha_{j}αj​ 。而可选的第 5 个元素σj\sigma_{j}σj​则表明该关节是转动的σj=0\sigma_{j}=0σj​=0 ,还是移动的σj=1\sigma_{j}=1σj​=1,如果未指定该值则默认为转动关节。
------该 Link 对象的显示值不仅给出了其运动学参数,还表示了其他的一些状态,例如它是一个转动关节(标签“R”),以及使用了标准的 D-H 参数表达(标签“stdDH”)。

2. 机械臂的正运动学分析

------机械手正运动学问题也称为直接问题,指的是:对于一个给定的机械手,在已知机械手杆件参数和关节角矢量的情况下,求机械手末端工具相对于世界坐标系(或称参考坐标系、基坐标系)的位姿pose。
上句话是什么意思呢?意思就是,在在知道机械手各杆件参数的情况下,机械手底层控制算法驱动机械手关节和杆件运动,让机械手各关节杆件满足这些参数,这时,机械手末端工具就可以到达期望的位姿。
------机械臂的正运动学通常表述为如下的函数形式:

--------------------------------------------------------------(3)
------它表明末端执行器的位姿是基于关节坐标的一个函数。若用齐次变换,其表达式将由(2)式所给的单个连杆变换矩阵的简单乘积。对于 N 个机械臂则有

----------------------------------------------------------------------------------------(4)
------对于任何一个机械臂,无论其关节的数量和关节如何,都可以计算出其正向运动学解。通常真正实用的机械臂的任务空间是三维的,控制机械臂运动,就是要给机械臂每个关节一个特定的电压控制信号,使他们各自运动一个特定的角度,得到期望的位姿状态,对于一个 6轴机械臂,其总的矩阵变换通常被写作T6T_{6}T6​ 。这个过程称为机械臂的正运动学,本文中将以 Puma560 机械臂作为所有全旋转六轴机械臂来在 MATLAB 仿真。

------使用如下指令来定义一个 Puma560 机械臂的实例:

>> mdl_puma560

它将在工作区中创建一个名为 p560 的 Serial Link(串行接口、串行链路)


------指令“mdl_puma560”还在工作区中创建了大量关节坐标向量,代表了一些典型的机械臂位形:

机器人的正向运动学计算如下:

它返回一个对应末端执行器位姿的齐次变换T6T_{6}T6​
至此,在已知机械手参数的情况下,机械手末端位姿求得。

3. 机械臂的逆运动学分析

------机械手运动学逆问题亦称解臂形问题, 它是指在已知手臂各杆件几何参数及手臂末端执行器相对于参考系坐标系的期望位姿为已知条件下, 求手臂能否使其末端执行器到达这个预期的位姿? 若能到达, 那么手臂有几种不同的解?
------在上一小节的中,讨论了机械臂的正运动学求解方法,即在给定关节坐标以及可选工具和基座变换的条件下,如何确定末端执行器的位姿。实际应用中的另一个问题是机械臂运动学的逆问题:给定期望的末端执行器位姿ξE\xi _{E}ξE​ ,求取所需的关节坐标。 对机械臂逆运动学的求解可分为:基于解析式的封闭解和基于迭代的数值解。由于数值解析法比相应的封闭解法的求解速度要慢的多。
------对六自由度机械臂来说,只有在特殊情况下才有解析解(封闭解):存在几个正交关节轴或有多个aia_{i}ai​为 0 或 ±90o\pm 90^{o}±90o。研究表明,具有 6 个旋转关节的机器人存在封闭解的充分条件是相邻的三个关节轴线相交于一点。Puma560 机器人也满足这个条件。
------如上节利用 Puma560 机械臂的实例来讨论逆运动学问题。机器人的标准状态的关节坐标为

对应的末端执行器位姿是:

------Puma560 是一种包含一个球形腕关节的六轴臂形机器人,因此使用 ikine6s 方法(ikine6s 方法会检查机器人的 D-H 参数,以确定它是否满足这些标准)来计算其逆运动学的封闭解。要实现位姿T,所需的关节坐标为

但令人惊讶的是,这些解与我们采用的标准状态关节坐标完全不同。但进一步探究:

------可以发现,两组不同的关节坐标得到了相同的末端执行器位姿。因此逆运动学求解的结果一般不是唯一的,实际应用要根据机械臂关节的转动范围,逆运动学的求解结果一般选择使关节移动量最少的解。

4. 总结


关于机械手的正逆运动学分析,我们需要结合实际的应用来分析,例如,在基于位置的视觉伺服系统中,我们可以这样分析机械手的正逆运动学关系。

简单而言,对于一个七个关节全是旋转关节的KUKA机械手来讲,只有一个参数θ。而机械手逆运动学要做的就是:在机械手末端工具的位姿已知的情况下,估计每个关节的旋转角度,而机械手正运动学问题则是根据这些角度驱动机械手各关节的旋转,则机械手末端工具最终会到达期望的位姿。
下面用一幅图来显示正逆运动学以及机械手位姿估计算法之间的关系。

如上图,首先,计算机根据相机内部参数,目标的三维模型估算出相机相对于目标物体的相对位姿。然后,机械手逆运动学根据估算出来的位姿计算出机械手各关节的旋转角度;最后,机械手关节控制器控制机械手个关节运动,让机械手末端到达期望位姿。
但是,有一点需要提出的是,一般来讲,机械手逆运动学求解是的结果不是唯一的。也就是说机械臂可能会以不同的状态控制末端工具到达指定地点,然而这些不同的解中,肯定是有不符合条件的解,比如没有绕开障碍物等,因此,我们需要对齐进行约束。

机械手基础知识(2)之机械手的正运动学和逆运动学问题相关推荐

  1. 正运动学 与 逆运动学 区别

    正运动学 与 逆运动学 区别 正运动学 逆运动学 正运动学 已知连杆几何参数(长度)和关节变量(旋转角度),求解末端执行器(机械夹爪)相对于参考坐标系的位置(平移量)和姿态(旋转量). 此过程为:建立 ...

  2. 【机器人学】3-RUU-delta并联机器人正运动学、逆运动学和微分运动学

    文章目录 串联和并联机器人对比 delta机器人 逆运动学 正运动学 微分运动学 工作空间 串联和并联机器人对比 串联机器人和并联机器人各有优缺点. 串联机器人 优点 工作空间大: 可实现的姿态多: ...

  3. 机械手基础知识(3)之基于图像的视觉伺服与基于位置的视觉伺服

    ** 基于图像的视觉伺服与基于位置的视觉伺服 ** 有关于机械手位姿问题的理解,可以去看我关于机械手正逆运动学分析的文章 首先说,基于图像的视觉伺服与基于位置的视觉伺服主要表现形式在于图像雅可比矩阵的 ...

  4. 正运动学及逆运动学求解方法

    正运动学:给定机器人关节变量的取值来确定末端执行器的位置和姿态. 求解方法:D-H法和旋量理论法 逆运动学:根据给定的末端执行器的位置和姿态来确定机器人关节变量的取值. 求解方法:解析解法.数值解法. ...

  5. 【机器人学】基于PoE模型的串联机械臂UR5的正运动学、微分运动学和逆运动学

    文章目录 基本概念 正运动学 源码 一阶运动学 基本概念 PoE(Product of Exponential)指数积公式. PoE和DH的作用都是一样的. 实际使用过程中,绝大多数在售的机器人还都是 ...

  6. matlab机器人雅可比矩阵实验,机械臂通过雅可比矩阵实现正运动学及逆运动学迭代解(工具:matlab)...

    1.利用工具箱建模,供验证用 选用二轴平面机械臂,两个关节角分别是theta1和theta2. view(3); Lnk1 = Link([ 0 0 100 0 0]);%theta,d,a,alph ...

  7. 机器人学基础(1)-位置运动学-正运动学、逆运动学方程建立及其求解

    机器人学基础(1)位置运动学:正运动学.逆运动学方程建立及其求解 机器人学基础学了个知识框架入门,以此来写一下总结笔记,便于以后要用到相关知识点进行翻阅. 本次机器人学基础笔记主要分为几个章节:位置运 ...

  8. 五杆机构正运动学公式、逆运动学公式MATLAB代码

    在研究五杆机构的时候感觉网上的资料更多的在研究正运动学,包括机构顶端的运动轨迹.速度.加速度,缺少逆运动学的分析.当我们想用五杆机构做实际用途比如3D打印或轨迹描绘的时候逆运动学公式是必不可少的.所以 ...

  9. UR机械臂正逆运动学求解

    最近有个任务:求解UR机械臂正逆运动学,在网上参考了一下大家的求解办法,众说纷纭,其中有些朋友求解过程非常常规,但是最后求解的8组解,只有4组可用.在这里我介绍一个可以求解8组解析解的方法,供大家参考 ...

  10. 五自由度机械臂正逆运动学算法(C语言+Matlab)

    五自由度机械臂建模 学习代码都记录在个人github上,欢迎关注~ Matlab机器人工具箱版本9.10 机械臂还是原来的机械臂,之前用ROS做底层驱动,不需要写正逆运动学和相关算法就能得到一些简单的 ...

最新文章

  1. python写入csv文件中文乱码解决方案
  2. Hive 2.3.2 Installation Guide
  3. 网站502与504错误分析
  4. 【蓝桥杯Java_C组·从零开始卷】第七节、递归
  5. UTF-8笔记170330
  6. 人工机器:Jetson Nano 安装Qt5
  7. redhat7基本命令操作
  8. 建模实训报告总结_数学建模实训报告
  9. PostgreSQL 的 target_list分析(五)
  10. Pytorch入门-2
  11. 软考信息系统项目管理师_考试题型介绍_选择题75分_45分过_案例分析题_75分_45分过_计算题_论文题的架构和写法---软考高级之信息系统项目管理师002
  12. 【转】Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
  13. leet code 006:ZigZag Conversion
  14. 简单数据类型的转换和条件控制语句(if else)的使用
  15. 【STM8】PWM 捕获实战:占空比和频率(TIM1)
  16. 用python绘制散点图
  17. 博通wifi驱动详解(三)
  18. vue小花样——鼠标指针图片样式替换
  19. 如果手里有现金,是提前还房贷还是买基金?
  20. 这样的设计太妙了!K8S 神秘架构终于揭开面纱!

热门文章

  1. sql 语句循环方法的使用
  2. 回归算法--K近邻算法
  3. JavaScript学习手册八:JS函数
  4. ios模拟器安装证书
  5. win10解压文件时,出错:不能创建符号链接 你可能需要以管理员权限运行Winrar 客户端没有所需的特权
  6. 设计模式(Java)—Facade模式
  7. 运放为什么可以虚短虚断
  8. 后端代码增删改查的编写~
  9. easyexcel excel自定义列导出 格式导出
  10. IDEA 2017 破解教程(2018也可以)