机器人位置控制类型
机器人位置控制分为两种类型:
-
关节空间运动控制—在这种情况下,机器人的位置输入被指定为一组关节角度或位置的向量,这被称为机器人的关节配置,记作q。控制器跟踪一个参考配置,记作 q r e f q_{ref} qref,并返回实际的关节配置q。这也被称为配置空间控制。
-
任务空间运动控制—位置被指定给控制器作为末端执行器的姿态。然后,控制器驱动机器人的关节配置到使末端执行器移动到指定姿态的值。这有时被称为操作空间控制。
下图展示了这两种运动控制类别中不同类型的输入/输出。
关节空间运动控制
关节空间运动模型描述了在闭环关节空间位置控制下机械手的运动,在关节空间运动模型对象和关节空间运动模型块中使用。机械手是典型的位置控制设备,要进行关节空间控制,需要指定关节配置向量 q q q,以跟踪参考配置 q r e f q_{ref} qref。为此,您可以对机器人关节进行闭环控制,并使用运动模型模拟机器人在此控制下的行为。
要使这种方法最接近实际系统的运动,就必须准确表示控制器和被控系统的动态。本节将主要介绍在闭环联合空间位置控制下的机器人行为建模方法:
- 计算扭矩控制的系统—刚体动力学采用标准刚体机器人动力学建模,但对整体动力学进行了补偿,并定义了误差动力学。
- PD 控制的系统—刚体动力学模型采用标准刚体机器人动力学,通过PD控制和重力补偿提供关节扭矩输入。该控制器不会对刚体整体运动的产生较大的补偿。
- 独立关节运动的系统—每个关节独立建模为一个二阶闭环系统,是一个低保真度模型,忽略了机器人动力学,并假定为闭环系统响应。该模型可以被认为是在没有外力的情况下闭合环运动如何表现的最好情况,因为动力学被简化和直接定义。
状态量及误差表示
关节空间运动模型状态有:
- q q q—机器人关节配置,作为关节位置的矢量。对于旋转副单位为: r a d rad rad,对于平移副单位为: m m m。
- q ˙ \dot q q˙—机器人关节速度矢量,对于旋转副单位为: r a d / s rad/s rad/s,对于平移副单位为: m / s m/s m/s。
- q ¨ \ddot q q¨—机器人关节加速度矢量,对于旋转副单位为: r a d / s 2 rad/{s^2} rad/s2,对于平移副单位为: m / s 2 m/{s^2} m/s2。
闭环系统的许多运动方程都是从定义机器人开环运动的标准刚体机器人动力学中推导出来的,动态误差表示为:
q ~ = q − q r e f \tilde q = q - {q_{ref}} q~=q−qref
计算扭矩控制的系统
当运动模型被定义为受计算扭矩控制的机器人时,运动模型使用标准刚体机器人动力学,但广义力输入由控制律提供,该控制律对刚体动力学进行补偿,并定义二阶误差动力学响应。
- 输入: q r e f 、 q ˙ r e f 、 q ¨ r e f q_{ref}、\dot q_{ref}、\ddot q_{ref} qref、q˙ref、q¨ref分别为期望的关节配置、速度、加速度;还可使用ExteralForce函数自定义外力和扭矩。
- 输出: q 、 q ˙ 、 q ¨ q、\dot q、\ddot q q、q˙、q¨分别为关节配置、速度、加速度,但Simulink的模块中只返回加速度,可使用积分单元模块来求解其他变量。
如上图所示,完整系统由标准刚体机器人动力学组成,具有通过广义力输入Q到动力学模型的闭环控制律:
- M ( q ) M(q) M(q):为基于当前机器人构型的关节空间质量矩阵,使用
massMatrix
函数来计算该矩阵。 - C ( q , q ˙ ) C(q,\dot q) C(q,q˙):为科里奥力,与关节速度一起形成速度积,可使用
velocityProduct
函数来计算。 - G ( q ) G(q) G(q):为所有关节保持其位置所需的力矩和力,这是由于在给定的重力下作用在机器人上的重力和力。使用
gravityTorque
函数计算重力力矩。详细的讲解可见: - [ ω n 2 ] d i a g {[\omega _n^2]_{diag}} [ωn2]diag:N * N对角线,ω为自然频率,单位Hz。
- [ 2 ζ ω n 2 ] d i a g {[2\zeta \omega _n^2]_{diag}} [2ζωn2]diag:N * N对角线矩阵,ζ为阻尼比,在jointSpaceMotionModel模块的DampingRatio属性中指定。
基于计算扭矩控制系统搭建实例
整体搭建完成之后的模型文件如下,各个模块说明如图所示。
相较于上一期推文()文件,此处动力学模型的输入做了如下修改,通过修改输入可实现输入关节角度、速度及加速度的控制。其余不做改变。
关节空间运动模型中即为MATLAB封装的控制器,该控制器可在模块属性页中Motion Type
选择计算力矩控制、PD 控制、独立关节运动以及开环控制。本例程中选择计算力矩控制,通过不断的调整阻尼率和自然频率即可得到适配到较好的控制效果。
此处,控制器的输入定义了两个输入,其中一个为输出重复离散时间序列[0 1 -1.5 1 1.5 0]
,其控制效果对比图如下:
另一个输入为使用规划器,规划后的轨迹,具体设置如下:
其机器人的运动如下: