面向人机协作中的安全物理交互仿真分析*

2022-01-27 09:50蹇兴强穆春阳田国禾张春涛
组合机床与自动化加工技术 2022年1期
关键词:人机障碍物力矩

蹇兴强,穆春阳,马 行,田国禾,张春涛

(北方民族大学 a.宁夏智能信息与大数据处理重点实验室;b.电气信息工程学院;c.机电工程学院,银川 750021)

0 引言

随着机器人技术的快速发展,越来越多的机器人进入到人类的生产、生活环境中,需要机器人与人进行交互的要求也越来越多。机器人与人的交互分为人机物理交互和人机认知交互[1]。当机器人本体与人类用户接触时即称为人机物理性交互,人机物理交互系统通常完成一些机器人与人或外界环境交互的任务,需要保证安全性、柔顺性和稳定性[2-3]。如常见的人机物理交互应用有主动康复训练机器人[4-6]、机器人主动柔顺抛磨[7]、手术机器人导纳安全控制[8]、基于物理人机交互的智能助行器[9]、具有安全物理交互能力的柔性关节协作机器人等[10-12]。机器人-环境-人的物理交互过程,外力感知和交互控制对于保证其安全性并提高其交互性能具有非常重要的意义,如在人机协作场合,好的物理交互能更好地保证安全和效率。HADDADIN等[13]将机器人在非约束条件下通过碰撞仿真研究得出机器人对人的伤害程度主要与机器人质量、碰撞速度、接触刚度、碰撞方式等有关。

当机器人与人的物理交互接触超出安全阈值时会对彼此造成伤害。因此,在人机协作中实现机器人本体与人类用户发生物理接触时进行有效安全的交互十分重要。

针对机器人的安全性问题,ISO于2016年制定了安全标准ISO 10218,其中定义了4种类型的协作操作及相应的安全措施,包括安全级监控停止、手动牵引、速度和距离监控、功率及力限制[14]。在这4种安全措施约束下保证基本的人机物理交互的安全。4种安全措施前3项属于事前控制的内容,事前控制的关键在于信息的全面性和控制的实时性,这需要更多的传感器设备在一定程度上增加了系统的复杂性;第4项属于事后控制的内容,事后控制方法则期望在一定程度上减缓撞击的伤害程度,避免刚度过大造成二次伤害以确保机器人与人和环境之间的安全性[15]。显然4种安全措施在人机协作时并不能有效地提高人机协作的效率,因此需要在机器人本体与人接触时采取有效安全的物理交互策略。一方面使机器人与人和环境接触时保证安全,另一方面机器人能够及时地感知人类用户交互动作意图并做出响应。

本文针对人机协作任务中操作人员需要与机器人进行物理交互的场景。利用Simscape Multibody工具箱建立协作机器人Baxter与人进行物理交互的仿真环境。基于动力学模型实现碰撞检测并通过安全轨迹跟踪实现人机物理交互的安全和顺应性。仿真和实验结果表明结合Simscape Multibody搭建人机物理交互环境对研究和搭建机器人与人进行协作任务有重要的参考意义。

1 搭建Baxter机器人计算力矩控制器

本文利用Baxter机器人的URDF文件可以直接生成多体链式结构模块(Simscape)和三维可视化模型,如图1所示。

图1 Baxter机器人可视化模型

在Simulink多体结构链模块中包含机器人的运动学信息。模块中主要由机器人连杆部分和关节部分构成机器人的链式结构模型。其中关节(Revolute Joint)提供驱动(Actuation)选项,如力矩(Torque)驱动或运动驱动(Motion);并提供关节模拟传感器反馈接口,如位置(Position),速度(Velocity),驱动力矩(Actuator Torque)等接口。利用这些接口可以与控制算法进行结合,快速实现控制算法的搭建。

基于模型的控制提出利用机器人动力学模型来减少由于各种干扰因素引起的非线性问题,并保证一定的控制性能[13]。机器人逆动力学一般公式如下:

(1)

(2)

根据公式(2)计算力矩控制结构如图2所示。

图2 计算力矩控制结构

由上述,在Simulink环境下搭建的计算力矩控制系统如图3所示,控制系统主要由轨迹规划模块,计算力矩控制器模块和Baxter机器人模型模块三部分组成。其中计算力矩控制器由图2所示的计算力矩控制结构封装成子系统模块,并将期望的轨迹输入以及机器人模型中关节传感器接口的反馈信号作为该模块的输入,计算力矩控制器计算获得的力矩作为输出串联到由Simscape导出的Baxter机器人模型中的关节驱动接口中。

图3 计算力矩控制系统

2 Baxter机器人的碰撞检测与安全控制

如图4所示,为测试机器人运动中左臂与固定障碍物发生碰撞的数据关节力矩变化结果。

图4 Baxter碰撞测试左臂力矩变化

由图4中S0关节力矩峰值点①可以看出,机器人在实际力矩驱动下运动。大约在3.2 s时,机器人与固定不动的障碍物发生碰撞,关节力矩值逐渐上升,直到超过力矩限制后,关节力矩值迅速下降,进入安全级的运动停止——粗线部分。在安全级运动停止一段时间后机器人手臂再次与固定障碍物发生碰撞,如图4中关节力矩峰值点②和③,这对机器人的关节伤害较大,也有可能对环境造成二次伤害,在人机协作的场所不足以进行有效的交互。结果表明Baxter机器人本身的碰撞检测与安全反应策略,不足以高效应对安全交互与协作的场合。其碰撞检测方法是通过力矩限制实现的,安全反应策略为监控级的运动停止,即当检测到关节力矩超过阈值时停止运动,由此对机器人的碰撞检测和轨迹安全控制进行改进是必要的。

2.1 碰撞的动力学模型分析

一般的,机器人在正常工作状态时,其动力学方程为公式:

(3)

其中,c为谐波减速比;τm为电机输出扭矩;τf为引入的摩擦力,电机扭矩经谐波放大同时再由摩擦消耗部分扭矩后所得力矩便是关节处驱动连杆的力矩τj,在Baxter机器人中这部分由关节传感器直接提供。

τj=cτm-τf

(4)

在与环境发生碰撞或与人进行物理交互时,产生外力介入,这时直观的动力学公式变为公式(5)。

(5)

τtot=τj-τext

(6)

其中,τtot为关节总受力矩;τj为关节驱动力矩,由计算力矩控制器计算获得,在机器人本体中是由关节力矩传感器测量获得。因此外力矩为:

(7)

采用基于逆运动学模型的碰撞检测原理如图5所示。

图5 逆动力学模型碰撞检测原理

2.2 轨迹安全跟踪

由于期望的轨迹通常是时间的函数,针对关节空间的轨迹有q(t)∈Rn,在关节空间中的轨迹由离散的采样时间Δt进行采样,当前时刻可以描述为:ti=ti-1+Δt。如果对采样时间进行修改处理,那么实际上可以通过及时地改变轨迹采样来更正运动。即根据轨迹的时间属性,在当前时间机器人未检测到外力矩突变,此刻轨迹所需力矩与逆动力学计算力矩几乎相等时,机器人按照期望的轨迹运行;在检测到外力矩突变时,重新定义采样时间以达到轨迹更正的目的,将重新定义的采样时间设为:

ti=ti-1+fSΔt

(8)

其中,fS为采样时间戳的更正函数,通过重新定义采样时间,得到的当前关节空间的轨迹由q(ti)变为:

qd(ti)=q(tt-1+fSΔt)

(9)

其中,fS分段定义为:

(10)

(11)

其中,α为常数,用于调整轨迹变更的灵敏度。如图6所示,为Simulink环境搭建的基于逆动力学模型的碰撞检测与轨迹安全跟踪算法模块,其中的轨迹缩放模块由MATLAB-function编写,由上述轨迹更正函数代码化。

图6 碰撞检测与轨迹安全跟踪模块

2.3 物理碰撞模型建模

物理碰撞模型主要由包含Baxter机器人URDF生成的三维机器人物理模型和由Simscape Multibody建模工具导入的人体三维实体模型组成。将人体三维模型与Baxter机器人模型之间的碰撞接触过程构建为线性弹簧-阻尼系统,用于模拟物理交互过程。线性弹簧-阻尼器系统主要用于计算碰撞力,以及计算由碰撞力施加到Baxter机器人各关节的力矩。计算碰撞接触力公式为:

F=K×rP-sign(rP)×D×eV

(12)

其中,F为碰撞接触力;K为刚度系数;D为阻尼系数;rP为机器人末端与人体模型左臂手部几何实体的相对距离;eV为机器人末端速度;sign为符号函数,它的取值由rP决定。

(13)

通过计算的碰撞接触力F计算施加到Baxter机器人各关节的力矩公式为:

τc=J×F

(14)

其中,J为Baxter机器人根据运动时的当前关节构型计算与人体模型手部发生碰撞时的几何雅克比矩阵。

将此物理碰撞模型添加到计算力矩控制系统中的Baxter机器人模型中构成Baxter碰撞接触物理建模模块;计算力矩控制器部分保持不变;轨迹规划模块中添加碰撞检测与轨迹缩放模块构成期望轨迹与轨迹安全跟踪模块。这样构成最终的安全交互仿真系统,如图7所示。

图7 安全交互仿真系统

运行此安全交互仿真系统,在仿真可视化窗口获得的4个时间戳对应的机器人与人体模型之间的状态如图8所示。如图8a所示,Baxter机器人左臂还未与人发生碰撞时,机器人左臂正常运动;如图8b所示,当机器人与人手部发生碰撞后左臂离开停止运动;如图8c所示,当用手将Baxter机器人左臂进行反方向推动时,Baxter机器人左臂跟随改变做出位置调整,表现出一定的柔顺性能;如图8d所示,当人手不与Baxter机器人接触时,机器人恢复运动状态。这样在一定程度上可以保持人机协作时机器人与人和环境的物理交互安全性,也能根据人的交互意图调整机器人的运动。

(a)未碰撞 (b)碰撞时 (c)向移动反方向推 (d)不接触

如图9所示为一次仿真过程中记录下的部分仿真数据。机器人在运行过程中与障碍物发生碰撞后,接触力迅速增大,经过微小的震荡后保持稳定的接触力;同时外力矩发生突变,一定震荡之后也保持稳定的外力矩;碰撞后的时间采样保持为碰撞时的时间戳。

(a)碰撞力仿真数据

仿真结果表明,安全轨迹跟踪控制的表现比安全级监控运动停止要好很多,在运动停止之后不会反复地再次尝试运动,在一些人机协作场合可以采用此安全物理交互方法,如人机协作实现装配任务过程中,人类用户配合时可以不用担心在机器人的运动路径中临时放置物体,机器人也可以在人接触交互时做出动作调整。

3 实验验证

利用仿真的先验知识在实际环境中能够快速地实现同一任务。为了进一步验证Baxter机器人在安全轨迹跟踪控制下的物理安全交互能力,利用ROS Toolbox工具箱将Baxter机器人本体与实际障碍物和人加入到物理交互过程中。系统硬件连接图如图10所示。

图10 系统硬件连接

在MATLAB端运行安全交互算法,通过ROS Network将实际Baxter机器人端的关节运动状态作为反馈信息订阅到Simulink模型中,再通过Simulink安全交互算法将关节命令发布到Baxter机器人端的ROS节点上,驱动机器人运动实现安全的轨迹跟踪。

图11 Simulink物理安全交互控制系统

Baxter机器人未加入安全轨迹跟踪时与环境障碍物发生碰撞的运动现场图和加入安全轨迹跟踪控制进行物理交互的机器人运动现场图如图12所示。

(a)未加安全轨迹跟踪时的物理交互运动现场图

由图12a可知,未加安全轨迹跟踪控制时,Baxter机器人在运动中与环境中的障碍物发生碰撞并未及时的停止运动,而是继续运动以至于将障碍物推倒;由图12b所示,加入改进后的碰撞检测和安全控制后,Baxter机器人在运动过程中检测到碰撞发生后会及时停止,并且障碍物并未被推倒。这时候由人干预反向推动Baxter机器人的左臂,其左臂也随之做出调整,表现出很好的顺应性。

在两种情况下进行Baxter机器人物理交互过程中分别记录下的两种关节力矩变化如图13所示。

(a)未加安全轨迹跟踪左臂关节力矩变化

由图13a所示,机器人在3.3 s左右时与障碍物发生碰撞。以关节S0为例,由关节传感器采集到的关节力矩逐渐上升;在3.7 s左右关节力矩值呈现出下降的趋势,这是因为随着关节力矩的逐渐增大,障碍物在力的推动下发生运动并使其重心偏离平衡状态,最终导致障碍物被推倒;在4.2 s左右关节力矩表现出急剧下降的趋势;由于障碍物倒下后的惯性趋势使机器人与障碍物在4.5 s~6.3 s左右未发生碰撞,关节力矩值表现出一定的平稳性;在6.3 s之后机器人再次与倒下的障碍物发生碰撞使得关节力矩值呈现上升的趋势。这种类型的物理交互过程往往会对机器人或环境造成极大的伤害,在使用机器人的过程中应避免发生。由图13b可以看出,在加入改进算法——轨迹安全跟踪的情况下,机器人与障碍物在3.8 s左右发生碰撞。以关节S0为例,机器人关节力矩虽然上升,但并未将障碍物推倒;4.8 s左右人为干预机器人运动,在安全轨迹跟踪控制的情况下,由于机器人的关节柔性和人为干预力的非线性变化,关节力矩值表现出非线性的波动,但机器人表现出更好的顺应性。

安全轨迹跟踪控制在物理碰撞及人为干预时采样时间戳的变化如图14所示。可以看出,机器人在3.8 s左右与障碍物发生了碰撞后,轨迹采样时间戳保持不变,因此机器人处于停止运动的状态中;4.8 s之后,人为干预反向推动机器人运动,轨迹采样时间戳反向采样,使得机器人方向运动做出调整。在5.3 s之后使机器人保持当前位置;在6.1 s之后撤回人对机器人的干预,轨迹采样时间恢复使得机器人正常运动。

图14 人为干预时采样时间戳

4 结束语

机器人安全物理交互是开展机器人对复杂动态环境和任务的主动感知、理解与自主学习等相关研究的一部分。使机器人能实时理解人的行为意图,实现机器人融入人的正常生产、生活环境以及与人合作交互,具备人类移动能力与灵巧作业以及智能决策能力,是解决机器人与人、环境共融的主要途径。本文提出在进行机器人的物理安全交互研究时,通过Simscape工具箱在仿真环境中构建物理交互模型,并设计安全交互控制算法进行物理交互仿真研究,最后在仿真验证的基础上通过ROS Toolbox工具箱进行算法部署、测试验证。实验结果表明基于仿真环境实现机器人与人进行物理安全交互研究的可行性,利用ROS Toolbox可以在实际环境中快速实现相同任务,大大提高研究开发效率。

猜你喜欢
人机障碍物力矩
人机“翻译员”
从内到外,看懂无人机
高低翻越
赶飞机
月亮为什么会有圆缺
发动机阻力矩计算和起动机介绍
“人机大战”人类智慧遭遇强敌
未来深空探测中的人机联合探测
弹性负载力矩下舵偏转角度的测量方法
总装配过程中螺纹锁紧的力矩精准控制和管理方法