首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【云+社区年度征文】机器人力控制算法与实际应用详解

导言:

机器人力控制应用在机器人控制任务中的方方面面,其也是衡量一个机器人本体控制水平的衡量标准。机器人力控制兼顾机器人本体特性与人机交互等任务,使得机器人在发挥自身运动灵巧性的同时与人进行友好的交互。可以说机器人的力控制是机器人实际走向人类生活的关键技术。 本文详细阐述机器人的力控制的概念和应用,并且简要给出算法实现步骤。

钢铁侠

上述钢铁侠视频既是大家对机器人发展的憧憬,也是机器人科研工作者的目标。而机器人的动态性能以及人机交互也是机器人力控制的最高要求。

1 机器人的力控制概述

大部分机器人属于典型的多刚体系统,多刚体系统的控制量主要是位置、速度、加速度、力和力矩,甚至动量,冲量和能量等。但是就实际应用来说,机器人的控制量如下所示:

物理量

关节空间

笛卡尔空间

运动学量

关节角度,关节角速度,角加速度

位置和姿态

动力学量

力(移动关节)和力矩(旋转关节)

力和力矩

动量

动量,冲量(关节空间)

动量,冲量(笛卡尔空间)

一般来说,机器人主要的控制还是几种在位置和力信息上。从目前的学术界的研究重点上,机器人的控制算法和策略主要集中在机器人的力控制机器人力控制相对来说是一个比较笼统的概念,字面意思是控制机器人的力,但是实际从具体应用则有较多的概念区分。这也是本文需要详细阐述的地方。本文将详细介绍机器人的力控制算法、概念以及相关典型应用。机器人力控制分类如下:

力分类

空间划分

主要研究内容

底层力控制

独立关节

关节力矩伺服环,主要处理力矩与电流之间关系。电机控制模式:位置模式,力矩模式等(驱动器空间)

动力学位置控制

基于动力学前馈或者反馈的机器人控制;比如重力补偿+PD

上层力控制

关节空间

主要处理力矩和位置之间的关系。主要算法是关节阻抗控制,关节导纳控制

笛卡尔空间

主要处理笛卡尔力/力矩和位姿之间的关系。主要算法是笛卡尔空间阻抗控制,导纳控制,混合阻抗控制以及力位混合控制

不同空间运动映射

2 机器人力控制的典型应用

机器人力控制大多数需要涉及机器人动力学方程,机器人动力学方程分为:

  • 关节空间动力学:机器人的动力学方程涉及到关节驱动力矩以及关节角加速度等之间的关系;
  • 笛卡尔空间动力学:机器人的笛卡尔空间驱动力和力矩以及笛卡尔空间运动自由度之间的关系;
机器人力控制示意图

机器人关节空间的动力学方程如下所示:

M(q)\ddot q+C(q,\dot q)\dot q+G(q)=\tau-J^T(q)F_{ext}

机器人笛卡尔空间的动力学方程如下所示:

M_x(x)\ddot x+C_x(x,\dot x)\dot x+G_x(x)=J^{-T}(q)\tau-F_{ext}

2.1 机器人力传感器

机器人的力传感器可以分为关节力传感器和笛卡尔六维力传感器。

机器人关节力矩传感器和六维力传感器

2.2 底层力控制

(1) PD控制+重力补偿

机械臂关节空间的控制需要由逆运动学模块将笛卡尔任务轨迹映射到关节空间,得到关节空间轨迹之后通过关节层控制器跟踪该轨迹。对于关节层控制器,最简单的为当机械臂运动较慢时,且传动部分选用大减速比,此时的机械臂系统可以看成是线性系统,其非线性耦合部分可以忽略,此时对各个关节采用PD控制。虽然基于独立的各个关节的PD控制的机械臂关节空间控制器具有渐进稳定性,但是无法保证所有任务点的稳定。

机器人的是多体耦合的系统,常规的基于单关节的PID控制很难满足机器人的控制精度和稳定性,常规的独立关节PID控制是完全不考虑机器人的动力学特性,只是按照实际轨迹与期望轨迹之间的偏差进行负反馈控制。这类方法通常称为“运动控制”。严格意义上说,只有在忽略机器人动力学方程中的重力项影响才可以使用机器人的独立关节PID控制。所以一般来说,只有在机器人属于小型轻型机器人或者外太空上才会可以将机器人的重力项忽略。此外,PD控制+重力补偿则可以将机器人的动力学线性化。

M(q)\ddot q+C(q,\dot q)\dot q+G(q)=\tau+G(q)=K_d\dot e+K_pe+G(q)

当机械臂运动速度较快,此时机械臂各部分之间非线性耦合严重。若要进行精确的位置控制,则需要考虑机械臂的动力学模型。即“基于模型的控制”,也即“动态控制”。这种基于模型的机械臂控制方案可以使得机械臂具有较好的动态性能。对于基于模型的机械臂的控制通常包括内控制回路以及外控制回路.

机器人+PD控制的具体实现框图如下

独立关节PD+重力补偿控制框图
达芬奇机器人系统

达芬奇手术系统主要由控制台系统、操作臂 系统和成像系统组成,其中控制台系统由计算机系 统、手术操作监视器、操作手柄、脚踏板及其他输 入输出设备组成。手术时外科医生可坐在远离手术 台的控制台前,借助三维视觉,双手控制主操作 手,手部动作传达到机械臂及手术器械,完成手 术操作。这种主从控制的工作方式增加了操作的精确性和平稳性。

达芬奇系统的主手需要做重力补偿控制,重力补偿可以使得人在操作主手的过程中没有负重感,且使得机器人主手在没有人干预的情况下可以使得机器人停留在任意位置。

(2)全身动力学控制

上述的基于独立关节PD+重力补偿的方法能很好的处理机器人的静态以及准静态的控制,但是当机器人的运动速度较快,加速度变化较大的时候,系统的惯性力以及离心力较大,很难将其忽略,因为需要在PID控制的基础上加上精确的全身动力学的前馈项或者全身动力学的反馈项。

全身动力学控制

简评:机器人的底层力控制主要是为了解决机器人本体的精确控制,将实际机器人的动力学特性解析到机器人的底层控制器中,从反馈控制和前馈补偿的角度来控制机器人,使得机器人有很好的动力学性能。

以人形机器人全身力控制为例,典型的例子包括如下ASIMO的奔跑运动以及HRP-5P的全身运动。

HRP-5P Humanoid Robot
Asimo Running

2 .3 机器人上层力控制

机器人的上层力控制种类也有好几种,包括导纳控制、阻抗控制、混合阻抗控制和力位混合控制等,但是其中应用最多的是机器人的阻抗控制和导纳控制。二者有很多相关性也有很多不同之处。

机器人与环境接触后位置与交互力之间的相互关系具体如下二阶系统表示:

M_d\ddot e+D_d\dot e+K_de=F_{ext}

则二者时间的传递函数为

G_d(s)=\frac {1}{M_ds^2+D_ds+K_d}
机器人与环境之间的交互示意图

(1)机器人导纳控制

在导纳控制中, 被控对象为位置控制的机器人系统, 接收位置和速度信号作为输入, 输出力信号, 表现出机械阻抗的特性。 则此时控制器设计为机械导纳, 输入力信号, 输出位置信号,根据接触力反馈信号产生位置修正量。该类型的导纳控制任务规划较少,可以直接在机械臂的位置控制基础上实现。机械臂与环境之间的作用力通过机械臂末端六维力传感器得到,通过目标阻抗关系得到笛卡尔位置修正量。该类型的阻抗控制不直接控制机械臂与环境之间的交互力,而是通过机械臂与环境之间的相对位置调整作用力,其鲁棒性好,较易实现。

机器人导纳控制框图

机器人导纳控制可以通过如下公式来实现:

x=x_0+\Delta x=x_0+\frac {F_{ext}}{M_ds^2+D_ds+K_d}

对于基于末端六维力/力矩信息的阻抗控制策略,针对工业机器人所展开的研究无论从理论上还是实验上都形成了一套相对完整的体系。由于工业机器人控制器的内环基本上都是以位置控制为主导的,因此,基于位置的阻抗控制在工业机器人中被广泛应用。机器人导纳控制的两个典型应用是轴插孔实验以及打磨实验。

机器人轴插孔
机器人恒力打磨

导纳控制的实现依赖于位置控制的系统, 其性能和稳定性特性在很大程度上取决于底层位置控制器的质量。 位置控制器能有效地补偿了未建模摩擦的影响, 其位置控制精度决定了整个导纳控制系统的性能表现。 但是在高刚度环境下, 即使没有模型误差以及信号延迟, 导纳控制下的系统也可能会不稳定。 与阻抗控制不同, 导纳控制在应用于高期望刚度行为时, 其控制增益较小, 而对于低刚度行为, 其控制增益较大。

(2)机器人阻抗控制

Hogan指出,在约束和自由空间的力和位置控制无法有效的控制机械臂与环境的交互。因此,在其提出的阻抗控制理论中忽略位置控制和力控制子空间。机械臂阻抗控制通过位置与环境作用力的动态关系实现机械臂与环境的交互作用,由于该位置与力的动态关系与电路中的阻抗概念类似,因此称其为阻抗控制。阻抗控制依据任务执行空间的不同可以分为关节空间阻抗控制以及笛卡尔空间阻抗控制。

机器人加速度的运动学为:\ddot x=J\ddot q+\dot J\dot q=>\ddot q=J^{-1}(\ddot x-\dot J\dot q) ,考虑到机器人的动力学方程:

\tau=M(q)\ddot q+C(q,\dot q)\dot q+G(q)+J^T(q)F_{ext}\\ =>\tau=M(q)J^{-1}(\ddot x-\dot J\dot q)+C(q,\dot q)\dot q+G(q)+J^T(q)F_{ext}\\ =>\tau=M(q)J^{-1}(\ddot x_d-M_d^{-1}(F_{ext}-D_d\dot e-K_de)-\dot J\dot q)+C(q,\dot q)\dot q+G(q)+J^T(q)F_{ext}
机器人阻抗控制实现框图
飞行机器人的笛卡尔阻抗控制
机器人关节空间阻抗控制

2 .4 多机器人力控制

多机器人的力控制不仅涉及到单个机器人的力控制,还需要涉及到多个机器人之间的协调控制。多机器人和单个机器人力控制的不同和主要在于上层的力控制,而对于单个臂的力控制二者是没有区别的。如果双臂机器人在操作同一个物体,或者双臂操作物体具有耦合的物体使得双臂机器人在力和位置方向上具有耦合作用,因而需要将笛卡尔的操作物体过程中的耦合以及干扰考虑进双臂控制器中。双臂操作过程中,需要考虑到待操作的物体与人或者环境之间的交互特性。

多机器人力控制
下一篇
举报
领券