“蛟龙号”机械手水下作业的交互仿真设计

2018-11-01 09:15
船海工程 2018年5期
关键词:位姿执行器运动学

(大连海事大学 航海动态仿真和控制交通行业重点实验室,辽宁 大连 116026)

水下环境具有不可预知性,操作人员所进行的水下作业是一种复杂且强度极高的过程,须对其进行大量的综合训练来保证作业效率及安全性[1]。目前,对从事相关深潜工作人员的水下作业训练大多采用实物进行,存在着培训成本高、效率低且风险大等问题。随着虚拟现实技术的蓬勃发展,设计一套模拟机械手水下作业过程的仿真系统可使操作人员在具有一定沉浸感的海底模拟视景系统中进行大量虚拟训练积累相关经验,避开深海环境给操作训练带来的风险,提高培训效率进而促进深潜技术的发展[2]。

目前,国内外主流的深潜模拟器厂商和科研机构,都有比较成熟的全功能大型载人深潜操纵训练模拟器,该模拟器可以用于操作人员的培训[3-5],但是其本身存在2个问题,第一,将载人潜水器的布放回收、水下航行作为重点模拟对象,而对其机械手水下作业过程涉及较少;第二,成本高且进行培训和练习的时间、场地受限。针对第一个问题,将我国第一台载人深潜器“蛟龙号”作为仿真对象,开发具有高度沉浸感的“蛟龙号”水下作业机械手的三维交互仿真平台,重点对其搭载机械手的水下作业过程进行模拟。针对第二个问题,在仿真系统的设计时,充分利用Unity3D引擎多平台发布的特点,使其在Windows、iPhone、Android等多个主流平台上运行,既可降低硬件设备的成本又可以作为桌面版的仿真平台提高培训效率。

1 系统开发流程

基于模块化的程序设计思想,设计3个模块:①三维建模模块;②运动学建模与求解模块;③人机交互模块。仿真系统的开发流程见图1。

根据载人潜水器的实际尺寸采用3D Studio Max创建“蛟龙号”及其搭载机械手的三维模型,利用PhotoShop对处理好的结构图片进行贴图,完成材质球的制作[6];对需要进行人机交互的结构进行分离,使其成为独立的模型,而对不需要进行人机交互的模型进行三角面优化,同时进行渲染烘焙生成最终的纹理贴图。

运动学建模与求解模块时主要利用D-H法建立机械手的运动学模型并求出正、逆运动学解,然后在Visual Studio开发平台基于MFC对话框调用OpenGL图形库搭建机械手运动学解算平台并为“蛟龙号”水下作业仿真系统提供运动学解算接口。

在人机交互模块,将三维模型保存为.FBX格式文件并导入到Unity3D引擎中,添加摄像机、灯光以及碰撞检测的设置,调用运动学解算接口实现机械手水下作业过程的仿真;借助GUI组件在主界面上显示机械手各个关节及其运动的操作键实现交互功能,并利用多视角功能及Shader编程渲染出海底雾效增强环境真实感;最终通过Unity3D的跨平台功能将其发布在多平台上,实现“蛟龙号”水下作业仿真系统的跨平台使用。

2 仿真系统的关键技术

2.1 机械手的运动学建模

“蛟龙号”搭载的机械手是水下作业过程中的关键部分,该机械手由6个旋转关节组成,其中3个自由度描述机械手的末端位置,另外3个自由度用来描述机械手的末端姿态。根据“蛟龙号”机械手的结构特点,利用D-H法[7]在每个关节处建立直角坐标系,将其基座定义为0坐标系,得到连杆坐标系见图2。

根据各关节坐标系确定D-H参数见表1。

表1中参数定义如下[8]。

表1 机械手的D-H参数

θi为沿Zi轴从Xi-1轴旋转到Xi轴的角度。

∂i-1为绕Xi-1轴从Zi-1轴旋转到Zi轴的角度。

ai-1为沿Xi-1轴从Zi-1轴移动到Zi轴的距离。

di为沿Zi轴从Xi-1轴移动到Xi轴的距离。

2.2 机械手的运动学求解

2.2.1 运动学正解

正运动学的求解是根据关节变量θi(i=1,2,,6)求末端执行器相对于参考坐标系位姿的过程。将相邻连杆间的变换矩阵通式[9]以及由表(1)中的D-H参数得到的各连杆变换矩阵相乘,求出关节末端相对于基坐标系的变换矩阵,即末端执行器相对于基坐标系的位置。

(1)

式中:

nx=s6(c4s1-s4c1c23)-c6(s5c1s23-c5(s1s4+c4c1c23));ny=-c6(s5s1s23+c5(c1s4-c4c23s1))-s6(c1c4+s4c23s1);nz=s4s6s23-c6(s5c23+c4c5s23);ox=s6(s5c1s23-c5(s1s4+c4c1c23))+c6(c4s1-s4c1c23);oy=s6(s5s1s23+c5(c1s4-c4c23s1))-c6(c1c4+s4c23s1);oz=s6(s5c23+c4c5s23)+c6s4s23;ax=-c5c1s23-s5(s1s4+c4c1c23);ay=s5(c1s4-c4c23s1)-c5s1s23;az=c4s5s23-c5c23;px=a1c1+a3c1c23-d4c1s23+a2c1c2;py=a1s1+a3c23s1-d4s1s23+a2c2s1;pz=-a2s2-a3s23-d4c23。

其中:s23=s2c3+c2s3;c23=c2c3-s2s3。

将θ1=90°,θ2=-90°,θ3=90°,θ4=0°,θ5=0°,θ6=0°代入式(1)中,计算得到末端位姿为

(2)

由式(2)可见,末端执行器的位姿与图2所示的位姿一致,证明运动学求解正确。

2.2.2 运动学逆解

在实际应用中,上述过程的逆过程非常实用,即已知机器臂末端执行器的位姿,求解各关节转角。机器人逆运动学求解常用解析法,解析解的存在性与机械臂的结构有关。3个相邻的轴相交于一点的6自由度操作臂,必定存在解析解。显然,“蛟龙号”机械手的连杆坐标系{4},{5},{6}原点相交于一点,可求出解析解。将式(2)中的2端分别乘上对应的逆矩阵并令等式2端左右相等,求得各关节转角如下。[10]

(0T1)-10T6=1T22T33T44T55T6

(0T2)-10T6=2T33T44T55T6

(0T3)-10T6=3T44T55T6

(0T4)-10T6=4T55T6

(0T5)-10T6=5T6

逆运动学求解过程中涉及反三角函数的求解问题,所以要使机械手末端执行器到达空间中的任意位姿,各关节存在多种转角情况。然而由于机械手自身结构以及关节旋转角度范围会限制到各关节转角,有些解在实际过程中是不存在的,因此从满足转角限制的关节角中选择从初始位姿到目标位姿的运动过程中代价最小的解作为最优解。

2.2.3 运动学解验证与解算平台的搭建

运动学解的验证与解算均涉及较多的机器人学求解问题,采用VC++作为编程语言。

在运动学解的验证方面,利用正运动学算法,根据任意选取的几组关节转角可以得到相应的末端位姿矩阵;根据得到的机械手末端姿态矩阵以及逆运动学求解算法,反解出各个位姿所对应的八组关节角;根据最优关节角的选取原则[11],将最优解与初始选取的关节角进行对比并分析,在误差允许的情况下,验证逆运动学解的正确性。

以初始状态的关节角θ=[θ1,θ2,θ3,θ4,θ5,θ6] =[90°,-90°,90°,0°,0°,0°]为例,正、逆运动学求解结果见图3。其中两组解为可行解。在误差允许的情况下,根据最优关节角的选取原则,对比最优解与初始关节角,得到的第一组解与初始输入角度一致。由此,验证了运动学求解算法的正确性,可将该仿真平台作为“蛟龙号”水下作业仿真系统的运动学解算接口。

2.3 仿真系统的数据接口

由于运动学解算软件使用MFC开发,而机械手水下作业仿真系统的开发是采用Unity3D三维引擎,二者之间不能直接通信,因此借助HTML文件解决运动学解算软件中MFC应用程序接口与Unity3D程序的对接问题,实现将“蛟龙号”机械手三维仿真系统与运动学解算模块相结合[12]。运动学解算的应用程序接口和“蛟龙号”水下作业机械手仿真系统间的函数关系见图4。

3 系统的设计与实现

利用3DMax场景建模工具建立“蛟龙号”三维模型,在Unity3D场景开发平台下,基于用户体验设计开发人机交互界面,调用三维视景库及机械手的运动学模型,驱动机械手在场景中运动与交互,建立载人潜水器水下作业机械手的三维交互仿真平台。

3.1 用户体验设计

用户体验设计包括信息架构、内容文本、视觉设计、交互设计等[13]。载人潜水器水下作业机械手仿真系统的用户主要是海事院校的师生及参加评估培训的操作人员,这些用户群体对航海操作实践有着较高的要求,这就使得所开发的系统需要紧密结合航海操作实践。充分考虑用户使用需求,基于Unity3D开发出的水下作业仿真系统增加了多视角切换功能,用户在操作仿真系统时可以根据自身的需求进行调整,使得在增强仿真系统的真实感和灵活性的同时提升用户体验效果;在交互界面的右上角,增加了显示机械手细节的小窗口,可方便用户观察其操作过程;在人机交互界面中使用GUI组件,用户可以在利用键盘进行人机交互的前提下,使用主界面中GUI组件显示的机械臂各关节的操作键来控制其运动;采用Shader编程渲染出海底雾效,增强了三维仿真系统的操作真实感。设计效果见图5、6。

3.2 系统实现

在本仿真系统中,把末端执行器坐标系相对于固定坐标系原点的位置坐标值x,y,z和绕固定坐标系x轴,y轴,z轴的3个转角β、∂、γ这6个参数作为确定末端执行器位姿的一种方式。将上述6个坐标参数确定的坐标系映射到由向量n、o、a、p确定的坐标系中,调用运动学解算接口即可求得要到达指定位姿时机械手各关节的旋转角度。求得关节角后,将其转换为模型在场景中的欧拉角即可在三维场景中控制机械臂的运动。操作过程见图7。

碰撞检测是保障三维仿真系统真实感的必要条件。通过在机械手末端执行器上添加Unity3D引擎中自带的碰撞检测组件Mesh Collider(网格碰撞器)以提高碰撞检测的精确程度。同时,编写相应的碰撞检测函数可控制机械手检测到碰撞后的行为。操作机械手进行取样的过程见图8。

4 结论

该仿真系统突破了时间及场地的限制,基于该平台,可以对操作人员的水下作业技术进行系统训练,在一定程度上降低训练成本并提高操作人员的培训效率。后续研究可以考虑从以下两个方向:建立被操作物体与机械手末端执行器的碰撞检测模型,使对不规则物体进行的作业仿真更为精确;构建更多的作业海区海底复杂环境,如富钴结壳区、热液喷口以及冷泉区等。

猜你喜欢
位姿执行器运动学
更正说明
形状记忆合金执行器研究综述
轿车前后悬架运动学仿真分析
自动驾驶汽车执行器故障冗余算法
基于PLC的六自由度焊接机器人手臂设计与应用
基于位置依赖的密集融合的6D位姿估计方法
复合切割机器人的运动学分析与仿真研究
X-431实测篇2010年奔驰B200空调执行器电机学习
曲柄摇杆机构的动力学仿真
基于单目视觉的工件位姿六自由度测量方法研究