贾子熙,王 帅,郝一达,伍一鹤
(1. 东北大学 机器人科学与工程学院,辽宁 沈阳 110819;2. 南京理工大学 自动化学院,江苏 南京 210094)
混合现实技术(mixed reality,简称MR)是虚拟现实和增强现实技术的进一步发展,它能够将所需要的对象附加在真实世界中,在现实世界、虚拟世界和用户之间建立起信息回路,从中增强用户的真实感[1-2]。目前,该技术已经在工业制造、军事、文化、医学等领域得到广泛应用[3]。由于 MR 技术具有良好的沉浸感和交互性,在教育领域中具有广泛的应用前景,可以实现虚拟课堂、虚拟实验室。
在新工科背景下,机器人工程专业正在如火如荼地发展中。机器人技术作为一门实践性很强的新兴交叉学科,很多高校都在积极探索实践教学如何更好地提升机器人专业人才培养质量[4-5]。与传统工科实验对象不同,机械臂实验存在一定危险性,机器人实验室建设需要投入很多的资金和空间;另外,传统的实践教学方式容易使学生过分依赖教师的“教”的过程,学生自主学习的兴趣不高。本文基于 HoloLens 开发的虚拟实验系统,在虚拟环境下实现倒立摆与机械臂系统的控制,能够让学生不受时间、地点的限制进行教学实验,同时具有较高的安全性,可以减少实验室建设成本,提高学生自主学习能力。
本系统采用 HoloLens 作为硬件支持。HoloLens是由微软发布的一款基于Window10 的头戴式混合现实设备,拥有独立的计算单元,可以不受线缆限制而独立使用,能够让用户在真实环境与虚拟影像进行交互[6-7]。
本系统采用 Unity3D 作为开发工具。Unity3D 是一款多平台集成的 3D 游戏开发引擎,可以实现模型可视化、实时三维动画、3D 视频游戏。它为开发者提供了强大的物理引擎系统,包括多种物理模拟组件。开发者可以使用封装好的 API 构建出复杂的虚拟场景,模拟出真实的物理效果[8-10]。并且,Unity3D 支持跨平台开发,开发者可根据需要将项目发布在不同平台上,这可以让虚拟实验的开发变得更加便捷。
本系统使用Unity3D 搭建倒立摆模型和机械臂模型,将其导入HoloLens 中,通过HoloLens 进行交互控制。在倒立摆系统中,本系统实现了对摆杆角度和小车位置的控制,通过对内环、外环PID 参数进行调节实现将倒立摆稳定在设定位置。在机械臂系统中,为改变目标物体的位置与姿态,本系统通过逆运动学得到各关节位置,生成预测轨迹,最后移动机械臂到指定位置,最终实现虚拟机械臂的控制。
2.1.1 倒立摆系统
倒立摆的物理模型如图1 所示。
图1 倒立摆物理模型
小车质量为M,摆杆质量为m,摆杆长度为l,摆杆偏角为θ,根据牛顿运动定律可得:
摆杆绕其重心的转动方程:
摆杆重心的运动方程:
小车在水平方向所受合力:
联立式(1)—(3)可得倒立摆模型:
其中J为摆杆的转动惯量,
采用双闭环控制,将小车位置作为外环,摆杆摆角作为内环,实现在保持摆杆不倒的同时控制小车位置[11-12]。双闭环PID 倒立摆控制系统结构框图如图2所示。
图2 倒立摆控制系统结构框图
2.1.2 机械臂系统
确定机械臂的DH 参数表如表1 所示。
表1 机械臂的DH 参数表
由连杆坐标系中的位置关系可知,关节1,2,3,4,5 的中心在同一个平面内,故设关节1,2,3,4,5,6 的当前位置为目标位置为目标角度为设目标物的位置为PT。以为坐标轴原点,易得到由式
可解得Pt5。由于关节1,2,3,4,5 的中心在同一个平面内,由式
可解得Pt2,由式
可解得Pt3,由式
可解得Pt4。
2.2.1 倒立摆系统
Unity 环境里组件的部署情况及脚本列表如图 3所示。对应的系统组件详见表2。
2.2.2 机械臂系统
Unity 环境里组件的部署情况见图4。系统组件部署情况详见表3。
图3 Unity 环境中的倒立摆系统组件部署
表2 倒立摆系统组件
2.3.1 倒立摆系统
图4 Unity 环境中的机械臂系统组件部署
表3 机械臂系统组件
倒立摆控制系统演示效果如图5 所示。经过测试,系统实现了同时对摆杆角度和小车位置的控制,实验者还可自行调节内外环PID 参数进行实验,测试系统在不同PID 参数下的稳定性。
图5 倒立摆控制系统效果演示
2.3.2 机械臂系统
虚拟机械臂演示效果如图6 所示。测试结果显示,虚拟机械臂在不同场景下均表现良好。测试过程中,可以清晰地观察到周围环境与机械臂的交互情况。机械臂的碰撞模型与周围环境的碰撞清晰可见,机械臂的每次抓取均可达到预设的误差范围,即满足
图6 机械臂系统效果演示
虚拟实验室可使用虚拟技术(虚拟现实、增强现实、混合现实技术)来模拟实验场景,再根据实验要求和流程组装成一个完整的实验体系。该方案可以通过网络实现教师与学生间的交流,从而提高学生的主观能动性。随着混合现实技术的发展和普及,混合现实技术将在机器人工程专业交互式教学中发挥潜能,为学生提供情境交互体验,帮助学生探索抽象复杂的机器人技术。