航天器装配用工业机器人的柔性力控制

1. 引言

航天器装配操作主要依赖人工操作,并辅以吊具、升降机、梯子和其他简单工具。但对于大型重型部件的安装,长时间的人工举升容易导致疲劳,影响操作安全。特别是当安装空间较小时,人工举升难以调整部件的位置和姿态,且容易与周围物体碰撞。

工业机器人具有高定位精度、大负载能力、高速能力,可实现大重量部件的姿态保持和精确调节。工业机器人通常用于批量产品的生产线,面向固定工况复杂,不断重复同一动作,具有高生产效率。对于在复杂工况下航天器装配中工业机器人的应用,如何有效且灵活地利用工业机器人的特性并提高生产效率是一个问题。

为了提高航天器装配的质量、效率和安全性,本文在分析工业机器人现有应用方法及航天器大型重载部件安装特点的基础上,提出了一种机器人辅助装配方法。

2. 柔性力控制

2.1 传统控制方法

示意图0

工业机器人在汽车、航空航天等领域的应用已非常成熟,几种典型应用如图1所示。

目前工业应用中的工业机器人主要采用以下控制方法:

1) 机器人的运动路径通过编程或示教预先确定,并通过重复同一动作[1],(如汽车生产中的机器人)对机器人进行重复控制。该方法适用于大批量产品的生产。

2) 机器人的运动由视觉引导[2],图像传感器用于采集机器人周围环境的图像,控制系统可自动识别图像中的目标,并据此控制机器人的运动。该方法常用于需要目标具有明显可视特征的自动化焊接和自动化物流系统。该方法不适用于航天器装配,因为航天器装配并非批量生产,且工况多变。此方法需频繁调整视觉方案和算法,同时全自动方式的安全性尚需研究与验证。

3) 机器人的手动操作由示教器、操纵杆等控制[3]。该方法通常用于机器人的调试或远程控制。人工操作可根据操作员的观测确保装配的安全性,但通过手持终端进行控制时,手动控制方向无法直接对应工件的运动方向,容易发生误操作,带来安全风险。

邱铁城等[4]针对卫星舱板装配机器人开展了应用研究,提出了基于激光跟踪仪测量和视觉测量的机器人自动装配方案,以及手动操作机器人控制终端的半自动装配方案,这些仍属于上述三种控制模式。

2.2 柔性控制方法

航天器装配与大批量工业产品不同,工况频繁变化,需要机器人具备足够的灵活性以适应不同的装配约束。

在工业机器人的一些特殊应用中(如轴孔装配、表面研磨、去毛刺等),通常使用“柔性控制”[5],以使机器人末端顺应工件边缘,并能将接触力保持在适当范围内。柔性控制方法分为各种被动柔顺和主动柔顺[6]。被动柔顺控制是设计一种柔性机械装置,并将其安装在工业机器人腕部,以提高对外部环境的适应能力[7];主动柔顺控制则是基于力传感器的反馈信息,结合适当的控制方法(如阻抗控制[8]、力/位置混合控制[9]等),根据实际力与期望力之间的偏差实时进行机器人轨迹修正,使接触力保持在期望的范围内[10-11]。

柔性控制允许机器人在给定轨迹的基础上进行微小调整,将接触力保持在适当且安全的范围内。通过在机器人末端施加力,也可以实现大范围的运动。库卡开发了具有关节扭矩和位置反馈控制的LWR轻型机器人,可实现人手引导下的运动[12],但其额定负载较小(7 kg),且手动引导运动控制未考虑重力影响的负载。

现有的机器人柔性控制方法适用于小负载[12]或空间微重力[5, 8]的情况,不考虑负载重力的影响。但在地面重载情况下,重力对机器人的影响不可忽略。要实现柔性力控制,必须补偿负载重力的影响。

2.3 力控制机器人辅助的装配操作

从航天器装配的需求出发,提出了一种用于地面重型设备安装的柔性臂架装配新方法。在机器人末端法兰与负载之间安装六轴力/扭矩传感器,用于感知力和扭矩信息。人工操作直接作用于机器人末端的负载上,系统通过力感知算法获取作用力函数的信息,并将该信息作为输入来控制机器人运动,使被操作对象跟随人为动作。

该方法类似于空中悬浮物体的操作:操作员可以用较小的力控制重型设备,调节其姿态和位置。操作员可按照日常操作习惯调整物体位置,因此不易发生误操作。该方法结合了机器人稳定、可靠和高精度的特点以及人类观测与操作的灵活性,适用于航天器复杂多变的装配条件。

3. 方法原理

示意图1

系统如图2所示,包括机器人、六轴力/扭矩传感器、工装夹具、工件、操作员及其他分量。六轴力/扭矩传感器是获取力反馈的关键部件,能够测量三维空间力(Fx, Fy, Fz)和三维空间扭矩(Mx, My, Mz)[13]。

由六轴力/扭矩传感器直接感知的力和扭矩信息是手动力与负载重力共同作用的结果。需要对负载进行重力补偿,即从传感器的总值中扣除负载的力和扭矩,以获取人手施加的力和扭矩信息。如果在运动过程中机器人姿态发生变化,六轴力/扭矩传感器和负载的姿态也会随之改变,但重力始终垂直向下,导致从六轴力/扭矩传感器获得的力和扭矩分量也随之变化。因此,为了实现柔性力控制,在改变机器人末端姿态的条件下,需要在机器人运动过程中实时获取负载在当前姿态下的重力分量,并进行力感知计算。

通过预先计算负载(工装夹具和部件组件)的重量和重心,并在机器人运动过程中实时获取机器人末端的位置与姿态信息,可计算出负载的力和扭矩,从而实现实时重力补偿。

通过六轴力/扭矩传感器测量数据并进行负载重力补偿后,得到人手产生的三维正交力(Fhx, Fhy, Fhz)和三维正交扭矩(Mhx, Mhy, Mhz)。(Fhx, Fhy, Fhz)作为输入用于控制机器人运动;(Mhx, Mhy, Mhz)作为输入用于控制机器人旋转。通过设计运动方向与力/扭矩方向之间的关系,以及运动大小与力/扭矩大小之间的关系,可实现人手灵活地移动负载。

示意图2

柔性力控制系统的控制框图如图3所示。需要注意的是,机器人根据其自身的运动控制方法来控制各轴的运动以实现输入指令的动作,该控制不在本文讨论范围内。

在工件搬运过程中,加速运动会引起惯性力,但本文仅考虑工件以低速和小加速度运动的情况,并忽略惯性力的影响。这种简化在航天器装配中是合理的,因为安全与稳定性的要求使得工件必须以低速进行运输。

4. 柔性控制算法

4.1 重力参数测量

如果没有外力或人手作用于负载,则六轴力/扭矩传感器测得的力和扭矩信息完全由负载的重力产生。在这种情况下,通过控制机器人处于不同姿态,可以获得多组传感器测量数据,进而计算出负载的重量和重心。

示意图3

6轴力/扭矩传感器的坐标系为Oxyz,重力效应在6轴力/扭矩传感器中的表现如图4所示。重心在坐标系中的位置为(x, y, z),负载的重力值为G,其在x、y和z轴上的分量分别为Gx、Gy、Gz,重力在x、y、z轴上产生的扭矩分别为Mgx、Mgy、Mgz。根据力与扭矩的关系:

$$
\begin{cases}
M_{gx} = - (G_z \cdot y - G_y \cdot z) \
M_{gy} = - (G_x \cdot z - G_z \cdot x) \
M_{gz} = - (G_y \cdot x - G_x \cdot y)
\end{cases}
$$

相当于

$$
\begin{bmatrix}
M_{gx} \ M_{gy} \ M_{gz}
\end{bmatrix}
=
\begin{bmatrix}
0 & -z & y \
z & 0 & -x \
-y & x & 0
\end{bmatrix}
\cdot
\begin{bmatrix}
G_x \ G_y \ G_z
\end{bmatrix}
$$

当机器人末端姿态变化时,Gx、Gy、Gz和Mgx、Mgy、Mgz会发生变化,但它们始终满足公式(1)。采集不同负载姿态下的多组6-axis F/T sensor数据,利用最小二乘法,可求得重心位置(x, y, z)在六轴力/扭矩传感器坐标系中。

以三组不同的姿态数据为例,说明具体的计算方法。在三种不同的空间姿态下测得的三个力分别为(Fx1, Fy1, Fz1)、(Fx2, Fy2, Fz2)和(Fx3, Fy3, Fz3),三个扭矩分别为(Mx1, My1, Mz1)、(Mx2, My2, Mz2)和(Mx3, My3, Mz3),由公式(2)可得:

$$
\begin{bmatrix}
M_{x1} & M_{x2} & M_{x3} \
M_{y1} & M_{y2} & M_{y3} \
M_{z1} & M_{z2} & M_{z3}
\end{bmatrix}
=
\begin{bmatrix}
0 & -z & y \
z & 0 & -x \
-y & x & 0
\end{bmatrix}
\cdot
\begin{bmatrix}
F_{x1} & F_{x2} & F_{x3} \
F_{y1} & F_{y2} & F_{y3} \
F_{z1} & F_{z2} & F_{z3}
\end{bmatrix}
$$

选择机器人容易达到的三种姿态,使矩阵可逆,则可通过矩阵运算解出重心坐标(x, y, z)。负载重力G的大小可通过任意一组数据计算得出,公式为 $ G = \sqrt{F_{xi}^2 + F_{yi}^2 + F_{zi}^2} $,其中 i = 1, 2, 3。

4.2 重力补偿

假设六轴力/扭矩传感器测得的三个力分量分别为Fx、Fy、Fz,三个扭矩分量分别为Mx、My、Mz,人手作用在负载上。

在柔性力控制过程中,随着机器人姿态的变化,负载重力方向在六轴力/扭矩传感器坐标系中的方向也随之改变。在完成机器人放置姿态的标定后,可通过机器人控制系统实时获取重力方向与六轴力/扭矩传感器x、y和z轴之间的夹角 α、β、γ。

可计算出负载重力在六轴力/扭矩传感器三个坐标轴上的投影:

$$
\begin{cases}
G_x = G \cdot \cos\alpha \
G_y = G \cdot \cos\beta \
G_z = G \cdot \cos\gamma
\end{cases}
$$

Gx、Gy、Gz 是由于重力负载在 Fx、Fy、Fz 中产生的部分,将它们与重心坐标(x, y, z)代入公式(1),得到 Mgx、Mgy、Mgz,即由重力负载在 Mx、My、Mz 中产生的部分。然后可得:

人手产生的力在三个轴上:

$$
\begin{cases}
F_{ex} = F_x - G_x \
F_{ey} = F_y - G_y \
F_{ez} = F_z - G_z
\end{cases}
$$

人手产生的扭矩在三个轴上:

$$
\begin{cases}
M_{ex} = M_x - M_{gx} \
M_{ey} = M_y - M_{gy} \
M_{ez} = M_z - M_{gz}
\end{cases}
$$

4.3 柔性力控制

通过重力补偿获得了人手产生的力/扭矩的大小和方向。柔性力控制方案如下。

以运动控制为例,运动方向应与人手施加的力的方向相同,根据应用需求,运动距离有两种切换模式:

1) 模式1 。当安装对象需要大范围移动时,机器人在每个控制周期内的运动由人手产生的力Fh乘以一个系数k(即Fh • k)来确定,系数k的值可根据实际操作情况设定。机器人的运动控制周期通常在毫秒级,每个周期响应一次手动力,从而实现柔性力控制。

2) 模式2 。当安装对象需要小而精确的调整时,可将运动距离设置为预定值l,该值可根据运动精度要求进行设定(例如,令l = 0.1mm);为Fh设置阈值Fd(例如,Fd=30N)。当Fh > Fd时,工件移动距离l;如果Fh ≤ Fd,机器人不产生动作。若工件移动后Fh仍大于Fd,则此时机械手不移动,直到Fh降低至Fd以下并再次大于Fd时,才再次控制工件运动。这样,当人手始终作用于负载且Fh始终大于Fd时,机器人不会连续移动,从而保证控制精度。

旋转控制与运动控制类似。旋转方向与人为作用力矩的方向相同。旋转角度的大小确定方式与上述运动距离的确定方式类似,此处不再赘述。

5. 实验

实验采用德国库卡公司KR210机器人,其主要参数如表1所示,机器人如图5所示。六轴力/扭矩传感器采用ATI-Omega190型传感器。

属性 数值
负载能力 210公斤
轴数 6
工作半径 2700毫米
重复定位精度 ±0.06毫米

示意图4

实验中使用的负载重量约为300牛顿,重力补偿计算产生的误差在3牛顿以内。实验完成了柔性力控制的两种控制模式。实验中,机器人的线速度限制为83毫米/秒,角速度限制为95.5度/秒。

示意图5

由于机器人加减速会产生惯性力,动作阈值(10牛顿)远大于重力补偿误差(3牛顿),从而减小了惯性力对操作灵活性的影响。

在优化控制参数后,两种控制模式的柔性力控制均得以实现。系统的柔顺操作体验良好,本研究实现了机器人柔性力控制功能。

针对某航天器重型设备的特定安装条件,采用柔性力控制方法进行了初步实验验证。安装条件为:工件质量约50公斤,需将其安装至腔体中,在安装过程中上下移动范围不超过2毫米。

在此类安装条件下,传统人工安装方法容易产生晃动,导致碰撞,且难以对准安装孔。在验证实验中,制作了与实际产品重量和重心相同的模拟件,并根据实际安装条件建立了安装边界条件,实验现场如图7所示。

示意图6

当工件距离目标安装位置较远时,采用快速连续柔顺力控制模式(模式1)移动工件。当工件进入腔体的狭窄空间时,使用点动式柔顺控制模式(模式2)缓慢地将工件移动至目标位置。

整个安装过程耗时约30分钟。原始的人工安装方法耗时4~8小时,且安全与稳定性相对较差。

6. 结论

本文提出了一种用于航天器大型重载部件安装的机器人辅助装配方法。在机器人末端法兰与安装对象之间安装六维力/扭矩传感器,以感知力和扭矩信息。人工操作直接作用于机器人末端的负载,系统通过力感知算法获取作用力函数的信息,并将该信息作为输入来控制机器人运动,从而使被操作对象跟随人为动作。

本文给出了详细设计、简要算法和初步实验验证。在实验中,实现了柔性力控制功能。对于300牛顿的负载,重力补偿误差在3牛顿以内,六轴力/扭矩传感器的外力阈值设置为10牛顿。系统的柔顺操作体验良好。

模拟安装实验表明,采用新方法后,航天器狭小空间内重型设备的安装将大大缩短时间,同时可确保安装过程的安全与稳定。

需要进一步的实验来优化相关算法和控制策略,提高重力补偿的精度,并提升系统性能(如控制灵活性),从而使系统更加方便和安全。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐