第六讲 机器人运动学逆解
- 格式:ppt
- 大小:995.00 KB
- 文档页数:49
《机器人导论》机器人逆运动学在机器人技术的广袤领域中,逆运动学是一个至关重要的概念。
简单来说,逆运动学就是要根据机器人末端执行器(比如机械手的夹爪)的期望位置和姿态,来计算出各个关节应该转动的角度或移动的距离。
想象一下,你有一个机械臂,它就像人的手臂一样,由多个关节连接而成。
当你希望它的手能够准确地到达某个特定的位置,并以特定的姿态抓住一个物体时,你就需要知道每个关节应该如何运动。
这就是逆运动学要解决的问题。
为了更好地理解逆运动学,我们先来看一个简单的例子。
假设有一个平面二连杆机械臂,由两个可以旋转的关节连接着两根连杆。
我们知道机械臂末端的位置坐标(x, y),并且知道两个连杆的长度分别为L1 和 L2。
那么,如何求出两个关节的旋转角度呢?我们可以通过几何关系来解决这个问题。
首先,根据末端位置(x, y),可以计算出从原点到末端的距离 R,通过勾股定理 R =√(x²+y²)。
然后,我们可以计算出第一个关节的角度θ1,它等于 arctan(y /x)。
接下来,计算第二个关节的角度θ2 就稍微复杂一些。
我们可以利用余弦定理来得到,经过一系列的数学推导,最终可以求出θ2。
当然,实际的机器人往往要复杂得多,可能有多个关节,甚至是在三维空间中运动。
对于多关节的机器人,解决逆运动学问题的方法也有很多种。
一种常见的方法是解析法。
这种方法通过数学推导和公式计算来直接求解关节变量。
但它的缺点是对于复杂的机器人结构,推导过程可能会非常繁琐,甚至可能无法得到解析解。
另一种方法是数值法。
其中比较常用的是迭代法。
它通过不断地猜测和修正关节变量的值,逐步逼近正确的解。
这种方法的优点是适用性广,但缺点是计算量可能较大,并且可能会陷入局部最优解。
在实际应用中,选择哪种方法取决于机器人的结构和具体的任务需求。
机器人逆运动学的应用场景非常广泛。
在工业生产中,机器人需要准确地抓取和放置零件,这就需要精确的逆运动学计算来控制机器人的动作。
逆运动学求解方法逆运动学求解方法是机器人学中的一个重要研究方向,其主要目的是确定机械臂末端执行器的姿态和位置,以便实现所需的任务。
本文将从逆运动学求解方法的基本概念、分类、应用场景和发展趋势等方面进行详细介绍。
一、基本概念逆运动学(inverse kinematics)是机器人学中的一个重要分支,它研究如何根据末端执行器的位置和姿态,确定机械臂各个关节的角度或位移。
与正运动学(forward kinematics)不同,正运动学是已知各关节角度或位移,计算末端执行器的位置和姿态。
逆运动学问题通常比正运动学问题更为复杂,因为它涉及到非线性方程组求解等数值计算问题。
二、分类根据求解方法的不同,逆运动学问题可以分为以下几类:1. 解析法:利用数学公式或几何关系直接求解各关节角度或位移。
这种方法通常适用于简单机构和特定任务。
2. 迭代法:通过迭代计算来逼近最优解。
这种方法通常适用于复杂机构和多自由度机器人。
3. 数值优化法:将逆运动学问题转化为优化问题,通过求解目标函数的最小值或最大值来确定各关节角度或位移。
这种方法通常适用于非线性和多约束的问题。
三、应用场景逆运动学求解方法在机器人领域有广泛的应用,以下是一些典型场景:1. 机器人轨迹规划:根据末端执行器的轨迹要求,计算各关节角度或位移,实现精确的运动控制。
2. 仿真和虚拟现实:通过逆运动学求解方法,可以在计算机上模拟机器人的运动和操作,进行虚拟现实技术研究和应用开发。
3. 医疗手术:利用机器人手臂进行微创手术操作时,需要精确控制末端执行器的位置和姿态,逆运动学求解方法可以帮助医生更好地完成手术任务。
四、发展趋势随着科技进步和工业自动化程度不断提高,逆运动学求解方法也在不断发展。
以下是一些主要趋势:1. 多模型方法:针对复杂机构和多自由度机器人,采用多种模型和算法来求解逆运动学问题,提高求解效率和精度。
2. 人工智能技术:利用深度学习、强化学习等人工智能技术来优化逆运动学求解方法,实现更加智能化的机器人控制。
冗余机器人运动学逆解1. 引言冗余机器人是指具有超过所需自由度数量的机器人系统。
在工业自动化领域,冗余机器人具有广泛的应用,能够完成复杂的任务,如装配、焊接、拾取等。
其中,运动学逆解是实现冗余机器人精确控制的关键技术之一。
2. 冗余机器人的运动学冗余机器人的运动学描述了机器人末端执行器的运动规律。
在运动学中,我们关注的是机器人的位置和姿态,即机器人末端执行器的坐标和姿态。
冗余机器人的运动学方程可以用来描述机器人各关节的角度与机器人末端执行器的位置和姿态之间的关系。
3. 运动学逆解的意义运动学逆解是指根据机器人末端执行器的位置和姿态,计算出机器人各关节的角度。
运动学逆解的求解对于实现精确控制非常重要。
通过运动学逆解,可以将任务空间的要求转化为关节空间的控制量,从而实现冗余机器人的精确运动。
4. 运动学逆解的挑战冗余机器人的运动学逆解求解存在一定的挑战。
首先,由于冗余机器人具有多余的自由度,存在无数种解。
因此,需要找到最优解。
其次,运动学逆解的求解过程需要考虑机器人的约束条件,如关节角度限制、碰撞检测等。
最后,由于机器人关节之间存在耦合,求解过程可能会涉及到非线性方程组的求解,增加了计算的复杂性。
5. 运动学逆解的求解方法存在多种方法用于求解冗余机器人的运动学逆解。
常用的方法包括解析方法和数值方法。
解析方法是通过解析求解运动学方程,得到机器人关节角度的解析解。
数值方法是通过迭代计算的方式,逐步逼近机器人关节角度的解。
常用的数值方法有雅可比转置法、逆雅可比法、牛顿-拉夫逊法等。
6. 解析方法的优势和局限性解析方法具有计算速度快、精度高的优势。
通过解析方法求解运动学逆解可以得到精确解析解,适用于一些简单的冗余机器人系统。
然而,解析方法只适用于具有特殊结构和运动规律的机器人系统,对于复杂的冗余机器人系统,解析方法的求解可能会非常困难甚至无法实现。
7. 数值方法的特点和应用数值方法适用于各种类型的冗余机器人系统,具有广泛的应用。
机器人正反解方法概述引言 机器人运动学是机器人学的基础,是描述机器人运动过程中,各个关节及末端执行器的变化情况。
它涉及到两个方面的内容:即机器人正运动学和逆运动学。
机器人正运动学是已知机器人的连杆参数和各个关节变量,求解机器人末端执行器的位置和姿态;而机器人逆运动学恰好相反,是已知其末端执行器的位置和姿态,求解机器人的各个关节变量。
因此,求解机器人位置正反解的方法成为机器人设计中重要的内容。
机器人逆运动学比正运动学问题复杂得多,并且随着机器人自由度的增加,对于逆运动学问题的求解会越来越复杂。
由于机器人逆解的准确性以及求解速度的快慢会直接影响机器人的实时控制,因此国内外研究机器人逆解的求解算法比较多。
自有机器人以来,国内外的专家学者对此也进行了孜孜不倦的探索,目前已经有大量专门的或者通用的位置正反解求解方法问世,如求解正解问题的广泛应用的D-H(Denavit 和Harenberg)分析方法.求解反解的方法大致分为解析法和数值法.具体除了Paul 等人提出的反变换法,Lee 和Ziegler 提出的几何法和Pieper 解法等,还有旋量理论法,神经网络方法和CAD /CAE 集成软件仿真图形分析法等.本文的宗旨就是对这些方法进行概述,简要介绍各种方法的基本原理及内容以及他们适用的范围和优缺点.一. 位置正解求解方法机器人是由多个关节组成的, 各关节之间的相对平移和旋转齐次变换可以用矩阵 A 表如果用 A1表示第 1个连杆在基系的位置和姿态矩阵, A2表示第 2个连杆相对第 1个连杆的位置和姿态矩阵, 根据坐标系位姿相对变换规则, 第 2个连杆相对基系的位置和姿[ 1]:T2= A1A2依此类推, 则可以得出第 n 个连杆相对基系的位置和姿态矩阵:Tn= A1A2A3A4A5A6An 以著名的斯坦福机器人为例[ 3], 该机器人手臂有6 个关节和 6个杆件, 首先建立各关节坐标系之间的齐次变换矩阵 An, 根据运动学方程式计算规则得T6= A1A2A3A4A5A6= [nx Ox ny Oy ax Pxay Py nz Oz 00az Pz01] 其中:{nx= c1[ c2( c4c5c6- s4s6) - s2s5c6] - s1( s4c5c6+ c4s6)ny= s1[ c2( c4c5c6- s4s6) - s2s5c6] - c1( s4c5c6+ c4s6)nz= - s2( c4c5c6- s4s6) - c2s5c6此种方法适应范围广泛,也得到了实践的验证,正确率高,因此得到了较高的应用,是通用的正解求解方法。
从手部位姿到关节变量—运动学逆问题操作机的手臂解r -θ对于 操作机,其逆变换就是由表示手部位姿的齐次矩阵求操作机的两个关节变量。
r -θ由手坐标系到基座坐标系的齐次矩阵可以表示为21A A T H B =⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡1000100001000011000010000cos sin 00sin cos 1000r P a o n P a o n P a o n z zzz y y y y x x x x θθθθ令上面矩阵的对应元素分别相等 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡10-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡θθθθθθsin cos 010000cos sin 00sin cos 1001000000r r P P o o n n y x y x yx cos x r P θ=sin yr P θ=tan yx P P θ=arctan yxP P θ=所以⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--1000010000cos sin 00sin cos 1000010000cos sin 00sin cos 1θθθθθθθθ令其中的对应元素分别相等,则可以得到cos sin x y r P P θθ=+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-10000100001000110010000001000010000cos sin 00sin cos r P P o o n n y x y x y x θθθθ令关节多了则不然!其实问题很简单P xP yrθθcos xr P θ=sin y r P θ=正解:cos sin x y r P P θθ=+arctan y x P P θ=逆解:手部姿态角的确定手部的姿态可以用绕x ,y ,z 轴依次转动侧摆,俯仰和横滚获得。
),(),(),(1x y OH z x Rot y Rot T z Rot ΦΦ=Φ-),(),(),(),,(x y z z y x OH x Rot y Rot z Rot RPY T Φ⋅Φ⋅Φ=ΦΦΦ=等式左式与右式对应元素相等,最终可得()⎪⎩⎪⎨⎧=ΦΦ+Φ-=ΦΦ-ΦΦ-Φ=Φx y zz y z x z y z x z y z y z x x n n n n n o o a a /arctan )]sin cos /(arctan[)]sin cos /()cos sin arctan[(6关节操作机的手臂解6关节操作机位置运动学逆问题就是由描述手部位姿的齐次矩阵BTH 求解构成手臂的六个关节角 、 、 、 、 、 ,这一逆问题又称为手臂解。
工业六轴机器人运动学逆解工业六轴机器人是一种常见的工业机器人类型,具有广泛的应用场景。
在实际应用中,控制工业六轴机器人的运动是非常重要的,而运动学逆解就是解决这个问题的方法之一。
运动学逆解是指根据机器人的末端执行器的位置和姿态,计算出各个关节的角度。
通过运动学逆解,可以实现对机器人运动的精确控制,从而完成特定的任务。
在工业六轴机器人中,每个关节都可以进行旋转运动,因此机器人的运动学模型可以简化为一个连续的旋转链。
我们可以使用一种称为D-H参数的方法来描述机器人的运动学模型。
D-H参数是一种用于描述机器人关节的坐标系和相对运动的方法。
每个关节都有一个坐标系,它的原点位于前一个关节的旋转轴上,坐标系的z轴与关节的旋转轴平行,x轴垂直于z轴。
通过定义每个关节的坐标系,我们可以建立起整个机器人的坐标系链。
在运动学逆解的计算中,我们需要使用到正运动学方程和逆运动学方程。
正运动学方程是指根据关节角度计算机器人末端执行器的位置和姿态。
通过逐个计算每个关节的变换矩阵,我们可以将关节坐标系的变换叠加起来,得到整个机器人的变换矩阵。
然后,我们可以从变换矩阵中提取出末端执行器的位置和姿态。
逆运动学方程是指根据末端执行器的位置和姿态计算出各个关节的角度。
逆运动学方程的计算比较复杂,需要使用到三角函数的反函数和矩阵运算等方法。
一般来说,逆运动学方程存在多解的情况,我们需要根据具体的应用需求选择合适的解。
在实际应用中,运动学逆解是机器人控制的基础。
通过计算出关节角度,我们可以实现对机器人的精确控制,完成各种复杂的任务。
例如,在装配任务中,我们可以通过运动学逆解计算出机器人的关节角度,使得机器人可以准确地抓取、组装零部件。
运动学逆解还可以用于路径规划和避障等问题。
通过运动学逆解,我们可以计算出机器人在空间中的运动轨迹,从而实现路径规划。
同时,我们还可以根据机器人的运动学模型和环境信息,计算出机器人在避障过程中各个关节的角度,实现智能避障。
clear;clc;L1 = Link('d', 0, 'a', 0, 'alpha', pi/2); %Link 类函数L2 = Link('d', 0, 'a', 0.5, 'alpha', 0,'offset',pi/2);L3 = Link('d', 0, 'a', 0, 'alpha', pi/2,'offset',pi/4);L4 = Link('d', 1, 'a', 0, 'alpha', -pi/2);L5 = Link('d', 0, 'a', 0, 'alpha', pi/2);L6 = Link('d', 1, 'a', 0, 'alpha', 0);b=isrevolute(L1); %Link 类函数robot=SerialLink([L1,L2,L3,L4,L5,L6]); %SerialLink类函数='带球形腕的拟人臂'; %SerialLink属性值robot.manuf='飘零过客'; %SerialLink属性值robot.display(); %Link 类函数theta=[0 0 0 0 0 0];robot.plot(theta); %SerialLink类函数theta1=[pi/4,-pi/3,pi/6,pi/4,-pi/3,pi/6];p0=robot.fkine(theta);p1=robot.fkine(theta1);s=robot.A([4 5 6],theta);cchain=robot.trchain;q=robot.getpos();q2=robot.ikine(p1); %逆运动学j0=robot.jacob0(q2); %雅可比矩阵p0 =-0.7071 -0.0000 0.7071 1.4142 0.0000 -1.0000 -0.0000 -0.00000.7071 0.0000 0.7071 1.9142 0 0 0 1.0000p1 =0.9874 0.1567 0.0206 1.0098 0.0544 -0.4593 0.8866 1.8758 0.1484 -0.8743 -0.4621 0.04670 0 0 1.0000 >>ss =1 0 0 00 1 0 00 0 1 20 0 0 1cchain =Rz(q1)Rx(90)Rz(q2)Tx(0.5)Rz(q3)Rx(90)Rz(q4)Tz(1)Rx(-90)Rz(q5)Rx(90)Rz(q6)Tz(1)q =0 0 0 0 0 0q2 =1.0e+04 *0.0003 0.0180 -0.0399 1.1370 0.0002 0.0536j0 =-0.1100 0.0707 0.3577 -0.0114 0.5092 0 -0.8329 -0.0448 -0.2267 -0.6224 0.1813 0-0.0000 0.7623 0.3956 -0.1410 -0.8413 0-0.0000 0.5354 0.5354 0.3374 -0.0178 -0.86050.0000 0.8446 0.8446 -0.2139 -0.9751 0.12751.0000 0.0000 0.0000 0.9168 -0.2209 -0.4933作者:fly qq链接:来源:知乎著作权归作者所有,转载请联系作者获得授权。