机器人的运动控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 手臂的控制
2.4.1 运动控制
对于机器人手臂的运动来说,人们通常关注末端的运动,而末端运动乃是由各个关节的运动合成实现的。因而必须考虑手臂末端的位置、姿态与各个关节位移之间的关系。此外,手臂运动,不仅仅涉与末端从某个位置向另外一个位置的移动,有时也希望它能沿着特定的空间路径进行移动。为此,不仅要考虑手臂末端的位置,而且还必须顾与它的速度和加速度。若再进一步从控制的观点来看,机器人手臂是一个复杂的多变量非线性系统,各关节之间存在耦合,为了完成高精度运动,必须对相互的影响进行补偿。
1. 关节伺服和作业坐标伺服
现在来研究n 个自由度的手臂,设关节位移以n 维向量12(,,,)T n n q q q q =∈ℜ
表示,i q 是第i 个关节的位移,刚性臂的关节位移和末端位置、姿态之间
的关系以下式给出:
()r r f q = (1)
m r ∈ℜ是某作业坐标系表示的m 维末端向量,当它表示三维空间内的位置姿态时,m=6。如式(1)所示,对刚性臂来说,由于各关节的位移完全决定了手臂末端的位置姿态,故如欲控制手臂运动,只要控制各关节的运动即可。
设刚性臂的运动方程式如下所示:
()(,)()M q q h q q q g q τ=++Γ+ (2)
式中,()n n M q ⨯∈ℜ为手臂的惯性矩阵;(,)n h q q ∈ℜ为表示离心力和哥氏力的向量,n n ⨯Γ∈ℜ为粘性摩擦系数矩阵;()n g q ∈ℜ为表示重力项的向量;1(,,)T n n τττ=∈ℜ为关节驱动力向量。
机器人手臂的驱动装置是一个为了跟踪目标值对手臂当前运动状态进行反馈构成的伺服系统。无论何种伺服系统结构,控制装置的功能都是检测各关节的当前位置q 与速度q ,将它们作为反馈信号,最后直接或间接地决定各关节的驱动力τ。
图1给出了控制系统的构成示意图。来自示教、数值数据或外传感器的信号等构成了作业指令,控制系统根据这些指令,在目标轨迹生成部分产生伺服系统需要的目标值。伺服系统的构成方法因目标值的选取方法的不同而异,大体上可以分为关节伺服和作业坐标伺服两种。当目标值为速度、加速度量纲时,分别称之为速度控制或加速度控制,关于这些将在本节2.和3.中加以叙述。
图1 刚性臂控制系统的构成
1) 关节伺服控制
讨论以各关节位移的形式给定手臂运动目标值的情况。
令关节的目标值为12(,,,)T n d d d dn q q q q =∈ℜ。图2给出了关节伺服的构
成。若目标值是以关节位移的形式给出的,那么如图2所示,各个关节可以独立构成伺服系统,因此问题就变得十分简单。目标值d q 可以根据末端
目标值d r 由式(1)的反函数,即逆运动学(inverse kinematics )的计算
得出
1()d r d q f r -= (3)
图2 关节伺服构成举例
如果是工业机器人经常采用的示教方法,那么示教者实际上都是一面看着手臂末端,一面进行示教的,所以不必进行式(3)的计算,d q 是直接给出的。如果想让手臂静止于某个点,只要对d q 取定值即可,当欲使手
臂从某个点向另一个点逐渐移动,或者使之沿某一轨迹运动时,则必须按时间的变化使d q 发生变化。
为了简单起见,假设驱动器的动态特性忽略不计,各个关节的驱动力i τ可以直接给出。这时,最简单的一种伺服系统如下所示:
()i pi di i vi i k q q k q τ=-- (4)
pi k 是比例增益,vi k 是速度反馈增益。对于全部关节,可以将式(4)
归纳表示为
()p v d K q q K q τ=-- (5)
式中,()n n pi p diag k K ⨯=∈ℜ;()n n vi v diag k K ⨯=∈ℜ。这种关节伺服系统把每一个关节作为简单的单输入、单输出系统来处理,所以其结构简单,现在的工业机器人大部分都由这种关节伺服系统来控制。但是,从式(2)中可知,从手臂的动态特性来看,严格地说,每个关节都不是单输入、单输出系统,惯性项和速度项在关节彼此之间存在动态耦合。在式(5)所表示的关节伺服中,这些耦合均被视为外部干扰来进行处理,为了减少外部干扰的影响,在保持稳定性范围内应该尽量将增益pi k 、vi k 设置得大一
些。但无论怎样加大增益,由于重力项的影响,手臂在静止状态下,各个关节仍会产生稳态误差,即将式(5)代入式(6)中,若0q q ==,将产生下式所示的稳态误差e :
1()p d g e q q K q -=-= (6)
有时为了使稳态误差为零,可在式(5)中再加上积分项,构成
()()p v i d d dt K q q K q K q q τ=--+-⎰ (7)
式中,n n i K ⨯∈ℜ为积分环节的增益矩阵,和p K 、v K 一样,它是一个对角矩阵。
传统上,上述伺服系统是用模拟电路构成的。近年来,由于微处理器和信号处理器等高性能、低价格的计算器件的普与,将伺服系统的一部分或全部改成数字电路的所谓软件伺服已经很普遍了。与模拟电路的情况相比,软件伺服能进行更精细的控制。例如,不再让各个关节的增益pi k 、vi k 固定不变,而是让其按照手臂不同姿态时所期望的响应特性而变化,用
下式代替式(7),通过对重力项的计算,直接实现重力项的补偿
()()p v d g q K q q K q τ=--+ (8)
后续的内容中,都是在软件伺服假设的前提下展开讨论的。如后面所述,软件伺服系统方式还能有比式(7)和式(8)更高级的控制方法,但是即使用式(7)和式(8)的简单的控制方法,闭环系统的平衡点d q 也能达到渐进稳定,即经过无限长的时间,q 能收敛于d q 。即在多数场合,式
(7)和式(8)的控制方法已经足够了。
2)作业坐标伺服控制
关节伺服控制的结构简单,对软件伺服来说,计算量少,采样时间较短,所以是工业机器人经常采用的方法,这一点已经在前面有所论述。但在自由空间内对手臂进行控制时,在很多场合都希望直接给出手臂末端位置、姿态运动的显式表达。例如,让手臂从某个点沿直线运动至另一个点就是这种情况。
在这种情况下,很自然会取末端姿态向量r 的目标值d r 作为手臂运动
的目标值。一旦得到d r ,利用上述式(3)变换为d q ,当然也能应用关节
伺服方式。但是,为此不但需要事前求解末端目标值d r ,而且往往要在运
动中对其加以在线修正,于是必须实时计算式(3)的逆运动学方程式。此外,因为在关节伺服系统中各个关节是独立受控的,它们的实际响应结果导致的末端位置、姿态的响应比较难以预测,而且为了得到期望的末端响应,对各关节伺服系统的增益调节也十分困难。
因此,现在我们来研究不将d r 变为d q ,而把d r 本身作为目标值来构成
伺服系统。由于在很多情况下,末端位置、姿态d r 是用固定于空间内的某