( )
题目:智能手表的非接触式备择交互模式的设计
Designing Alternative Contact-free Control Modalities for Smart Watches
教学单位 计算机科学与技术
欧长坤
201231102123
2012
计算机科学与技术
陈雅茜
副教授
联合导师 Andreas Butz(德国慕尼黑大学)
Professor
2016 5 18
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
目录
摘要 1
Abstract 3
1 绪论 5
1.1 人机交互与穿戴式计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 选题意义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 相关工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 手势型交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 扩展式交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 智能手表上的交互 9
2.1 传统交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 点按 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 滑动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 特有交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Digital Crown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Force Touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Haptic Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 其他交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 侧面按钮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.2 语音控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 非接触备择设计 13
3.1 交互模式设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1 点按与视图切换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.2 滑动与连续调节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.3 Force Touch 仿真 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.4 Haptic 反馈设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 设计的完备性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 系统设计 17
4.1 框架选型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1 LeapMotion LeapJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.2 watchOS WatchConnectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 架构设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2.1 通信架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
4.2.2 客户端架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2.3 服务端架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3 通信协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4 演示程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5 核心实现 21
5.1 环境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.1 配置本地 LeapMotion 环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.2 配置 watchOS 的网络访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 服务端编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2.1 点按识别与 Force Touch 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2.2 双指滑动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2.3 五指合并 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3 客户端编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3.1 视图控制层编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3.2 通信层编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 用户调研 29
6.1 用户任务设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2 参与者数量设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.3 调研结果与分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3.1 参与者信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3.2 社会接受度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3.3 手势舒适度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.3.4 操作直觉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.4 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7 进一步工作 35
7.1 缺陷 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.1.1 硬件缺陷 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.1.2 交互缺陷 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.2 改进方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.2.1 识别方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.2.2 交互感知中心 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.3 结束语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
附录 A 使用许可 39
附录 B 用户调研问卷 - 第一部分 41
附录 C 用户调研问卷 - 第二部分 43
2
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
参考文献 45
致谢 49
3
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
4
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
摘要
本文以现有智能手表产品的代表 Apple Watch 为例, Apple Watch 上的交互模式的优
缺点进行了全面的分析,并据此给出了一套非接触式的备择设计。其配合了 Haptic Engine
对用户的直观震动反馈,完成了对基础点按、滑动、Digital CrownForce Touch 等系列原
生交互的非接触式手势交互设计,此设计将嵌套两步逻辑十种原生交互简化为了单步
逻辑上的八种备择交互,消除了接触式交互的依赖,解决了现有交互中对手依赖的
缺陷,并同时说明了给出的备择设计的交互完备性。通过用户调研,对本套交互方式的设
计进行了评估,结果显示该方案的操作逻辑和舒适度良好。在最后,本文对设计的硬件结
构、交互方式和系统架构的现有缺陷进行了讨论,并从中得到的启示,给出了可行的解决
思路。
关键词 智能手表;非接触式;手势交互;备择设计
1
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
Abstract
In this thesis, we explore Apple Watch as the representative of smart watches, and analysed
the advanteges and disadvanteges of interaction pattern in Apple Watch with watchOS 2. Accord-
ing to this, we introduce a contact-free alternative design for smart watch interaction.
This design, combine with the Haptic feedback, convert the basic tap, swipe, Digital Crown,
Force Touch and etc. native watch interaction to a contact-free gesture interaction. It simple-
fied ten native interaction with two-step logic to only eight alternative interaction with sigle-
step logic, eliminated contact-required interaction method, solved the bimanual interaction within
smart watches, and explained the completeness of this alternative design.
Through user study, we evaluate these alternative designs and the result shows the interaction
operate logic and gesture confortable all acceptable.
Finally, we discussed the weakness of current hardware structure, interaction design and sys-
tem architecture. Trough this, we proposed a few implications for the future improvements.
Keywords Smart Watches; Contact-free; Gesture Interaction; Alternative Design
3
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
1 绪论
可穿戴设备真正兴起于二十一世纪一零年代初期,伴随计算机芯片技术三十几年的快速发展,终
于在民用电子消费品市场上出现了以手表、手环为代表的几个主要表现形式。对于手环而言,仅仅只采
集用户佩戴时的使用数据,本质上而言几乎和用户不存在直接交互。而对于智能手表来说,尽管搭载了
大量简化、合适设计的操作系统,但依然存在的性能上的不足,这便给穿戴式设备的软件设计带来了巨
大的挑战和机遇 [1]
1.1 人机交互与穿戴式计算
从上个世纪九十年代中后期起,可穿戴设备的概念开始逐渐进入人们的视野。
一个可穿戴设备可以从简单的输入设备 (如手环) 到复杂的具备操作系统和通信功能的设备 ( Ap-
ple WatchAndroid Wear )。可穿戴设备出现的初衷就是为了向人们提供比智能手机更亲密的、一
个计算设备。而穿戴式计算本质上就依托于这样一种小型的、可穿戴的计算机。『实时在线』是穿戴式
计算的显著特点,可穿戴设备穿戴于用户的某个部位,时刻感知着用户环境以及观察用户的行为。
穿戴式计算的目标是提供一个类似个人助理的服务,例如便捷的互联网访问、事件通知、信息采集
等等,这种基于穿戴式计算的普适计算技术集多通道交互 (Multi-Modal Interaction)上下文感知交互模
(Context-Interactive Model) 和增强现实 (Augmented Reality) 等于一身,是人机交互领域所期望的终极
任务 [2, 3]
然而受到当下科学水平、市场推广的限制,这些研究依然还非常基础,尤其当人们回过头来思考为
什么要在自己身上增加一个设备时,可穿戴设备的存在意义几乎为零,可替代性非常高。即便如此,
于可穿戴设备的人机交互相关研究一直在继续,并且走在电子消费品的前面,尽管离实现这些设计还
很遥远,甚至可能永远不会被应用,但这些研究的方法以及它们产生的概念,都有着其存在的让人们继
续思考、反思的价值 [4],并一步步推动着这个行业的进步。
1.2 选题意义
在智能手机的发展已经略显疲态的今天,而可穿戴设备却显得力不从心。无论从其产品的可接受
度、易用性还是价格,智能手表存在的意义还不够显著,智能手表的使用与它本身所处的情景很有关
[5]
因此,在对智能手表的交互进行设计前,要考虑以下几点:
1. 如何将交互方式做到足够符合人类的操作直觉与舒适;
2. 如何消除交互形式与社会人文的隔阂感 (社会接受度)
3. 如何平衡一个交互设计的功能可见性和系统复杂性。
本文考虑了目前智能手表市场为代表的产品Apple Watch,结合其操作系统自身特点,设计
一种无接触的、可以释放双手依赖的交互模式。在这种交互模式下,用户在手表上执行交互的目标得到
放大。手表的应用情景能够被得到放大,交互逻辑的复杂度得到简化,间接增加了智能手表的存在意
义。
5
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
1.3 相关工作
能手面是交互观的 [6]的研较为深入
[7, 8]其中为代表的 Apple Watch 是在所有智能手表中对界面最简洁、优秀的,其发展出来的『人机交
互设计则例』[9] 已经成为交互设计中的标准指南。
然而在执行交互输入的部分却依然混乱不堪,市面上所有的智能手表上的交互都依赖两只手来完
成,考虑到手表需要抬碗才能观看的自身属性,如果我们要对现有的设计进行重新设计,并解除对双手
接触式交互的依赖,对于交互模式的设计便落在了佩戴手腕的那只手上,这也就无法绕开对手势技术
的探讨。
1.3.1 手势型交互
手势技术在人机交互的研究中一直经久不衰,手势可以按空间形式分为平面手势和空间手势。对
于平面手势而言,已经有较为成熟的 $1 [10] $n [11] 算法,这些方法将连续的手势在等时间间隔内进
行重新采样,然后利用二范数对两个不同的手势序列进行对比;而对于空间手势而言,最大的困难就是
如何确定手势的开始和结束,但是实际上由于手势的特殊性我们避开这些问题,通过识别特定手势、
手势状态机进行建模依然能够进行相关的应用 [12–16]。幸运的是,与手表的交互在抬起腕臂后,由手
表输出给用户的全部主要信息都是通过表盘,这时被确定在佩戴手表的手臂的移动不能幅度过高,因
此这种交互也和传统的空间手势并不完全相同。
[17] 详细研究并定义一套复杂地、不同地捏合手势来完成不同的单手、无需用户进行视觉观
的交互任务。虽然该文实现的效果与本文的目的有一部分相同,但可惜的是,这些复杂的捏合手势需要
将整个手表的交互逻辑重新设计,这于情于理都不够现实。
非接触式的交互设计同样有相关的研究, [18] 使用 Google 眼镜上的摄像头应用视觉方法来检测
用户的手势,进而完成非触摸式的交互,然而文中只是对这一技术只适合有佩戴眼镜需求的用户,不具
备普遍适用的价值。
而文 [19] 甚至考虑了利用所佩戴手表的手臂的旋转方式来制造不同的交互。
在这些研究中,现有的手表交互虽然得到了扩展,将手势相关的成熟研究应用到智能手表上,但这
些研究并没有认识到手表上的交互方式就存在不够便捷的根本问题。
1.3.2 扩展式交互
一些研究给出了不同的思路,他们把局限于智能手表上的交互扩展到了手表的外围 [20, 21]、手表
的表带 [22]甚至用户的皮肤上 [23]这些扩展式的交互虽然打破了屏幕大小的限制,但是并没有考虑
到即便是没有了输入式交互的范围限制,依然需要双手来执行这些操作,依然是一种较为疲态、不够便
捷的交互形式。
[24] 在手表的周围增加了多个无线传感器,通过对手表屏幕上方的不同动作进行识别从而增加
手表交互的方式。然而这种方法仍依赖两只手进行完成,并且完全没有考虑过这种方法在单手交互上
的扩展性。
在文 [25] 设计了一个增强交互的方式,通过对佩戴手表的手部的手势进行识别来执行不同类
的交互。虽然这种设计考虑了手势在智能手表交互上的应用,但是这种方式不但没有简化在小屏幕设
备上的交互逻辑,反而进一步增加了用户对执行这种隐式交互的学习成本。
对于扩展式的交互还不仅局限于手表上,文 [26] 将手表作为一个手机的位于身体手部位置的
展辅助传感器,文 [27] 考虑了智能手表的空间位置,本质上将智能手表扩展往一种穿戴式的体感交
6
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
平台发展 [28],这些研究进一步增加了对手表状态的识别进而增强在智能手机上交互的多样性。
综上所述,尽管对手表现有交互模式的研究覆盖面很广,但现有的这些关于智能手表的研究中普
遍回避了、且没有考虑下述的问题:
与现有智能手表的交互模式共存的兼容性较低,无法通用;
有针对一个系列的产品进行全面可行的应用分析,给出的设计适用面很窄,通常一个方法只能
完成一件事情,而其设计本身又不具备功能可见性;
给出的设计普遍只适用于双手交互,对增加用户在产品上的黏性没有明显帮助;
设计上没有考虑过交互模式与用户界面之间的关系,一方面是给出的交互方式的社会接受度不
高,另一方面则是交互的逻辑性不强,不够直观,用户的学习成本高。
7
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
8
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
2 智能手表上的交互
Apple Watch 中,由于摸屏的存在,大部分手中的交互式沿袭自带有摸屏幕的能手
[9]。为了对手表中的交互方式进行非接触式备择设计,我们必须分析并且明确在 Apple Watch
存的交互方式及其优缺点。
2.1 传统交互
传统交互苹果公司认为 Apple Watch 小屏幕上施超过两个接点的点按行为是严影响
用户交互的,因此 Apple Watch 上的触摸屏没有沿用多点触控的方案。并且,在屏幕的普通操作中,
有基础点按和四个方向上的滑动,如图2.1所示
1
2.1: 传统交互:触摸屏上的单点触摸交互能够制造点按与滑动交互,而滑动交互本身又可以看做一
系列连续的点按交互。此外,滑动交互仅涉及上下左右四个方向。
2.1.1 点按
屏幕的上的普通单点触控与智能手机上的方式并没有明显差异。这种点按方式在人机交互形式上
早已被大众所接受,此种方式的用户接受成本也是最低最自然的。
然而将此种交互应用在智能手表上时则极大的降低了其自身的可用性,根据触摸屏上的 FFitts’
[29]
T = a + b log
2
A
2πe(σ
2
σ
2
a
)
+ 1
(2.1)
其中 σ 是触摸点分布的标准差,σ
a
是输入手指的绝对精度。A 为开始点到目标中心的距离。
根据 FFitts’ 律我们可以看到,一方面,在屏幕大小及其有限的屏幕下将另一只手的手指一动
手表屏幕上会使 A 的值很大,而且正由于屏幕大小的限制,σ 值不会较大甚至比手机触摸屏上
标准差还小,而对于同一目标而言 σ
a
的值又不存在变化。因此 T 值会明显变大,即手表屏幕上的点按
交互可用性并不高。
2.1.2 滑动
屏幕上点按位置的连续变化形成了滑动式的交互。Apple Watch 在处理目标点按时的的低可用性问
题时应用了滑动手势。例如让可交互的元素尽可能的通过滑动来进行处理。
1
图片源:https://developer.apple.com/watch/human-interface-guidelines/
9
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
水平方向的滑动可以用于对手表界面的多个水平视图进行切换、返回上级视图等,垂直反向上的
滑动则可以在竖直方向上滚动当前视图。注意,垂直方向的滑动所表达的功能并非 Digital Crown
具备功能的子集,因为在处 watchOS 表盘界面时,上下滑动的功能会被表达为向下滑动呼出通知栏
和向下滑动呼出 Glance 界面。
2.2 特有交互
Apple Watch 在传统触摸屏交互的基础上引入了三个全新的交互硬件,分别是 Digital CrownForce
Touch Haptic Engine,如图2.2所示
2
(a) Digital Crown (b) Force Touch (c) Haptic Engine
2.2: 特有交互Digital Crown Force Touch Haptic Engine Apple Watch 同于其他智能手表产
品的特殊点。
2.2.1 Digital Crown
Digital Crown 是苹果公司在 Apple Watch 上推出的一个全新的交互技术,苹果公司在推出此项交互
的技术时,将其对比了在人机交互历史中的两个革命性的交互技术:鼠标和触摸屏,这意味着苹果公司
认为,Digital Crown 是一项在手表上的革命性交互方式。
这种交互方式利用了传统手表的时钟旋钮在功能可见性上的不足。在传统手表中,时钟旋钮在普
通状态下不具备任何功能,只有当旋钮被从里向外拉出时,才具备调节时间的功能。这一装置在大部分
时间里都不能发挥自身的作用,是一个典型的需求驱动型设计,并没有仔细考虑过其自身的存在方式,
只是习惯性沿用。
而在 Apple Watch 上,信息呈现的方式以流式进行纵向展示,所有呈现的内容被限制在一个宽度固
定、纵向可伸缩的屏幕区域里。这时,Digital Crown 便能发挥其旋钮的功能。当产生旋转时,内容在竖
直方向上进行移动,从而呈现更多的内容,如图2.2(a)并且,在交互情景发生变化时,Digital Crown
够表达出不同的交互指令,例如在影月播放界面时,Digital Crown 的旋转能够调节播放音乐的音量。
2.2.2 Force Touch
Force Touch 品中现。中,
年,[30–32] 等文献研究了触觉感知如何在触摸屏上进行增强,包括感觉反馈、触摸面积的测量、触摸
力度和精度等等,而 Force Touch 就是触摸力度的实际体现。
Force Touch 一共将触摸行为分为了两个等级,第一触摸等级就是传统意义上的触摸行为,手指轻
触屏幕时即可被感知;第二触摸等级就是 Force Touch,这时需要用户将触摸屏幕的力度提升到一个级
2
图片源:https://developer.apple.com/watch/human-interface-guidelines/
10
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
别后,系统才会进行响应进一步处理交互,如2.2(b)。然而,这是一个典型的不具备功能可见性的交
互形式,只有当操作被执行后,才能进行后续的交互。
2.2.3 Haptic Engine
Haptic Engine 是一个内置的震动部件,如图2.2(c)。通过这个部件对手腕传达的震动信息,可以
一步扩大用户与手表进行交互时的反馈。例如,当用户成功实施 Force Touch Haptic Engine 能够给予
用户不同层级的反馈,让用户亲自感受到 Force Touch 的实施成功;Haptic Engine 能够在不同用户之间
分享彼此的心跳频率时自行调节振动的幅度和速度,达到真实的模拟心跳,进而显著提升 Apple Watch
的用户体验。当我们对现有交互进行备择设计时,无论交互方式如何更改,都应该向用户提供震动反馈
来提醒用户操作是否成功。换句话说,Haptic Engine 提供的震动反馈是进行非接触式备择设计的
键所在。
2.3 其他交互
除了以上的基础交互手段外,在 Apple Watch 上还有两个最高优先级的交互方式,如图2.3所示
3
(a) 侧面按钮 (b) 语音控制
2.3: 其他交互侧面按钮的存在提高将一项功能提升到了最高的呼出级别, Siri Apple Watch
唯一的文字输入入口。
Apple Watch 侧面的两个按钮实际上是 Apple Watch 里所有交互中优先级最高的交互方式,这是因
为无论用户在 watchOS 中所处的位置在哪儿,都能够通过这两个方法执行固定的交互指令 (注意,单次
点按 Digital Crown 并不能够作为最高优先级的交互,因为单次点按 Digital Crown 后用户所处的位置可
能不唯一:可能会处于表盘,也可能处于 App 总界面)
2.3.1 侧面按钮
苹果公司可能注意到了在 Apple Watch 上对应用操作的延时复杂性和不便,沿用了手机上电源键的
设计,在已经存在 Digital Crown 按键的基础上依然添加了另一个实体按键,如图2.3(a)
该颗改建存在两个不同的交互内容,当按下该按键一次时,按键会呼出常用联系人列表,方便通过
Apple Watch 拨打电话及发送讯息等;当连续按下改建两次时,如果当前 Apple Watch 绑定 Apple Pay
行卡时,能够呼出默认银行卡进行 Apple Pay 支付。
3
图片源:https://developer.apple.com/watch/human-interface-guidelines/
11
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
2.3.2 语音控制
尽管对于穿戴式设备的输入方式有很多设计,但是 watchOS 上是没有直接的(哪怕是屏幕上
键盘)文本输入入口。因此,Siri 成了唯一一个能够向 watchOS 输入文本的接口,如图2.3(b)
watchOS 上的 Siri 有两种呼出方式,一种是在 Apple Watch 处于唤醒状态下时说出『Hey Siri;另
一种则是长按 Digital Crown
然而,无论是其中的哪种方式,最后的文字输入效果都不理想。这是因为 Siri 依赖自然语言的识别
处理,同时还需要一个配对的手机进行网络访问。这其中只要任何一个环节出问题便不能完成文字的
输入。
值得一提的是,在上文提到的所有的交互方式中,只有语音控制是非接触式的交互设计。
12
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
3 非接触备择设计
上一章中我们分析了 Apple Watch 上的交互方式,除了语音交互外,这些方式都要求用户使用双手
来完成整个交互。但实际场景中,如果用户双手空闲,则用户完全可以使用手机完成需要完成的事情,
况且在屏幕适中的手机上完成交互也只需一直手。因此,这种交互模式从本质上就是一种不利于增加
用户粘性的交互方式。考虑使用手表时的抬碗姿势,最自然的交互自然就是在抬碗时仅用一只手便能
完成全部的交互行为。
3.1 交互模式设计
3.1.1 点按与视图切换
点按与视图切换的操作一共涉及五个操作:普通点按、Force Touch 点按、切换到左视图、切换到
右视图、切换到上一视图。
单手手指的点击由两个两个手指的捏合操作来完成,拇指和其他四个手指的组合恰好能完成全部
的点按交互,拇指和食指的点按来替代普通点击事件,拇指和中指、无名指的捏合实现视图的切换,
指和小指的捏合则实现返回上级视图的功能。
此外,拇指和食指的点按还能对 Force Touch 进行仿真,方法详见3.1.3一节。
3.1.2 滑动与连续调节
滑动与连续调节其实是由 Digital Crown 这一种交互手段在两种不同场景下表达,在一般视图下滑
动时能够对视图内容进行纵向调节,而当交互目标选择为滑动器Slider Bar时,能够对其值进行连续
调整。
我们可以在单手上利用双指的相对滑动来实现这一交互。它是指由拇指在食指上的滑动,在视图
内通过上下快速滑动来实现交互对象的选取,通过闭合时的的慢速滑动来调节纵向的内容展示,如果
选取的交互对象是滑杆,那么这种滑动还能够调节滑动器的值。
3.1.3 Force Touch 仿真
一项开源项目 Forcify [33] 是一个针对 Web 端触摸事件的通用框架,将任 Web 用里的点击事
件作为 3D Touch
1
进行处理,对不具备 Force Touch 能设备采用触摸事件延时处理的方法进行模拟。
然而,其处理事件的延时时间需要开发者自行定义,且触发 Force Touch 的力度是线性函数。为此,我
们应对这个方法进行改进。
首先,对屏幕上的触摸事件划分为两个阶段,第一个阶段的触摸事件处理为普通触摸的触摸事件,
第二个阶段的触摸事件处理为 Force Touch并使用 DELAY 表示触发 Force Touch 的时间延时,DURA-
TION 表示 Force Touch 从最小值到最大值的持续时间。下面考察这两个常量的取值。
AugmentedTouch [34] 项目中,我们实施了一个用户调研并发布了一个包含 16 名用户、使用 4
不同的手姿、共实施 61440 次屏幕点击的数据集。在这个数据集中,每次的屏幕点击均记录了用户的手
指在屏幕上的停留时间,图3.1展示了这 61440 次点击的停留时间的分布。
1
Apple Force Touch 技术在 iOS 设备上重新命名。
13
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
Duration of Finger Stay on Screen(ms)
0~50
50~100
100~150
150~200
200~250
250~300
300~350
350~400
400~450
450~500
500~550
550~600
600~650
650~700
700~750
750~800
800~850
850~900
900~950
950~1000
Count
0
1000
2000
3000
4000
5000
6000
7000
8000
Count
Log-Normal: µ =1.9626,σ=0.54024
Maximum Likelihood:x=260.4776
3.1: 统计结果
从图3.1 的分布上我们可以看出,手指在屏幕上的停留时间主要集中在 260 ms 前后,呈对数正态分
布。对此,我们不妨将手指在屏幕上的平均停留时间设为 250 ms DELAY 的值为 250ms另外,
Force Touch 总持续时间为普通触摸事件的五倍,故 DURATION 的值为 1000ms;这时触发 Force Touch
操作所需要的总时间为 1.25 秒。 Force Touch 而言,考虑人类手指的按压力度变化,我们设其力度的
变化率线性变化,这时能保证整条力度变化曲线为光滑曲线。
综上所述,记在一次按压中的按压时间为 t
press
,则 Force Touch 可以使用公式3.1进行模拟:
v
F
=
0 if t
press
< DELAY
t
press
DELAY
DURATION
2
if 0 < t
press
DELAY < DURATION
1 Otherwise
(3.1)
其中,v
F
表示模拟的压力值,DELAY = 250DURATION = 1000两者单位为毫秒 (ms)图像如图3.2
示。
v
F
t
press
(ms)
DELAY
1
DELAY+DURATION
3.2: Force Touch 仿真函数的图像
14
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
3.1.4 Haptic 反馈设计
watchOS
2
,根据开发文档 [35] 显示 Haptic Engine 一共能表达代码3.1所示的几种类型。
1 public enum WKHapticType : Int {
2 case Notification
3 case DirectionUp
4 case DirectionDown
5 case Success
6 case Failure
7 case Retry
8 case Start
9 case Stop
10 case Click
11 }
代码片段 3.1: Haptic 反馈类型
SuccessFailureRetry 三个 Haptic 类型均为对原生交互的操作执行结果的反馈,于是我们将 Success
设置为备择交互中执行完操作且成功后的反馈,Failure 则对应为失败。在原生交互时,Retry 只用于在
输入密码时失败后的特殊情况,不妨将此种情况的反馈依然用 Failure 表示,先保留此反馈类型,以便
用于其他交互。
Notification 于在休眠状态下的通知提醒,不对其进行修改;DirectionUp DirectionDown
生交互中 Digital Crown 旋转到顶端和底端时的反馈提醒,对此我们同样继承此反馈设计,并扩展到数
值调节中,当调整到数值最大值时,执行 DirectionUp 反馈,反之执行 DirectionDown 反馈。
StartStopClick Retry 四个反馈类型恰好可以对拇指与食指、中指、无名指捏合点击与 Force
Touch 的四个个不同操作进行对应, Click 表示普通点击事件,Stop 表示 ForceTouch 操作,Start 表示
切换到下一视图,Retry 恰好用于切换到上一视图的提示反馈。
3.2 设计的完备性
3.3: 非接触式备择设计总览
2
本文写成时的 watchOS 版本为 2.2
15
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
本章中我们全面地对 Apple Watch 的交互进行了重新设计,简化了元素与元素之间的交互逻辑,
作为小结,如图3.3。在此套备择设计中,我们将原有的两层交互逻辑中十种不同交互逻辑通过简化
单层交互逻辑的八种,并且消除了接触式交互这一限制。
从图3.3中我们容易看出,备择设计在交互上是完备的,即从另一个角度实现了原交互的全部功能。
16
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
4 系统设计
4.1 框架选型
4.1.1 LeapMotion LeapJS
LeapMotion [36] 是一个硬件输入设备和其自身软件的一个总称,其硬件中内置的两颗深度摄像头
和一个红外探测器可以对视野内的手检测,其软件部分利用内置的骨骼模型对检测的手部进行重新建
模,进而完成手行为的高精度
1
识别。
LeapMotion SDK 有两种风格的 API 可以用于获取 LeapMotion 提供的手部数据:本地接口及 Web-
Socket 口,WebSocket 接口便其提供了浏览器环境中 JavaScipt 接口。LeapMotion WebSocket
务遵循 RFC6455
2
,运行在连接 LeapMotion 硬件的桌面端的 6437 端口。
LeapJS 就是 LeapMotion 控制器的客户端 JavaScript 框架。使用 LeapJS 可以让 LeapMotion 与网
页前端进行通信,此框架可以用来处理接受 LeapMotion JSON 消息。但随着 NodeJS 的存在,LeapJS
能够运行在服务端,因此我们也能够在服务端使用 JavaScript 处理 LeapMotion 消息。
Leap API Frame 为对象,当可被检测的手出现在 LeapMotion 视野内时,深度摄像头捕捉到的每
Frame 都能够访问到一个 Hand 对象。Leap 通过对手部的重新建模,将当前帧的手部信息提供给开发
者,例如当前手的指向、当前手在 LeapMotion 坐标系统下的位置。借助 LeapMotion 能够省去开发者的
手部检测和识别的部分基础工作,更多的关注于手势算法的研究 [39–43]
另外,空间手势已经得到较成熟简单应用,例如文 [44] 基于 LeapMotion 实现了 TV 上的控制。
4.1.2 watchOS WatchConnectivity
watchOS 是运行在 Apple Watch 上的操作系统。watchOS 刚推出时,第三方 App 是作为 iOS 的应用
扩展存在,手表端只负责对代码的执行结果进行展示,所有的代码都在 iOS 端执行。随着 watchOS 2
发布,现在第三方 App 能够通过 WatchConnectivity 框架在 watchOS iOS 之间进行数据通信。
使用 WatchConnectivity 框架执行的通信必须经过 watchOS iOS 系统级的中转。这些通信在 iOS
端和 watchOS 端开启一个会话,因此若需要使用 WatchConnectivity,就必须要实现 WCSessionDelegate
代理协议。
另外,在 WatchConnectivity 中存在两种不同的通信模式:后台模式和交互式消息模式。在后台模
式中,操作系统会将一些非及时消息发送到等待消息队列,并在 App 唤醒时进行处理;而在交互是
模式中,过系转, watchOS iOS 通信,
WCSession.defaultSession().reachable 为真时,才能够进行通信。值得一提的时,在交互式消息中,即便
iOS 端程序尚未启动,在 Apple Watch 中依然能够从后台将 iOS 应用唤醒。
1
LeapMotion 的官方宣称的识别精度为 0.01mm,文献 [37, 38] 分析表明 LeapMotion 的实际精度在 0.2 mm 左右。
2
http://tools.ietf.org/html/rfc6455
17
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
4.2 架构设计
4.2.1 通信架构
watchOS 2.0 开始从 iOS App Extension 中剥离开来, Watch App 部分全部移至 watchOS 端,
时这部分代码在手表端具备了可执行的权限,因此将 watchOS 1.0 的单向接收 iOS 端的系统级的
通信,转变为第三方 App 执行管理 [35],如图 4.1 所示。这使其与外界的及时通信成为了可能。
watchOS
Watch App
WatchKit
extension
iOS
iOS App
4.1: Watch AppWatchKit 扩展和 iOS App 之间的联系
然而,便如此 watchOS 网络访问能依然分有限, watchOS 2 中,Apple Watch
iPhone 接, Wi-Fi 时,才使
NSURLSession 访问网络,条件十分苛刻。
鉴于以上考虑,本文对从服务端到客户端的通信架构设计如图 4.2 所示。
Server
Interaction Handle
watchOS AppiOS App
Leap WebSocket
Request Handle
4.2: 通信架构: watchOS 不直接与服务器进行通信,而是将 iOS 端作为与服务器通信的桥梁
其中,watchOS iOS 端作为与服务器通信的桥梁,处理性能及其有限的 watchOS 端仅负责对通
信内容的呈献,性能稍强的 iOS 端对服务端消息进行筛选与加工,而服务端则对 LeapMotion 原始数据
进行分析,并封装其分析结果后与 iOS 端进行通信。
4.2.2 客户端架构
客户端包含 iOS 端和 watchOS 端两个部分,其架构设计如图 4.3 所示。
18
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
iOS App
Communication Layer
Networking Layer
Message
Protocol Handle
WatchConnectivity
watchOS App
Communication Layer
View Control Layer
WatchConnectivity
InteractionPresent
4.3: 客户端架构: iOS App 的网络层对服务器消息进行进一步加工处理,并通过通信层与 watchOS
进行通信,watchOS App 收到消息后通过视图控制层响应 UI 元素的交互。
4.2.3 服务端架构
服务端的设计如图 4.4 所示,其组件的核心是交互处理层,该层负责对原始的交互数据进行加工处
理为将要实施的交互消息,然后将加工后的消息按消息协议封装好进而通过请求层分发给相应的请求
对象。
Server
Interaction Handle
Request Handle
Message
Protocol
Handle
Commons
MLiteKitLeapJS
……
4.4: 服务端架构: 交互处理层对原始数据进行加工处理,完成分析后立即将消息交给请求层并对消息
进行分发。
4.3 通信协议
我们需要设计在 watchOS iOS 之间、iOS 与服务端之间设计相关的交互通信协议。
根据图3.3所示,用户与手表端进行交互时共涉及五指合并、双指滑动、手指点击三个基本操作,
中双指滑动仅指拇指和食指之间的滑动。而对于交互本身的表达,在图4.2被设计为由 iOS 端进行表
达。因此,对于服务端与 iOS 端之间的通信数据字段设计如下:
4.1: 交互字段说明
返回值字段 字段类型 字段说明
pinchTimeStramp Date 执行捏合操作的瞬间时间
pinchIndex int 执行捏合操作的手指,从食指到小指分别为 1 4-1 表示当前没有手指进行捏合
pinchStrength double 拇指与食指捏合的程度,为从 0 1 连续变化的浮点数
grabStrength double 五只手指合并的程度,为从 0 1 连续变化的浮点数
forceValue double 触发 Force Touch 后手指按压力度的模拟值
4.4 演示程序
尽管我们对交互方式进行了完备的设计,但由于 Apple Watch 开发上的限制,我们无法对系统级的
视图进行操作,因此本文对备择交互一共给出了以下的五个不同效果的演示。
19
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
第一个演示程序展示了手表点按交互的备择交互设计方案;
第二个演示程序展示了手指在手表屏幕上滑动的备择交互设计方案;
第三个演示程序展示了对 Apple Watch 所特有的 Digital Crown 的备择交互设计;
第四个演示程序展示了对 Apple Watch 所特有的 Force Touch 的备择交互设计方案;
第五个演示程序展示了一个非接触式交互的游戏案例。
以上五个演示程序的演示视频可以在 YouTube
3
链接中查看,项目源码等相关资源及其使用许参见
附录A
3
https://www.youtube.com/playlist?list=PLwUqqMt5en7c2QaQ_DkuvZm9dGTz6RjRM
20
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
5 核心实现
5.1 环境搭建
无论是手表端的还是服务端,都存在框架依赖,因此环境搭建不可避免。在本项目中,服务端使用
NodeJS 进行编码,限于篇幅, NodeJS 相关的基本环境, Node 本体,NPM 包管理等常见工具的配
置在文中略去,这里主要介绍运行本平台最重要第三方 Leap Motion 环境;而在手表端中,虽然我们不
依赖其他第三方框架,但由于 watchOS 自身的限制 [45] watchOS 2 中我们需要使用 WatchConnectivity
框架与 iOS 应用本体进行数据通信。由于 iOS 系统本身限制iOS 9 及以上)强制要求应用必须与 HTTPS
服务器进行通信,因此这里介绍在 iOS 9 中与 HTTP 服务器通信的配置方法。
5.1.1 配置本地 LeapMotion 环境
LeapMotion 供了在 Mac OS X 中的开发环境,并且提供了各种不同的开发语言,根据上文的讨
论,我们需要在服务端配置 LeapMotion 本体以及 LeapJS
1. 安装
首先,在应用程序中引入 Leap SDK 需要在相应桌面端安装 LeapMotion 宿主程序,进而才能使
LeapMotion 相关的 API
其次,在 Node App package.json 中添加 LeapJS 依赖:
"dependencies": {
"leapjs ": "^0.6.4"
}
再使用 npm install 安装 LeapJS
2. 环境配置
受到 LeapMotion 自身的限制 [36]WebSocket 服务并非默认的向非本地访问开放,因此需要将 Leap
配置启用非本地客户端连接。
这需要对 LeapMotion 配置文件进行修改。在修改配置之前,需要关 LeapMotion 相关服务。
Mac 中,使用下面的命令关闭 LeapMotion 的守护进程:
sudo launchctl unload / Library/LaunchDaemons/com.leapmotion .leapd .plist
接下来我们需要修改 LeapMotion 的配置文件,根 LeapMotion 的官方文档显示,Leap 含两个
不同的配置,其中控制面板配置的优先级最高,因此我们需要下面这个目录下:
$HOME/ Library/Application\ Support/Leap\ Motion
找到 config.json 的修改配置,编辑 config.json 文件,并在 configuration 字段中的任意位置添加一条:
"websockets_allow_remote ": true
最终得到:
"configuration ": {
"websockets_allow_remote ": true ,
21
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
"background_app_mode ": 2,
"images_mode ": 2,
"interaction_box_auto ": true ,
"power_saving_adapter ": true ,
"robust_mode_enabled ": false ,
"tracking_tool_enabled ": true
}
保存退出,重新启动 LeapMotion 服务,便完成了 LeapMotion 的相关配置:
sudo launchctl load / Library / LaunchDaemons /com .leapmotion .leapd .plist
5.1.2 配置 watchOS 的网络访问
iOS 9 开始,iOS 对网络访问引入了 App Transport Security (ATS) 特性,这使得在默认状态下 iOS
应用无法发起非安全的网络请求 ( HTTP)。需要进行下列两个步骤配置项目,结果如图5.1所示:
1. Info.plist 中添加 NSAppTransportSecurity 类型 Dictionary
2. NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型 Boolean, 值设为 YES
5.1: 配置客户端 info.plist 文件
5.2 服务端编码
实现一个端口为 10086 HTTP 服务器是第一步,如代码5.1
1 var http = require('http ');
2 func t ion handler (req , res ) {
3 res.writeHead (200) ;
4 }
5 http. createServer (handler ).listen (10086);
6 console.log(" Server running at http :// locoalhost :10086")
代码片段 5.1: 10086 端口创建 HTTP 服务器
下面我们来关注服务端中对 LeapMotion 手势的关键处理。
22
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
5.2.1 点按识别与 Force Touch 实现
LeapMotion 软件本身会对所识别手部进行重新建模,并提供其骨骼模型的全部数据,因此也包
对手指位置。而对于手指捏合的识别,可以转化为对两只手指指尖位置的判断,故可对除拇指外的其他
四根手指中进行遍历,如代码5.2 所示。
1 func t ion findPinchingFinger (hand , closest ){
2 var pincher;
3 //var closest = 500;
4 for(var f = 1; f < 5; f++)
5 {
6 current = hand. fingers[f];
7 distance = leap.vec3.distance (hand.thumb .tipPosition , current.tipPosition );
8 if(current != hand.thumb && distance < closest)
9 {
10 closest = distance;
11 pincher = current ;
12 }
13 }
14 // mark time of start pinch
15 if (pincher .type != pf.pinchIndex ) {
16 // pf is a gloable value for message protocol
17 pf.pinchTimeStramp = Date.now ();
18 }
19 r e turn pincher;
20 }
代码片段 5.2: 手指点按识别
对于 Force Touch 的模拟在3.1.3一节中已经详细描述过方法,其核心实现如代码5.3所示。
1 func t ion forceValue (){
2 // pf is the global message protocol object
3 if (pf.pinchTimeStramp === 0) {
4 re turn -1;
5 }
6
7 var delay = 250;
8 var duration = 1000;
9
10 // calculate force touch value
11 var value = ((Date .now() - pf.pinchTimeStramp) - delay)/ duration;
12 var force = (value >=1 ) ? 1 : value*value;
13
14 r e turn force;
15 }
代码片段 5.3: Force Touch 仿真
23
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
5.2.2 双指滑动
对于双指之间滑动的识别看似困难,但实际上我们可以将其转化为两指之间的捏合度。其实 Leap-
Motion 本身提供了对拇指和食指捏合度参数,但由于其结果为一般情况下的捏合度,即在任何收拾
都存在捏合度,而对于我们来说需要控制交互,构建双指滑动的触发事件,因此我们有必要重新实现这
个功能。
Thumb
Finger
Vector
Index
Finger
Vector
Palm
Normal
Vector
(a) 滑动前
Thumb
Finger
Vector
Index
Finger
Vector
Palm
Normal
Vector
(b) 滑动后
5.2: 双指滑:双指滑动可以通过手指和手掌的指向向量设计触发事件,图中的 3D 模型使用 Leap
Motion Visualizer 制作
双指滑动手势如图5.2所示,当手呈现如图5.2(a)所示手势时,食指的方向向量和手掌的法向量几乎
平行,拇指的方向向量与手掌的法向量几乎垂直,故我们可以利用这个特点设计手势的触发事件。如代
5.4
1 func t ion findPinchingStrength(hand) {
2 var thumbDirection = hand. fingers [0]. direction ;
3 var indexDirection = hand. fingers [1]. direction ;
4 var dotProduct = leap.vec3.dot(thumbDirection , indexDirection );
5 // remove grab condition
6 if (dotProduct < 0.7 && hand .grabStrength < 0.85) {
7 r eturn hand.pinchStrength;
8 } els e {
9 r eturn -1;
10 }
11 }
代码片段 5.4: 双指滑动识别
5.2.3 五指合并
五指的合并不需要重新实现,LeapMotion 本身就提供了握拳程度的参数 grabStrength,我们可以直
接从 Frame 对象中获取,如代码5.5所示。
1 grabStrength = fun c tion getGrabStength(frame ) {
2 r eturn frame.hands [0]. grabStrength;
3 }
24
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
代码片段 5.5: 五指合并识别
5.3 客户端编码
客户端编码的两个重要关键就是通信层和视图控制层的编码,通信层又包含 iOS 端和服务端之间
通信以及 iOS 端和 watchOS 端间通信,我们使用 Swift
1
来完成相关编码 [46, 47]
5.3.1 视图控制层编码
视图控制层是对交互消息本身的一个响应,这里的代码以双指滑动 Digital Crown 达为例,展
示核心设计。
Apple Watch 上实现 Picker 需要应用开发者自行加载相关资源,其代码段如代码5.6所示。
1 var images: [UIImage ]! = []
2 var pickerItems : [ WKPickerItem ]! = []
3 for (var i=0; i <= MAX_NUM ; i += 1) {
4 let name = "progress -\(i)"
5 images .append (UIImage (named : name )!)
6
7 let pickerItem = WKPickerItem ()
8 pickerItem.title = "\(i)"
9 pickerItems.append (pickerItem )
10 }
11 let circleImages = UIImage .animatedImageWithImages (images , duration: 0.0)
12 circleGroup .setBackgroundImage (circleImages)
13 picker.setCoordinatedAnimations ([ circleGroup ])
14 picker.setItems (pickerItems )
代码片段 5.6: 设置视图层 Picker
而对于 Digital Crown 的表达,则是在通过网络层接收到交互信息 pinchStrength 后,将 0 1 的数
值变换到 Picker 所拥有的 0 MAX_NUM然后通过设置 Picker 的选择项来操纵 UI 界面,如代码5.7
示。
1 func indexSelect (message : InteractionMessage ?) {
2 index = Int (message !. pinchStrength * MAX_NUM)
3 // haptic feedback
4 watchDevice.playHaptic ( WKHapticType .DirectionUp )
5 picker .setSelectedItemIndex (index)
6 }
代码片段 5.7: Picker UI 操纵
5.3.2 通信层编码
与服务端的通信通过 URL 请求服务端的手势数据,其结果为 JSON 格式数据。在代码5.8中,com-
pleteFlag 保证了向服务器请求对象时仅在上一次请求完成后才能进行,而 Gesture 类的构造函数通过从
1
本文写成时的 Swift 版本为 2.2
25
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
URL 中解析来的 JSON 数据字典构造 Gesture 对象模型。
1 func connectServer () {
2 // member variable
3 if completeFlag == 0 {
4 return
5 }
6 task = session . dataTaskWithURL (url , completionHandler : { (data , res , error ) ->
Void in
7 if let e = error {
8 print (" dataTaskWithURL fail: \(e. debugDescription )")
9 return
10 }
11 if let d = data {
12 print ("\( NSString(data: d, encoding: NSUTF8StringEncoding ))")
13
14 if let jsonObj = try? NSJSONSerialization . JSONObjectWithData (d, options:
NSJSONReadingOptions.AllowFragments) as? NSDictionary {
15 self. Gesture = Gesture (fromDictionary: jsonObj !)
16 }
17 self .completeFlag = 1
18
19 }
20 })
21 task !. resume ()
22 }
代码片段 5.8: iOS 端与服务端通信
iOS watchOS WatchConnectivity 架, iOS
watchOS 端接受,如代码5.9 5.10所示。
1 func updateMessage () {
2 if WCSession.defaultSession ().reachable {
3 let content:[ String:String] = ["x": PinchFinger .text !, "y": PinchStrength .text !,
"z": GrabStrength.text !]
4 let message = ["up": content]
5 WCSession.defaultSession ().sendMessage (
6 message , replyHandler : { ( replyMessage ) -> Void in
7 print("send success ..")
8 }) { ( error) -> Void in
9 print( error)
10 }
11 }
12 }
代码片段 5.9: iOS 端与 watchOS 通信:发送
26
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
1 extension InterfaceController: WCSessionDelegate {
2 func session(session : WCSession , didReceiveMessage message : [ String : AnyObject ])
{
3 guard message["up"] as? [ String:String] != nil else { return}
4 let contents = message["up"] as! [String : String ]
5 self .interaction (contents)
6 }
7 }
代码片段 5.10: watchOS 端与 iOS 通信:接收
27
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
28
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
6 用户调研
我们在 2016 4 14 日至 2016 4 15 日将上述备择设计实施了一个长达两天 (19:00 22:00)
的用户调研,其地点位于西南民族大学武侯校区图书馆一层阅览室。
6.1 用户任务设计
在调研中,一共需要评估备择设计中的五种操作设计:轻触、重触、调节旋钮、左滑、右滑。据此,
我们设计了两种不同的完整任务,分别是拨打电话 (两种方) 和更换表盘界面。总共三个基本任务
执行涵盖了上述五种操作。
务一:拨打电话的第一种方式是使用侧面按钮,找到常用联系人,然后拨号。其中的任务逻辑
为:抬起手腕,呼出常用联系人 (点击侧面按钮)旋转旋钮选择联系人 (旋转旋钮)点击联系人头
(点击屏幕),点击拨打电话 (点击屏幕),选择号码 (点击屏幕),完成;
任务二:而第二种方法则是从表盘界面进入总应用界面,从总应用界面选择电话应用进行拨号。
中的任务逻辑为:抬起手腕,进入 App 总界 (点击旋钮),选择电话 (点击屏幕),点击最近联系
(点击屏幕),点击联系人 (点击屏幕),完成;
任务三:更换表盘的任务则比较简单,只需要在表盘界面使用 Force Touch 即能进行更换。其中的
任务逻辑为:抬起手腕,用力按压屏幕 (Force Touch)手指向左滑动 (左滑)点击屏幕 (点按)
成。
在开始任务之前,用户会学习手表的基本操作,并在用户不知情的情况下学习拇指与其他手指快
速捏合、拇指与其他手指用力捏合、拇指在其他手指上的滑动以及五根手指从伸展到握拳攻击十三种
手势,如表6.1所示。在确认操作无障碍后,才确认开始实验。
6.1: 十三种不同手势的数值索引
索引 描述
1 大拇指在食指上滑动
2 大拇指在中指上滑动
3 大拇指在无名指上滑动
4 大拇指在小指上滑动
5 大拇指和食指的快速捏合
6 大拇指和食指的长时间捏合
7 大拇指和中指的快速捏合
8 大拇指和中指的长时间捏合
9 大拇指和无名指的快速捏合
10 大拇指和无名指的长时间捏合
11 大拇指和小指的快速捏合
12 大拇指和小指的长时间捏合
13 五根手指从伸展到握拳状态
完成上述三个任务后,首先向用户出示调研问卷的第一部分,见附录B,并要求用户在回忆此前学
习的手势和相关任务完成此部分问卷。完成这部分问卷后,再要求用户完成上述三个任务在备择设计
下对应的任务。
29
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
任务一的备择交互方式的操作逻辑是:抬起手腕,呼出常用联系人 (握拳一次)选择联系人 (拇指
在食指上滑动),拨打电话 (需要三次点击屏幕,即拇指和食指快速捏合三次)
任务二的备择交互方式的操作逻辑是:抬起手腕,返回应用界面 (握拳两次)完成电话拨打 (需要
三次点击屏幕,拇指和食指快速捏合三次)
任务三的备择交互方式的操作逻辑是:抬起手腕,在表盘界面下进行 Force Touch (指和食指
时间捏),向左滑动 (指和中指快速捏合)最后再轻点屏幕选择新的表 (拇指和食指快速
)
在完成备择交互方式的任务之后,再向用户出示问卷的第一部分,要求用户对此前的结果进行修
改直至用户自身满意为止。完成后,向用户出示问卷的第二部分,见附录C,并在填写完成后结束本次
实验。
6.2 参与者数量设置
可用性测试中参与者样本数的设置通常没有固定的方案,经典的可用性测试理论认为对于严重的
可用性问题只需五名参与者即可被发 [48]。但是,文 [49] 细分析了在可用性测试中增加用户样本
数的具体好处,当参与者数量为 20 时,可以发现 95% 的可用性测试问题。
Hwang 等人 [50] 中讨论了给出了可用性测试中在样本数设置的动规则。R. Macefield 等在
[51] 讨论了每个用户组中参与者个数的设置对参与者样本数量的影响,并指出将每一组的用户基数设
置为 5 10 人是较为合理的方式。[52] 讨论了评估的总任务和用户任务数量存在差异时,通过引入比
例来调整用户样本大小。
最后,在 [53] 中则讨论了当可用性测试中引入眼球追踪时对参与者样本的影响。综合上述文
的讨论,我们总结给出算法1作为可用性测试中参与样本大小计算方法。其中,样本数的计算由以下几
个参数决定:
1. group: 用户组的数量 (专家、新手等),用户组数量不因超过五组;
2. task: 不同组之间的用户任务是否相同;
3. baseline: 实验结果是否会影响未来产品决策;
4. design: 一次调研中需要比较多少种不同的设计,比较的设计不应超过五种;
5. peruser: 每个用户需要评估多少种设计,用户需要评估的设计不应超过五种;
6. eyetracking: 是否在实验中使用眼球追踪,当支持时,因确定其追踪目的为定性 (qualitatively)
是定量 (quantitatively)
而可用性测试中参与者数量的算法为:
30
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
Algorithm 1 Calculate minimum participant sample size
Require: group, task, design, peruser, eyetracking
Ensure: sample
base 10
sample 10
if eyetracking is qualitatively then
base 12
else if eyetracking is quantitatively then
base 39
end if
if baseline is yes then
base 16
end if
if design peruser then
ratio 1
else
ratio
design
peruser
end if
if task is same then
sample = (base + 6 · (group 1)) · ratio
else
sample = base · group · ratio
end if
在本次用户调研中,我们随机地邀请参与者执行相同的任务,且实验结果会影响未来的设计形式。
因此 group = 1, baseline = yes, task = same, design = 5, peruser = 5, eyetracking = no 。根据算法1容易算
出,合适的样本数应不小于 16 。我们在社交网络上发布参与调研的相关信息,并对进入图书馆或离开
图书馆的行人进行随机邀请,一共取得了 21 位参与者。
6.3 调研结果与分析
6.3.1 参与者信息
21 名参与者中,其年龄范围 18 28 之间。其中男性 11 人,女性 10 人。此外,在这些参与
者中,共有三名参与者有智能手表的使用经验。
在这部分参与者中,有 12 名参与者在日常生活中使用手表,并平均拥有过两款以上的手表。有 9
位参与者打算在未来考虑购买智能手表,而在已经在使用手表的参与者中,有 6 位在未来考虑购买
能手表,并且这部分人认为最影响其使用智能手表的因素为价格。
在没有手表也没有购买智能手表意愿的 28.57% 的参与者中 ( 6 ),均为没有手表使用习惯的用
户,换句话说,如果智能手表不能成为生活必需品,那么几乎不太可能获得这部分用户。
6.3.2 社会接受度
在问卷的第一部分中,我们设置了对社会接受性考察的问题,问题设置为『如何看待公共场合陌生
人抬起手腕执行表6.1所示手势』。在二十一位参与者中,有 42.85% 的参与者 (8 ) 认为是在锻炼或
动手部, 14.28% 的参与者 (3 ) 认为在进行思考, 33.33% 的参与者 (7 ) 认为这种行为是一种行
为艺术并对其表示好奇,而 19.04% 的参与 (4 ) 对这种行为没有想法并不会在意,另外则有 4.76%
的参与者 (1 ) 认为可能是精神失常。
从上述结果来看,除了 4.76% 的参与者对这种方式稍微不能接受外,其他参与者均对此种单手手
31
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
势行为表示开放或接受态度。
6.3.3 手势舒适度
参与者在问卷的第一部分中对表6.1中所列手势进行了舒适程度投票,结果如图6.1所示。
Gesture Index
1 2 3 4 5 6 7 8 9 10 11 12 13
Vote Count
0
2
4
6
8
10
12
14
16
18
6.1: 参与者对表6.1中所示手势的投票结果
结果显示,大拇指在食指上滑动、大拇指和食指的捏合、五根手指由伸展转变为握拳三个手势获得
了最高且几乎一致的投票 (76.19%, 大于 16 ),处于第一梯队。说明这三个单手手势在用户中普遍
具有舒适和易接受的特性。
其次,拇指在中指上滑动、拇指和食指的长时间捏合、拇指和中指的快速及上时间捏合获得了第二
梯度的票数 (52.38%, 大于 11 )说明这部分手势舒适性次之,用户的使用频率不会高于第一梯队的手
势。
值得一提的是,在全部 21 位参与者中,没有一人选择拇指和小指的捏合,即参与者普遍认为大拇
指和小指的长时间捏合操作极不舒适,不适合用作常用的手势。相反,当进行一些比较危险的操作(如
删除)时,可以考虑使用这个手势进行设计。
6.3.4 操作直觉
我们还在问卷第一部分中考察了用户的手势操作直觉,用以验证备择设计的合理性。备择设计的
五个基本操作轻点、Force TouchDigital Crown 和屏幕滑动(左右滑动)中,参与者对十三个手势的投
票结果如图6.2所示,其中红色颜色越深表明用户直觉越高。
从图中很容易看出,参与者对轻点、Force Touch 都有较为强的操作直觉。在轻点中,用户存在两
个明显的分歧,有一部分人认为与轻点操作更加符合的操作逻辑应该是拇指和食指间的滑动,另一部
分人则认为更合适的操作逻辑是拇指和食指的快速捏合。
32
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
6.2: 操作直觉热点图
尤其是对 Force Touch ,用户之间不存在明显的操作分歧,参与者普遍较倾向于使用拇指和食指间
的长时间点按进行操作。其对于 Digital Crown 的手势操作直觉则较适中,但能观察到用户倾向于使用
拇指和食指的双指滑动。
然而,对于滑动操作来说,参与者的选择则开始变得迷惑,用户在多个不同的手势选择上飘忽不
定,每种操作都有三种以上的不同手势被参与者选择。因此,对于滑动、返回这部分设计而言,可能需
要用户进行一定程度上的学习才能获得较好的交互效果。
6.4 结论
通过本次调研中参与者的表现我们可以看到,在备择交互设计中,我们对于点按、Force Touch
Digital Crown 这部分交互方式是较为符合用户操作直觉、同时也是参与者认为较为舒适的手势操作。
好,这部分操作正是用户与手表进行交互时最常用的操作。
而对于左右的滑动、返回、握拳实施特殊按钮这部分的设计,用户没有感受到较为明显的操作直觉
和交互逻辑。幸运的是, Apple Watch 这种垂直方向上流式展示信息的设备上,左右滑动的交互不够
常用,而返回操作属于较为敏感的操作,因此使用不太符合操作逻辑的操作反而能够提高用户警惕,
止误操作。
换句话说,作为备用的交互手段,其设计是良好的。
33
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
34
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
7 进一步工作
7.1 缺陷
本文在此前的篇幅已经叙述过 watchOS LeapMotion 这些相关硬件开发上不可逾越的困难,
性能和功耗都严重受到限 watchOS 上,交互消息的通信和处理都非常关键,一个良好的设计能够
各部分硬件顺利工作。然而软件是依赖硬件设计而成,因此接下来我们考虑在硬件实现本身和择备交
互方案本身存在的问题。
7.1.1 硬件缺陷
作为一个原型项目,本文实现上使用 LeapMotion 完成对手部的的建模和识别, LeapMotion 自身
却又限制在必须与一个桌面端系统进行连接,这就极大的限制了交互的范围和场景,不能在其他场景
下使用。
在文 [54] 中,Gilles 等人将一颗深度摄像头绑定在鞋子顶部,并在用户和腰部设置一个处理硬件用
于识别交互,从而在鞋子顶部的上方制造了交互区域。类似的,我们可以设计图7.1所示的一个可移
LeapMotion 识别方案。
Batterry
LeapMotion
Raspberry PI
Wi-Fi Module
7.1: 硬件结构: 图中由三部分硬件分别为一个 5V-2A 输出功率的移动电源、一个组装了 WiFi 模组的
树莓派 B+、一个 LeapMotion 硬件
在这个方案中,移动电源提供 5V-2A 的输出功率,驱动树莓派;树莓派通过 WiFi 模组进而连接服务
器进行交互信息通信, LeapMotion 则通过 USB 连接到树莓派上,只要树莓派上能够使用 LeapMotion
的软件部分,则此方案能够解决交互范围受限的问题。
遗憾的是,LeapMotion 软件要求宿主 OS 至少具备 2GB RAM,且 SDK 也仅能在 Ubuntu Linux
得到支持,当前的树莓派第二代 B+ 仅有 512MB RAM暂时得到应用,但随着 Windows 10 能够在树莓
派第三代上运行,我们有望看到未来当树莓派扩展到 2GB RAM 时能够搭载 Windows 平台将 7.1
方案得到应用。
35
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
7.1.2 交互缺陷
本文给出的备择设计虽然从交互形式的表面上完整对接了原有的设计,用户调研的结果反映其设
计方式良好。但是,一旦用户任务复杂时,此备择设计的效率则会劣于接触式设计。考虑 Keystroke-Level
ModelKL 模型)[55]我们可以给出手表任务上的 KL 模型,并将一个用户任务分解为几个基础步骤,
见表7.1
7.1: 用户任务基础步骤
变量 描述
K 普通点按操作
F Force Touch 操作
S 滑动操作
T 交互目标选定
R 系统响应
M 用户思考
H 最高优先级操作
对普通点按而言,我们不妨假设双指捏合与屏幕点按的用时一致,注意到在备择设计中,目标的点
按还需要通过双指滑动操作在屏幕上进行选取, K
contact-free
> K
contact
Force Touch 而言,接触式交
互能够直接测量用户的按压力度,故即便对于 Force Touch 依然能够在普通点按的时间内完成,我们也
不妨假设这两个时间相等,在3.1.3一节中,我们给出的对 Force Touch 仿真的方法是设定触摸事件的两
个阶段,在第一个阶段内将点按处理为普通点击事件,显然我们有 F
contact-free
> F
contact
对于 T M H 而言,如果用户已经熟悉这两种设计,我们不妨认为在两种设计上的用时相等。
而对于 T 参数,背着设计需要一个一个将视图中的对象进行遍历,显然 T
contact-free
> T
contact
。另外,备
择设计需要在通信上有所开销,因此 R
contact-free
> R
contact
最后,接触式交互和非接触式交互都只能是以上七个基础步骤的线性组合,而对于同一个任务来
说,其系数相同,根据上面的分析,显然有式7.1成立:
Σ
K,F,S,T,R,M,H
Contact Task < Σ
K,F,S,T,R,M,H
Contact-free Task (7.1)
并且当任务变得复杂时,式7.1左式的值会明显小于右式。
7.2 改进方向
最后,我们对本文所设计系统在未来应用时植入方式的改进,以及系统整体的扩展性进行初步探
讨。
7.2.1 识别方式
本文在手部信息的检测上使用了 LeapMotion 硬件作为解决问题的关键,但实际上 LeapMotion 是一
项作为桌面端交互或虚拟现实交互的输入设备而产生的,依赖视觉方法的 LeapMotion 不完全适合作
为用户的一个随身穿戴部件植入,因为视觉方法的依赖性很强。考虑手表本身的设计,我们可以考虑更
换一种对手势进行识别的方式。
Myo [56] 是一个固定在手臂上的对手部肌肉电信号进行感知从而进行手势识别的装置,如图7.2
1
Myo 通过内置的 Wi-Fi 装置将识别的电信号传递给其他的连接部件,Myo 开放了并规范化了对
1
图片源:https://www.myo.com
36
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
部肌肉电信号时间序列的识别协议,这意味着我们可以对这种表现模式的手势数据进行分析,进而逐
步完善手势系统。
7.2: Myo 识别装置: Myo 安装在手臂上对手部肌肉的电信号进行检测,从而根据这些电信号在时间
序列上的变化特征进行手势识别。
Myo 的设计实际上完全符合手表的人体工程学设计,因为手表的表带就 Myo 好的存在形式。
Myo 能够缩小并设计成手表的表带时,这时手表系统本身在识别上不再依赖其他额外的设备,大幅
降低设备间通信的消耗,便更加高效的完成交互。
7.2.2 交互感知中心
4.2.1 一节中,我们讨论了通信架构的设计,实际上这一设计也适用于一般情况。
7.3 为对前文中适用于手表备择设计的通信架构的推广设计,并在服务端和客户端引入了交互感
知中心(Interaction Perception Center, IPC 中我们给出了一个基于桌面端和移动端设备的跨平台交互
解决方案)服务 [57]当我们将 IPC 这系统级的交互模型引入时,实现 IPC 核心服务的传感器处理协议
Sensor Handle Protocol, SH 协议)能够屏蔽掉硬件之间的差异,统一的将传感器形式化、标准化,而通
过跨设备交互协议Cross-Device Interaction Protocol, CDI 协议)能实现用户设备与 IPC 务之间的
信。
Server
IPC Core Service
User
Devices
Mobile Phone
Sensors
Cross-Device Interaction Protocol
Hosting OS
Raw Processing Layer
Sensor
Message
Protocol
IPC Local Service
7.3: 通用通信架构: 在服务端和客户端引入了 IPC 服务。
不同的传感器先在与其连接的桌面端系统上按传感器各自的 SH 协议对原始数据进行初步加工,
OS 将这些消息集中发送给服务端交给 IPC 核心服务进行处理进行二次加工,完成后再由服务端请求
37
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
层按 CDI 协议进行封装并分发给相应的设备;另一方面, IPC 核心服务不可用时,传感器的宿主 OS
依然能与客户端的本地 IPC 服务进行通信,使得在服务器离线状态下依然能够响应一些简单的交互。
IPC 设计之初一个纯软件的解决方案,目的解决桌面端设备和移动端设的跨平台分布式数
据通信与分析,而从前文中的基础通信架构设计中我们能够得到启示:首先,统一交互系统的设计不宜
将传感器原始数据直接发送给 IPC 务器进行分析,传感器的数据应当在传感器的宿主 OS 上完成对
数据的基础加工,加工后的数据和 IPC 服务器之间增加一层消息协议来保证任何传感器数据都能接入
IPC 的接口;其次,IPC 传递给用户设备的交互消息需是用户可选的,这些交互在任何情况下,都至少
有一种主交互方案。即被动交互应当是隐式、备择的。
7.3 结束语
本文对智能手表上现有的交互形式进行了备择设计,配合了 Haptic Engine 对用户的直观震动反馈,
完成了对基础点按、滑动、Digital CrownForce Touch 等系列原生手势的备择设计,将十种原生交互简
化为了八种备择交互,且消除了接触式交互的依赖,并说明了此套备择设计的交互完备性。与主流交互
不同,备择交互更像是编程语言上的一个语法糖,其侧重于临时、快捷、简便的实现用户期望的输入。
在本次的设计中,我们克服了从硬件平台到软件框架接口不支持缺陷,在克服这些缺陷中发展出
来的架构设计给与了我们在整合一套交互系统时的很多有益启示。
通过用户调研,我们还评估了整套备择设计所涉及的手势舒适度以及操作的直觉。结果显示,参与
者对常用交互方式所对应手势没有舒适度和操作逻辑的明显分歧,此外对社会接受度的调研显示用户
几乎不会认为此交互模式案会带来社会排斥感。
总的来说,人机交互的创新往往伴随着硬件和软件的结合,在软件层的方法有时往往会受到硬件
平台的各种限制,一套打通硬件与软件的架构设计不仅涉及从硬件到软件的垂直整合能力,还需要对
横向设计、产品可用性甚至用户本身进行考量,这些内容浮与水面之上,也仅仅只是冰山的一角。
38
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
附录 A 使用许可
此毕设计程序、文等部源文件已开源代码,可以论文页:https://changkun.
us/bechelorthesis/ GitHub 仓库中查看:https://github.com/changkun/BachelorThesis/
注意,本毕业设计 (论文) 中的所有文字、图片及视频内容均采用知识共享署名-非商业性使用-相同
方式共享 (BY-NC-SA) 4.0 国际许可协议
1
进行许可。
其余部分(代码)则采用 GNU Public Licence v3
2
进行许可。
1
http://creativecommons.org/licenses/by-nc-sa/4.0/
2
http://www.gnu.org/licenses/gpl-3.0.en.html
39
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
40
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
附录 B 用户调研问卷 - 第一部分
您好!
感谢您参与我们的研究!这份问卷是我们本次研究的第一部分,我们需要您填写这份简单的问卷。
其中用 * 标注的问题是必须填写的
1. 请选择下面你觉得操作最舒适的多个操作 *
请选择至少五个选项
大拇指在食指上滑动
大拇指在中指上滑动
大拇指在无名指上滑动
大拇指在小指上滑动
大拇指和食指的快速捏合
大拇指和食指的长时间捏合
大拇指和中指的快速捏合
大拇指和中指的长时间捏合
大拇指和无名指的快速捏合
大拇指和无名指的长时间捏合
大拇指和小指的快速捏合
大拇指和小指的长时间捏合
五个手指从伸展到握拳状态
2. 当你在马路、公交车、地铁等公共场所看到陌生人抬起手进行问题 1 的操作时,你会怎么想?
请在下方写下你的想法
3. 请连接下方左右侧的你认为的所有符合你操作直觉的两个选项 *
左侧的每个选项只能连接一个右侧选项, 若没有则可不进行连接
大拇指在食指上滑动
大拇指在中指上滑动
大拇指在无名指上滑动
大拇指在小指上滑动
手指执行轻点操作 (如手机屏幕) 大拇指和食指的快速捏合
手指用力按压某物 大拇指和食指的长时间捏合
调节旋钮 大拇指和中指的快速捏合
手指在平面上向左滑动 大拇指和中指的长时间捏合
手指在平面上向右滑动 大拇指和无名指的快速捏合
大拇指和无名指的长时间捏合
大拇指和小指的快速捏合
大拇指和小指的长时间捏合
五个手指从伸展到握拳状态
41
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
42
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
附录 C 用户调研问卷 - 第二部分
您好!
感谢您参与我们的研究!这份问卷是我们本次研究的最后一个部分,我们需要您填写这份简单的
问卷。其中用 * 标注的问题是必须填写的
1. 您的参与编号 *
请在下方的空白处填写
2. 年龄?
请在下方的空白处填写
3. 性别?*
请在下方选择合适的选项
4. 佩戴手表的频率?*
请对下方的问题以:从不、极少、有时、经常、总是,这五个选项来回答。
将手表佩戴在左手的频率?
将手表佩戴在右手的频率?
不佩戴手表的频率?
忘记带手表的频率?
5. 是否有智能手表的使用经验?*
请在下方选择合适的选项
6. 使用过什么型号的智能手表?*
如果 5 中勾选了『是』,请在下方的空白处填写
7. 拥有多少款不同的手表?*
包括智能手表和传统手表, 不同的表带按不同款计, 即使不经常使用手表,请在下方的空白处填
写数字
8. 是否还在继续使用手表或智能手表?*
请在下方选择合适的选项
43
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
9. 原因是什么?*
请在下方的空白处填写
10. 是否考虑购买智能手表?*
请选择下方合适的选项
11. 原因是什么?*
请在下方的空白处填写
12. 你觉得最影响你使用智能手表的因素是什么?*
请选择下方合适的一个选项
价格
电池续航
使用习惯
其他,请写下你的原因
13. 对本次实验你是否还有其他疑问、看法,欢迎您提一些意见。
44
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
参考文献
[1] Jiang H, Chen X, Zhang S, et al. Software for Wearable Devices: Challenges and Opportunities [J/OL].
CoRR. 2015, abs/1504.00747. http://arxiv.org/abs/1504.00747.
[2] 董士海. 人机交互的进展及面临的挑战 [J]. 计算机辅助设计与图形学学报. 2004, 16 (1): 1–13.
[3] 岳玮宁, 董士海, 王悦, et al. 普适计算的人机交互框架研究 [J]. 计算机学报. 2004, 27 (12): 1657–1664.
[4] Hudson S E, Mankoff J. Concepts, Values, and Methods for Technical Human–Computer Interaction Re-
search [M] // Judith S Olson W A K. Ways of Knowing in HCI. Springer, 2014: 2014: 69–93.
[5] 朱子健. 情境因素对智能手表使用行为影响研究 [J]. 中国新技术新产品. 2015 (7): 10–12.
[6] 刘珩. 智能手表交互设计研究 [J]. 科技与创新. 2015 (8): 73–73.
[7] 程时伟. 基于上下文感知的移动设备自适应用户界面设计研究 [D]. [S. l.]: 浙江大学, 2009.
[8] 扶爱名. 基于可穿戴计算的设备维护辅助系统自适应用户界面研究 [D]. [S. l.]: 电子科技大学, 2006.
[9] Apple Inc. Apple Watch Human Interface Guidelines [EB/OL]. [2016-03-17]. https://developer.
apple.com/watch/human-interface-guidelines/.
[10] Wobbrock J O, Wilson A D, Li Y. Gestures without libraries, toolkits or training: a $1 recognizer for user
interface prototypes [C]. In Proceedings of the 20th annual ACM symposium on User interface software
and technology. 2007: 159–168.
[11] Anthony L, Wobbrock J O. A lightweight multistroke recognizer for user interface prototypes [C]. In Pro-
ceedings of Graphics Interface 2010. 2010: 245–252.
[12] 清水, 方志刚, 沈模, et al. 势识别技术及其在人机交互中的应 [J]. 类工效. 2002, 8 (1):
27–29.
[13] 雅茜, 长坤, 郭曌. 基于单目视觉和简单手势的空间交互技术 [J]. 西南民族大学学报: 自然
学版. 2014, 40 (6): 871–876.
[14] 狄海进. 基于三维视觉的手势跟踪及人机交互中的应用 [D]. [S. l.]: 南京大学, 2011.
[15] 侯文君, 吴春京. 基于数据分析的智能手表手势直觉化交互研究 [J]. 包装工程. 2015, 36 (22): 13–16.
[16] Vatavu R-D, Zaiti I-A. Leap Gestures for TV: Insights from an Elicitation Study [C/OL]. In Proceedings of
the 2014 ACM International Conference on Interactive Experiences for TV and Online Video. New York,
NY, USA, 2014: 131–138. http://doi.acm.org/10.1145/2602299.2602316.
[17] Loclair C, Gustafson S, Baudisch P. PinchWatch: a wearable device for one-handed microinteractions [C].
In MobileHCI Workshop on Ensembles of On-Body Devices. 2010.
45
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
[18] Lv Z, Feng S, Feng L, et al. Extending touch-less interaction on vision based wearable device [C]. In Virtual
Reality (VR), 2015 iEEE. 2015: 231–232.
[19] Kerber F, Schardt P, Löchtefeld M. WristRotate: A Personalized Motion Gesture Delimiter for Wrist-worn
Devices [C/OL]. In Proceedings of the 14th International Conference on Mobile and Ubiquitous Multime-
dia. New York, NY, USA, 2015: 218–222. http://doi.acm.org/10.1145/2836041.2836063.
[20] Knibbe J, Martinez Plasencia D, Bainbridge C, et al. Extending Interaction for Smart Watches: Enabling
Bimanual Around Device Control [C/OL]. In CHI ’14 Extended Abstracts on Human Factors in Computing
Systems. New York, NY, USA, 2014: 1891–1896. http://doi.acm.org/10.1145/2559206.2581315.
[21] Kratz S, Rohs M. Hoverflow: Exploring Around-device Interaction with IR Distance Sensors [C/OL]. In
Proceedings of the 11th International Conference on Human-Computer Interaction with Mobile Devices and
Services. New York, NY, USA, 2009: 42:1–42:4. http://doi.acm.org/10.1145/1613858.1613912.
[22] Perrault S T, Lecolinet E, Eagan J, et al. Watchit: Simple Gestures and Eyes-free Interaction for Wrist-
watches and Bracelets [C/OL]. In Proceedings of the SIGCHI Conference on Human Factors in Computing
Systems. New York, NY, USA, 2013: 1451–1460. http://doi.acm.org/10.1145/2470654.2466192.
[23] Ogata M, Imai M. SkinWatch: Skin Gesture Interaction for Smart Watch [C/OL]. In Proceedings of the
6th Augmented Human International Conference. New York, NY, USA, 2015: 21–24. http://doi.acm.
org/10.1145/2735711.2735830.
[24] Kim J, He J, Lyons K, et al. The gesture watch: A wireless contact-free gesture based wrist interface [C].
In Wearable Computers, 2007 11th IEEE International Symposium on. 2007: 15–22.
[25] Yang Y, Chae S, Shim J, et al. EMG Sensor-based Two-Hand Smart Watch Interaction [C/OL]. In Adjunct
Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology. New York,
NY, USA, 2015: 73–74. http://doi.acm.org/10.1145/2815585.2815724.
[26] Chen X A, Grossman T, Wigdor D J, et al. Duet: Exploring Joint Interactions on a Smart Phone and a Smart
Watch [C/OL]. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. New
York, NY, USA, 2014: 159–168. http://doi.acm.org/10.1145/2556288.2556955.
[27] Yang F, Li S, Huang R, et al. MagicWatch: Interacting & Segueing [C/OL]. In Proceedings of the 2014
ACM International Joint Conference on Pervasive and Ubiquitous Computing: Adjunct Publication. New
York, NY, USA, 2014: 315–318. http://doi.acm.org/10.1145/2638728.2638848.
[28] 傅泉俊. 穿戴式体感交互平台的研究与实现 [D]. [S. l.]: 电子科技大学, 2015.
[29] Bi X, Li Y, Zhai S. FFitts Law: Modeling Finger Touch with Fitts’ Law [C/OL]. In Proceedings of the
SIGCHI Conference on Human Factors in Computing Systems. New York, NY, USA, 2013: 1363–1372.
http://doi.acm.org/10.1145/2470654.2466180.
[30] Boring S, Ledo D, Chen X A, et al. The fat thumb: using the thumb’s contact size for single-handed mobile
interaction [M]. New York, New York, USA: ACM, 2012.
46
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
[31] Buschek D, Alt F. TouchML: A Machine Learning Toolkit for Modelling Spatial Touch Targeting Be-
haviour [C]. In IUI ’15: Proceedings of the 20th International Conference on Intelligent User Interfaces.
March 2015.
[32] Vogel D, Baudisch P. Shift: A Technique for Operating Pen-based Interfaces Using Touch [C/OL]. In Pro-
ceedings of the SIGCHI Conference on Human Factors in Computing Systems. New York, NY, USA, 2007:
657–666. http://doi.acm.org/10.1145/1240624.1240727.
[33] Huxpro. Forcify [EB/OL]. [2016-03-16]. https://github.com/huxpro/forcify.
[34] Changkun Ou. AugmentedTouch: Potential Device Behaviour [EB/OL]. [2016-04-02]. https://
github.com/changkun/AugmentedTouch.
[35] Apple Inc. App Programming Guide for watchOS [EB/OL]. [2016-04-02]. https://developer.apple.
com/library/watchos/documentation/General/Conceptual/WatchKitProgrammingGuide/.
[36] Leap Motion Inc. Leap SDK Documentation [EB/OL]. [2016-03-17]. https://developer.
leapmotion.com/documentation/index.html.
[37] Weichert F, Bachmann D, Rudak B, et al. Analysis of the Accuracy and Robustness of the Leap Motion
Controller [J]. Sensors. 2013, 13: 6380–6393.
[38] Du G, Zhang P, Liu X. Markerless Human-Manipulator Interface Using Leap Motion with Interval Kalman
Filter and Improved Particle Filter [J]. IEEE Transactions on Industrial Informatics. 2016, PP (99): 1–1.
[39] Garber L. Gestural technology: Moving interfaces in a new direction [J]. Computer. 2013, 46 (10): 22–25.
[40] 崇斌, 周明, 沈俊辰, et al. 种基于 Leap Motion 的直观体交互技 [J]. 子与信息学报. 2015,
37 (2): 353–359.
[41] 潘佳佳, 徐昆. 基于 Leap Motion 的三维自由手势操作 [J]. 中国科技论文. 2015 (2): 207–212.
[42] , 晁建刚, 杨进, et al. Leap Motion 关键点模型手姿态估计方法 [J]. 计算机辅助设计与图形学
. 2015, 27 (7): 1211–1216.
[43] Marin G, Dominio F, Zanuttigh P. Hand gesture recognition with leap motion and kinect devices [C]. In
Image Processing (ICIP), 2014 IEEE International Conference on. 2014: 1565–1569.
[44] Zaiţi I-A, Pentiuc Ş-G, Vatavu R-D. On free-hand TV control: experimental results on user-elicited gestures
with Leap Motion [J]. Personal and Ubiquitous Computing. 2015, 19 (5-6): 821–838.
[45] Apple Inc. Watch Connectivity Framework Reference [EB/OL]. [2016-04-02]. https:
//developer.apple.com/library/watchos/documentation/WatchConnectivity/Reference/
WatchConnectivity_framework/.
[46] Apple Inc. The Swift Programming Language(Swift 2.2 Prerelease) [M/OL]. Apple Inc., 2016. https:
//itunes.apple.com/cn/book/swift-programming-language/id1002622538.
47
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
[47] Apple Inc. Using Swift with Cocoa and Objective-C(Swift 2.2 Prerelease) [M/OL]. Apple Inc., 2016.
https://itunes.apple.com/cn/book/using-swift-cocoa-objective/id1002624212.
[48] Albert W, Tullis T. Measuring the user experience: collecting, analyzing, and presenting usability met-
rics [M]. Newnes, 2013.
[49] Faulkner L. Beyond the five-user assumption: Benefits of increased sample sizes in usability testing [J/OL].
Behavior Research Methods, Instruments, & Computers: 379–383. http://dx.doi.org/10.3758/
BF03195514.
[50] Hwang W, Salvendy G. Number of People Required for Usability Evaluation: The 10±2 Rule [J/OL].
Commun. ACM. 2010, 53 (5): 130–133. http://doi.acm.org/10.1145/1735223.1735255.
[51] Macefield R. How to Specify the Participant Group Size for Usability Studies: A Practitioners
Guide [J/OL]. J. Usability Studies. 2009, 5 (1): 34–45. http://dl.acm.org/citation.cfm?id=
2835425.2835429.
[52] Medlock M C, Wixon D, Terrano M, et al. Using the RITE method to improve products: A definition and
a case study [J]. Usability Professionals Association. 2002, 51.
[53] Pernice K, Nielsen J. Eyetracking methodology: How to conduct and evaluate usability studies using eye-
tracking [J]. Nielsen Norman Group Technical Report. 2009.
[54] Bailly G, Müller J, Rohs M, et al. ShoeSense: A New Perspective on Gestural Interaction and Wearable
Applications [C/OL]. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems.
New York, NY, USA, 2012: 1239–1248. http://doi.acm.org/10.1145/2207676.2208576.
[55] Card S K, Moran T P, Newell A. The Keystroke-level Model for User Performance Time with Interac-
tive Systems [J/OL]. Commun. ACM. 1980, 23 (7): 396–410. http://doi.acm.org/10.1145/358886.
358895.
[56] Thalmic Labs Inc. Myo Official Site [EB/OL]. [2016-04-05]. https://www.myo.com.
[57] 欧长, 郭瞾阳, 石梦鑫, et al. 基于机器学习和云计算的交互感知中心的研究与实现 [R/OL]. 2015.
https://changkun.de/blog/ipc/.
48
西南民族大学本科毕业生论文 欧长坤:智能手表的非接触式备择交互模式的设计
致谢
本论文是在我的导师——陈雅茜老师的细心指导下完成。陈雅茜老师在我本科阶段四年的学习过
程中给予了我极大的指导与帮助,从最初的美国数学建模竞赛论文指导开始,再到大学生创新创业项
目的申请,科研论文的撰写与发表,慕尼黑大学交换学期的学习,以及现在的本科毕业设计。陈老师为
人亲和、严谨求实、认真负责,对我各方面严格要求,使得我的知识、能力和视野,甚至是日后的道路
都有着不可小觑的影响,这些帮助是我目前人生阶段中其他任何一位给予我帮助的老师都无法企及的。
首先,我在此对陈雅茜老师表示最崇高的敬意和衷心的感谢。
其次,我感谢我所有的亲人,特别是我的母亲与父亲。是他们的对我的关怀、支持与包容,才让我
走到了今天,他们是我永不倒下的后盾;我感谢我的朋友,他们与我一同怀揣梦想,共同为了自己的理
想奋斗不止,互相激励;我感谢其他关心、帮助、指导过我的老师,正是有了他们才使得我的本科阶段
的学习过得充实无比。
最后,我还要感谢我在慕尼黑大学进行交换时的导师 Andreas Butz, Heinrich Hußmann 以及博士生
Daniel Buschek。在他们的帮助和指导下,我在慕尼黑度过了一个愉快且充实的交换学期。此外,Butz
教授还同意担任本次毕业设计的联合导师,并对论文英文版进行审查和评阅,对此表示特别的感谢。
随着本文的结束,我的本科学业也将完成,我会带着师长、亲人的鼓励与期望,迈向人生的下一个
阶段,希望自己能保持永远年轻,永远热泪盈眶。
愿明天会更好。
49