基于CoppeliaSim的空间环境腔体式气动软体臂仿真*

2022-01-26 05:39赵怡铭王树兵
飞控与探测 2021年6期

赵怡铭,王树兵,石 凯,李 军

(哈尔滨工业大学 机电工程学院·哈尔滨·150001)

0 引 言

传统类型的机器人具有较高的精确度,更适用于专业领域的精确化作业,但是复杂条件下例如地形勘探、保健医疗等特殊类型的工作,存在适应度较差、不够灵活、自由度较低的缺点。而软体机器人刚度低、柔性大、具有较多的自由度,并且相较于刚体类型的机器人,在与目标物接触时无需任何传感器即可实现避免刚性冲击。

本文论述了一种气压驱动软体机械臂,内部采用三腔驱动结构,并增加限制层限制腔体径向膨胀,加压时产生轴向伸长和弯曲,长1.2~1.5m,椭圆横截面长短轴0.15m×0.11m。4条软体机械臂组成一个抓抱系统,被抓抱的目标物具有一定惯量,并可以实现无摩擦匀速自转,通过对软体臂协同控制完成对目标物的抓抱任务。目前,针对软体机器人的有限元仿真研究,计算复杂,仿真周期长,难以满足控制上、轨迹规划与其他物体交互动力学特性的快速性要求,因此本文提出了一种新的用于空间环境腔体式气动软体臂的仿真方法。

软体机械臂受自身柔性材料非线性变化影响,在运动中容易受环境影响而产生被动变形,使得其建模与控制问题尤为复杂。柔软的材料有弹性,可以弯曲、扭转、拉伸、压缩、起皱等,这样的运动可以把软体机器人看作具有无限的自由度,这使得对软体机器人的控制具有非常大的挑战。

目前,关于软体机械臂的建模,基本采用连续刚性体方程对软体机器人的运动进行描述。本文将利用CoppeliaSim和Python建立软体机械臂的联合仿真模型,并对仿真结果进行分析。较长的软体臂可以近似为多个通过铰接关节串联连接的刚性短臂的组合,通过控制关节旋转来模拟软体臂的弯曲动作。每个关节的特性包括一个回转刚度特性和一个回转速度阻尼特性,该特性将通过有限元分析和实验得到。利用CoppeliaSim建立软体臂与被抓抱物运动学和动力学模型,在Python远程客户端建立软体臂气动系统、容腔特性、关节运动、软体臂力学特性和控制系统的模型,从而可以通过联合仿真在太空环境下实现软体臂对目标物接近、抓抱、消旋等动作的模拟,并能够实时展现软体臂抓抱系统工作空间、抓抱力矩、气腔压力,以及软体臂和被抓物之间的动力学交互过程。

1 仿真模型的建立

机器人仿真可以在无实物的情况下对机器人的结构、运动控制、轨迹规划等原理层面设计的合理性进行验证,避免了直接实物试验时由于设计缺陷造成的损失,是一种低成本且快速的验证手段。本文针对软体臂的仿真采用CoppeliaSim和Python联合仿真的方式,CoppeliaSim是一个开源的机器人及模拟自动化软件平台,提供了一个统一的框架,它结合了许多强大的内部和外部库,这些库通常可用于机器人模拟,并且具有多种应用程序接口(Application Programming Interface,API),可以轻易地整合机器人的各项功能,本文采用Python从外部控制仿真过程。在这种模式下,CoppeliaSim作为服务端,负责输出仿真的实时数据,Python程序作为客户端,接收数据后进行处理并发送控制指令给服务端,构成仿真循环,仿真环步长设为1ms。

仿真架构如图1所示。

图1 仿真架构Fig.1 Simulation architecture

客户端模块包含4个子模块:

1)压力比例阀模块,Python客户端设定压力信号与容腔特性返回的压力信号对比产生的差值控制阀芯位移,进而控制进出阀口气腔的流量。

2)软体臂容腔特性模块,接收来自Coppelia-Sim环境的关节转角信息,并与压力比例阀模块共同作用构成气动系统模型,产生一个供软体臂力学特性模块使用的当前压力。

3)关节运动参数模型,接收来自服务器模块的关节转角信息,与上一个仿真步中的关节转角信息进行比较,数据处理后得到关节的转速。

4)软体臂力学特性模块,接收关节转角和关节转速信息,根据有限元仿真和实验分析得到的刚度和阻尼计算出每个关节所应分配的力矩,将关节力矩分配指令发送给CoppeliaSim环境,并作为后者的输入信号。

CoppeliaSim环境接收来自客户端的关节力矩指令,根据指令设定每个关节的输出力矩,利用物理引擎进行一个仿真步的计算,关节驱动每一节软体支段旋转,软体臂逐渐弯曲靠近目标物、碰撞、施加力矩并消旋,在CoppeliaSim中完成运动学及动力学仿真计算,每一个仿真步把仿真模型的关节转角输出给客户端。

1.1 CoppeliaSim模型

1.1.1 模型搭建

本软体臂采用气压驱动,三分内腔的结构保证了软体臂拥有足够的自由度。同时,考虑到消旋时受到侧向力的情况,将软体臂的截面设计为椭圆形,以便提高软体臂的侧向刚度。软体臂支段模型及腔体截面如图2所示。

图2 软体臂截面及支段模型Fig.2 Section and segment model of soft arm

CoppeliaSim有两种搭建仿真模型的方式:一是利用内部提供的形状模型和关节模型组合出仿真模型;二是从外部将三维模型导入软件中建立仿真模型。由于内部提供的模型仅为一些平面、圆盘、圆柱、球体及长方体等简单的形状,难以满足软体臂空腔的结构特点,因此采用外部导入三维模型的方式。

在建立三维模型时将每根臂等分成多段,将每段刚性臂的同时弯曲等效成软体臂的弯曲,段数越多对软体臂的模拟越真实。但是,更多的分段也意味着计算量的增加,影响了仿真效率,此处每根软体臂分为15段。

本文中研究的用于抓抱动作的软体臂共有4条,呈对角分布,其倾斜角度可自由调整。目标物为球状的多面体,其在一定的速度下转动,并且不受到任何外力作用。软体臂具有两种工作状态,即向外张开和向内收拢。进行抓抱动作时,软体臂向内收拢,触碰到目标物产生的摩擦力使其消旋直至停止转动。在CoppeliaSim中建立的模型如图3所示。

图3 CoppeliaSim仿真模型Fig.3 CoppeliaSim simulation model

1.1.2 形状属性

实际上,外部文件导入的三维模型是一堆三角形组合,需要从这些三角形中合适的位置提取出圆柱体,然后利用圆柱体去定位关节位置。考虑到导入后的模型由于形状特殊,其自身坐标系有可能发生不同程度的旋转,因此最好的办法是从中间提取出CoppeliaSim常用的原始形状,既可用于后面的动力学仿真,也可以比较好地约束后续的坐标位置。

导入的外部文件是网格属性,实际上仅仅是一层薄壳,不具备动力学特征,而且如果直接用导入模型的话由于细节太丰富,极大地影响了仿真速度,一般都会将其转化成CoppeliaSim的凸面体结构。但是由于凸面体美观性差,因此常常将凸面体模型的可视化设置为不可见,将转换前导入的网格属性模型设为可见,作为贴图使用。

除此之外,形状属性中也需要设定形状的位置、质量、转动惯量、摩擦系数以及碰撞特性等参数,从而准确地复现仿真对象的动力学属性,具体数值在本文2.1节中列出。

1.1.3 关节属性

关节可以模拟驱动电机,能够实现速度控制、位置控制和力控制等。因为在软体臂的应用中,是通过供给压缩空气使软体臂产生弯曲力矩,速度和位置为驱动力矩的结果,因此此处采用力控制。关节动作的力矩通过Python客户端控制。

1.2 Python客户端模型

1.2.1 气动系统模型

在该软体臂控制系统中,主要为通过压力比例阀控制软体臂内3个气腔的恒定压力来实现软体臂的弯曲方向和角度,从而实现指定的抓抱动作,原理图如图4所示。例如在压力比例阀控制气腔1内充入压缩气体而气腔2和气腔3内通大气时,软体臂向内收拢;反之压力比例阀控制气腔2和气腔3内充入等压气体而气腔1通大气时,软体臂向外张开。该气动系统模型主要包括压力比例阀、管路节流以及气腔内充气过程。

图4 气动系统原理图Fig.4 Schematic diagram of pneumatic system

将压力比例阀的特性分别考虑为阀芯力平衡方程和阀口流量方程。根据牛顿第二定律可得阀芯的力平衡方程

mx

″+

bx

′+

kx

pA

(1)

式中,

m

为阀芯质量;

b

为阀芯与阀套之间的黏滞阻力系数;

k

为阀芯反馈弹簧刚度;Δ

p

为阀口压差;

A

为阀芯面积。

由此可得,阀芯位移与压差之间的传递函数关系为二阶振荡环节

(2)

式中,

Y

(

s

)为式(1)中阀芯位移

x

拉氏变换的结果;

U

(

s

)为式(1)中阀口压差Δ

p

拉氏变换的结果。

通过阀口的流量使用Sanville流量公式

(3)

(4)

1.2.2 容腔特性模型

软体臂会随着气体压力和转角的变化发生形变,使气体容腔的容积发生变化,进而影响气动系统工作的平衡点。因此,需要建立压力、转角转换容积的数学模型。在这里,转角指的是软体臂转角,即各关节的转角之和

θ

=

θ

+

θ

+…+

θ

(5)

式中,

θ

为软体臂总的转角;

θ

为每段臂的关节转角,

i

=1,2,…,14。将软体臂内气体状态变化的过程简化为等温过程,由理想气体状态方程

PV

=

mRT

求微分可得

(6)

式中,

P

为气体压强;

V

为气体体积;

m

为气体的物质的量,为常数;

T

为体系温度,此处取为室温25℃;

R

为气体常量。软体臂气腔的体积、角度和压力存在关系:

V

=

V

(

θ

,

P

),那么

(7)

(8)

由式(7)和式(8)得

(9)

(10)

1.2.3 关节运动参数模型

运动参数计算:CoppeliaSim仿真时,客户端输出为当前转角,可以根据每步长内转角的变化求得关节的转速。直接对角度微分可以得到角速度,再微分得到角加速度。

1.2.4 软体臂力学特性模块

关节被描述成一个弹簧和阻尼共同作用的模型,是关节施加力矩与软体臂内气体压力、转角及转速之间关系的模型。软体臂在各驱动腔压力的作用下,克服硅胶基体的弹性力矩,发生弯曲运动,力矩计算模块如下

(11)

式中,

M

为软体臂输出力矩;

M

(

P

)为软体机器人的侧驱动腔气体压力对其中心线产生的弯曲力矩;

K

(

P

)为软体臂硅胶基体对其中心线产生的转动刚度;

c

为软体臂硅胶基体的阻尼系数。

在不同工作压力条件下,对制作的软体臂的变形能力和负载能力等驱动特性进行了测试、分析与对比。首先,对软体臂在无负载情况下自由弯曲半径与工作气压之间的关系进行测试,以分析表征软体臂的变形运动能力。其次,对软体臂在固定位移情况下输出力与工作压力的关系进行测试,以分析确定不同软体臂设计参数和工作压力与软体臂输出力之间的关系。分析软体臂的静态特性时,将每根软体臂等分成多段通过铰接串联的短臂,将每段短臂的同时弯曲等效成软体臂的弯曲,将每段短的弹簧刚度特性和阻尼特性转换到铰接点。

图5所示为惯量-弹簧-阻尼系统,力矩

M

(

t

)为负载力矩

M

和气压产生的力矩

M

的合力矩;转角

θ

(

t

)为输出。描述它的微分方程为

图5 软体臂受力简化图Fig.5 Simplified stress diagram of soft arm

(12)

其中,

J

为软体臂转动惯量;

c

为软体臂阻尼系数;

k

为软体臂转动刚度;

θ

(

t

)为软体臂转动角度。各项参数对应的具体数值是在做出软体臂实物后通过实验测量获得的。

该系统的传递函数为

(13)

(14)

拉氏反变换得

在稳定状态下,不考虑阻尼情况。软体臂在各驱动腔压力的作用下,克服硅胶基体的弹性力矩,发生弯曲运动,根据力矩平衡,得到相同气压下软体臂充气自由弯曲状态和负载状态的弯曲角度,如图6所示。

(a)无负载

在已知负载

M

下,可通过式(15)解出不同气压下的气体施加给软体臂力矩

M

和弹簧刚度

K

,如图7所示。

图7 软体臂弹簧刚度和转矩Fig.7 Spring stiffness and torque of soft arm

(15)

测量阻尼系数时,在软体臂下方适当位置放置2块气浮块,使软体臂在水平方向上能够实现无摩擦的弯曲,以抵消重力对软体臂弯曲性能和承载能力的影响。每次实验通入不同气压,将软体臂末端拉到指定位置,松开后记录软体臂摆动过程的角度曲线。通过曲线得出阻尼振荡周期,并根据测出的刚度

K

(

P

)和转动惯量求解出阻尼系数

ζ

,如图8所示。

图8 软体臂阻尼振荡周期和阻尼系数Fig.8 Oscillation period and damping coefficient of soft arm

2 CoppeliaSim仿真结果分析

2.1 仿真结果

在CoppeliaSim中需要设置目标物和臂的形状属性等参数,主要包括质量、转动惯量和摩擦系数等,以及模拟真空环境下的失重条件等,具体数值见表1。根据上述建立的模型,仿真过程中典型状态软体臂和目标物状态如图9所示,图9(a)为模型的初始状态,即此时刻还没有开始动作;图9(b)为臂动作之后还未接触目标物的时刻;图9(c)为臂抓紧目标物使其停止的时刻。

表1 软体臂仿真参数表Tab.1 Simulation parameter table of soft arm

(a)模型初始状态

目标物速度曲线和角动量消减率曲线如图10所示(角动量消减率负值表示方向)。在速度曲线中,消旋接触的一瞬间具有速度突变,对应角动量消减率曲线中峰值那一点,是因为臂在接触目标物的瞬间会有一定的冲击,造成目标物的转速瞬时衰减,如果增大目标物的转动惯量,将目标物和臂两者的转动惯量差距加大,则突变会减小,这是符合实际情况的。

图10 目标物速度曲线和角动量消减率曲线Fig.10 Target velocity curve and angular momentum reduction rate curve

在角动量消减率曲线中可以看到,在末端有一个反向的值,这是因为目标物为多面体,当臂恰好压到斜向的表面时,会有一个扭转力矩,因此可能会存在某一位置是加速旋转而不是消旋。

2.2 摩擦系数的影响

从理论上来说,如果改变摩擦系数,会影响消旋过程中的消旋力,使消旋时间和角动量消减率发生改变,设置2个对照组摩擦系数分别为0.25和0.5,对比三者目标物的旋转速度曲线,如图11所示。仿真结果显示,在相同初始速度时,随着摩擦系数的增大,消旋时间减小,影响与理论趋势一致。

图11 不同摩擦系数速度曲线对比Fig.11 Comparison of speed curves with different friction coefficients

2.3 目标物转动惯量的影响

将转动变量增大为238kg·m和减小为128kg·m作为2个对照组,对比三者目标物的旋转速度曲线,如图12所示,从图12中可以看出,转动惯量越大,消旋时间越长,接触瞬间的速度值突变,随着转动惯量的增大,速度突变值也是减小的,符合实际。

图12 不同转动惯量下速度曲线对比Fig.12 Comparison of velocity curves under different moment of inertia

2.4 充气压力的影响

这里分别在充气压力为

P

=0.7bar、

P

=0.4bar和

P

=0.9bar时进行比较,对比三者目标物的旋转速度曲线,如图13所示。

图13 不同充气压力下速度曲线对比Fig.13 Comparison of velocity curves under different inflation pressures

从仿真结果来看,并不是理想的充气压力越大,被抓物速度降为0的时间越短,并且随着充气压力的改变,曲线形状也发生了很大程度的变化。这是因为当充气压力改变时,对应的每根关节的力矩都会发生相应变化,由此导致每根关节的速度改变,从而使软体臂的抓抱形态发生变化。首先,由目标物速度变化的起点可以看出,充气压力越大起点越早,这是因为力矩增大导致关节转速增大造成的。由于抓抱形态的变化,可能会导致消旋效果变好或者变坏,这是很难预测的,但是可以知道的是,每次臂的运动都是从末端开始弯曲的,并且随着充气压力的增大,末端弯曲的速度也越快,卷曲的状态就越明显。图14展示了在不同充气压力下的接触初始状态。

(a)0.4bar

3 结 论

本文介绍了一种腔体式气动软体臂的仿真方法,软体臂结构采用三分内腔的形式,通过充入不同的气压使其能够多自由度运动。利用CoppeliaSim和Python建立联合仿真模型,在CoppeliaSim端建立软体臂的运动学和动力学模型,在Python端建立气动系统、软体臂容腔变形及关节力矩计算等数学模型来复现软体臂的真实动作,能够快速、直观展示软体臂抓抱动作效果,弥补了有限元仿真周期长的不足,通过对实时显示和记录的数据进行分析,验证了该软体臂系统的抓抱性能。但是实际的软体臂材料为超弹性体硅胶,对其使用线性简化模型会产生一定误差,因此还需对材料特性进一步研究并加以修正。