张 静,2, 徐 亮, 刘理想, 刘满禄,2, 张 华
(1.西南科技大学 信息工程学院,四川 绵阳 621010; 2.中国科学技术大学 信息科学技术学院,安徽 合肥 230026)
目前,交互系统在工业设计与生产、建筑景观模拟及远程医疗等多个领域得到了广泛应用,其控制技术既是交互系统的核心,也是当前研究热点之一[1-2]。在现有的交互系统中,多以周期采样方式对系统的交互过程进行采样[3]。在多目标交互情况下,需要占用大量的节点资源,也增加了系统的计算量。针对此问题,李模刚提出了基于传统PID算法交互控制系统,虽然在一定程度上能够实现对多目标交互控制,但系统仅限于仿真且控制器参数难以整定[4]。李婷婷等人提出了 Unity3D模型交互系统,但系统的控制方式为交互查询控制[5],在非交互状态处理器始终处于查询操作,浪费运算效率。于宁波等人提出了基于数据共享的交互控制系统,虽然在一定程度上解决了系统资源占用问题,但交互端采用降低采样频率的方式完成系统交互[6]。李宏策等人提出了基于RS232交互控制系统,虽然开发简便,但主要针对单目标,并没有考虑多目标交互情况[7]。
基于此,本文提出了基于事件触发的分布式控制方案,当系统有交互发生时,视为一次事件触发,交互对象依据自身节点的信息向控制系统发送交互过程中的采样值,每次的触发事件采用分布式处理,以此节约系统的节点资源。
虚拟交互系统设计主要包括3个部分:交互接口管理单元、 交互控制单元、渲染与可视化单元。其中,交互接口管理单元负责接收操作者在操作交互设备过程中通过设备发送的指令信息;交互控制单元分为运动控制子块和碰撞检测子块。运动控制子块对交互接口管理单元的指令进行解析,并对虚拟空间中虚拟从端的运动位置进行控制;碰撞检测子块会实时检测代理点与物体干涉情况,从而实现对虚拟交互过程的判断。渲染与可视化单元负责将交互状况进行显示。
交互系统的交互过程如下:交互系统启动后,操作者通过操作交互Phantom Omni设备控制虚拟系统中的代理点与目标物体产生交互作用。根据交互作用过程的位置关系,采集交互对象的位置姿态确定是否发生碰撞。若产生碰撞,则触发对应交互子系统,并根据碰撞数据计算碰撞的力觉,一方面依据节点信息形成约束数据并发送至交互接口管理单元,再形成实时约束力觉并在Phantom Omni设备完成再现,操作者经由交互设备感知虚拟力觉;另一方面,对交互过代理点位置和交互状态进行可视化显示,具体交互过程如图1所示。
图1 虚拟系统交互过程
主端设备是操作者获取从端交互信息的重要设备。根据虚拟系统的交互参数,通过其动力学数学模型,可获取在虚拟系统中的力觉感知。对于n自由度的机械臂忽略设备关节摩擦力,动力模型为[8]
(1)
由于感知力觉是靠电机力矩完成,对式(1)化简:
(2)
(3)
此时,操作主端有交互力觉反馈情况下为
(4)
末端加速度与雅克比矩阵的二阶微分方程满足:
(5)
在笛卡尔空间取末端的位置交互期望位置与代理点实际位置的误差为ed,则有
ed=xd-x
(6)
(7)
(8)
(9)
在交互状态稳定时,仅考虑虚拟代理点的位置速度与作用力关系,得位置与末端力觉的控制率为
泉州属于亚热带海洋性季风气候,多年平均水资源总量达96.78亿m3。但泉州的水资源形势却不容乐观:一是多年人均水资源量仅为1 158 m3,是全国、全省平均水平的1/2和1/3。沿海片区更是严重缺水,石狮、晋江、惠安的人均水资源量仅有102~389 m3,属于绝对贫水区。二是时空降雨分布不均,雨季集中在4—9月份,且70%的水资源量分布在人口较少、经济水平较低的山区。三是蓄水工程偏少,拦蓄调节能力低,出境外流量大,多年平均外流水资源量达34.32亿m3,占全市水资源总量的35.5%。泉州实际可利用的水资源量十分有限,用水紧缺形势日趋明显。
(10)
基于事件触发的分布式触发结构如图2所示。分布式子系统的信号均由操作者给出,每个子系统交互状况由节点采样器进行信息采集,判断是否满足事件触发器的触发条件。若满足条件则启动触发器,子系统的控制器受到触发器控制,子系统交互状态值将送至控制器;否则,事件触发器不触发,舍弃状态的采样值。控制结构图中触发器向控制器传送状态值的虚线箭头表示为非周期传送。
图2 分布式触发结构
忽略该系统信息传递的时延和带宽等因素的影响,交互子系统的控制器受到事件发生器的控制。设系采样节点的采样时间ΔT,设系统状态采样时间序列为SS,满足
(11)
第i子系统有事件发生时刻为tk时,向执行器发送控制信息时,事件器触发时间序列为Et,则有
Et={t1t2t3…tk…}
(12)
对于单个子系统而言,取tk和tk+1时的状态分别为x(tk)和x(tk+1),状态偏差元为ei(t),满足
ei(t)=x(tk+1)-x(tk),t∈(tk,tk+1]
(13)
设整个系统在tk时的状态阵为x(t)对称正定阵Λ,调整因子为δ,由多个单状态偏差元ei(t)组成的状态偏差阵为e(t),为保证整个交互系统的稳定[9],则满足
eT(t)Λe(t)>δxT(t)Λx(t),t∈(tk,tk+1]
(14)
取Λ为单位阵,采用欧式范数对式(14)进行处理,则有
(15)
(16)
系统每次触发器占用的时间为常数ci,分布式事件触发条件满足[10]
|ei(t)|>|xi(t)|+ci
(17)
第i个系统的触发事件间隔满足
(18)
因此,每个交互子系统只有在自己的事件时刻tk和邻居节点的触发时刻同时发生时才能被触发。然后再根据自己和邻居的测量状态来共同更新控制器,即在时间(tk,tk+1]的间隔内,只有下一个触发时刻tk+1到来或是至少有一个邻居被触发才会被更新。因此,控制器的更新速率可以大幅度减少,随之子系统交互的节点量也将减少。
实验平台使用的是 SensAble科技公司的Phantom Omni多自由度桌面机械臂设备[11-12]。计算机硬件环境为CPU酷睿i5-4590,3.30 GHz,显卡为GTX960-4 GB。将力反馈设备Phantom Omni与计算机相连接,采用Visual Studio 2010与OpenGL图形库构建虚拟仿真环境,整个实体交互系统如图3所示。
图3 实体交互系统
虚拟交互目标为3ds MAX绘制,包括水壶、球体和环柱体,交互界面如图4所示。图4中左上角小球体为虚拟代理点A,图中的每个待交互模型均为一个子交互节点,并视为不同的交互子系统。
图4 交互界面
实验过程中,Phantom Omni设备交互作用最大阈值力设置为Fl=3.3 N,交互控制器选取M=1。由于力觉是由Phantom Omni设备通过电机堵转形成,交互接口管理单元通信频率有限,因此节点取采样节点的时间ΔT=2 ms,为区别3个子系统交互效果,虚拟模型“水壶”、“球体”和“环柱体”的刚性系数K1,K2,K3分别取100 N/m、180 N/m和250 N/m,力觉等效计算刷新频率为1 kHz。当虚拟代理点每次与目标物发生作用时,满足事件触发条件情况予以触发,实现系统的交互,并将交互力反馈至Phantom Omni设备。实验由一名受过该虚拟交互系统操作培训的人员完成。实验过程中,交互对象由操作者随机选取,完成交互操作后,交互的力觉数据从有交互数据时刻为0开始绘制,再现力觉的大小由设备自带转换函数进行转换,并在设备上实现再现,由操作者感知,交互实验结果如图5所示。
图5 交互作用力
由图5可以看出,在有交互力觉的3800 ms内,均有力觉反馈至交互设备,表明交互系统得到了触发,交互系统是能够实现力觉交互功能的。在图5中的在第0~1100 ms内,代理点主要与球体交互,与球体交互力在1 N左右;在第1100~2700 ms内,主要与水壶交互,交互力大小维持在0.5 N左右;在此后2700~3800 ms内,主要与环柱体交互,交互力在1.5 N左右,在整个交互过程中,操作者需要保持较为平稳的操作。
在图5交互过程中,会出现大于较大的力觉峰值,需要说明的是,交互对象的刚性系数不一样,主导交互力觉是不同的。最主要的原因是由操作者控制代理点与目标物体交互时的操作不稳定所致。就交互状态而言,在事件触发机制的情况下,尽管每次选择的交互对象较为随机,但子系统均能够有效触发,系统每次有交互发生时,交互对象能够依据自身节点信息向控制系统发送交互过程中的采样值,实现力觉交互,减少系统的节点资源占用情况,满足交互控制需求。
本文重点研究了在多目标交互系统中交互节点资源受限的问题,提出了基于事件触发的分布式控制方案。设计了多目标交互系统,并进行了实验。在事件触发机制的情况下,系统每次有交互发生时,交互对象依据自身节点信息向控制系统发送交互过程中的采样值,实现事件触发与目标交互,并将交互的力反馈至Phantom Omni设备,由操作者进行感知。
实验结果表明,该控制方案所设计的系统能够分布式事件出发的形式满足交互需求,符合多目标交互控制需求,达到节约系统的节点资源的目的。设计的控制系统可行、有效。另外该系统结构简单,为同类工程实现提供了参考。下一步的研究工作应提高系统在交互过程的抗干扰能力,减少人为扰动,提高系统的交互逼真能力。