Stylus Assistant

Designing Dynamic Constraints for Facilitating Stylus Inputs on Portable Displays

Posted by Andln on May 24, 2016

关于项目

目前在平板电脑上使用触控笔逐渐成为了一种趋势,去年苹果公司推出的iPad Pro,可以在在精细的像素级别,打造出丰富的视觉效果,提供了流畅的输入体验。然而,目前在入门学习手写或者画画应用的时候,还非常依赖屏幕上的视觉引导。这样的引导很容易在使用的时候被手遮挡,因此新手的学习与练习过程常常是分开的,无法同步,使得学习效果会存在折扣。因此,本文Stylus Assistant提出了两种机械手臂设计,模拟儿时师长的手把手学习写字画画的过程,使用这种物理上的触觉引导,来辅助新手学习在新的应用和平台上学习写字画画。 本篇目前已经被(Siggraph-ETech)[],感谢陈炳宇教授与梁荣豪博士的指导,并感谢洪恒艺同学与邓善元学弟的鼎力协助。

交互理念

触觉引导的交互设计

为了减少视觉引导在学习过程中的权重,先前很多研究也做了很多类似的机械装置。(COMP*PASS)[]提出了一种类似圆规的工具,来辅助用户用户准确地画出各种中心对称的形状。这个装置的输入形状有限,不足以满足丰富的笔画图形效果。(LineForm)[]中提出了一种蛇形机器人,通过自身形变成各种形状,如直尺,圆圈,三角形,让用户可以使用它来辅助写画。(DePend)[]通过桌面下方上下左右移动的磁铁,来引导桌面上方带磁性笔尖的画笔来辅助写画。以上这两种装置,没有考虑屏幕与装置之间的相互关系,并且在可携带性上需要重新考量。

因此,在这个项目中,提出了两种马达设计,DynaFrame与DynaBase。希望的是能够在一般的平板上,实现手把手的写画引导。不仅可以满足可携带,而且也会希望尽量减少马达对屏幕画面内容的遮挡。

DynaFrame 的交互设计

机构设计:DynaFrame,顾名思义,是一种动态(Dynamic)的机械手臂像框架(Frame)一样包裹在平板周围。这个机械手臂驱动器为型号为(Dynamixel AX18-A)[]的舵机,这种舵机力矩为18.3kg/cm,速度为0.103 sec/60,体积为32X50X40mm,连接件为3D打印材料,末端由透明的环形亚克力板组成。上半部分为两个舵机,组成机械手臂的肩关节与肘关节。而前臂部分有两个关节,使得手臂可以上下移动。

设计考量:首先在机构上,连接件设计为「工」字形,以减少遮挡。而末端也是使用透明的亚克力,也为了起到相同的作用。另外DynaFrame前臂有两个舵机,使其在垂直于平板方向增加了一个维度,这样就可以模拟提笔与下笔的动作。 而在使用上,用户在日常操作平板的时候,装置是环绕在平板周围,像一个保护框架。只有当需要物理和触觉引导的时候,通过IK(Inverse Kinematic)控制,将末端的环形笔尖卡座移动到相应的位置。

交互设计:DynaFrame的使用逻辑是,用户预先为装置记录路径,包括提笔落笔的位置,笔画的形状,行笔的速度。在记录完路径后,则打开相对应的应用,为新手用户播放预设路径,引导其使用新的应用。首先DynaFrame将末端的环形笔尖卡座移动到开始位置等待用户,当用户落笔后,卡座引导笔尖在路径上移动,到达结束点,完成一个笔画的引导,之后不断重复以上的步骤。对于那些可以检测悬浮画笔的的平板电脑-(Sumsung Galaxy Tag)[http://www.samsung.com],DynaFame则可以引导画笔到指定的悬浮位置,并且可以在半空中移动。通过这样的触觉引导,将有助于用户练习的同时学习,更好地学会如何使用新的应用与新的画笔。

讨论:DynaFrame,这种环绕在平板周围的机械手臂,外露的机械手臂,能够更高地告知用户使用正确的动作运笔。有力的触觉的引导,让用户更了解运笔过程中的速度。然而外露的机械手臂依然会遮挡住屏幕画面的内容,且偶尔会与用户的手互相干扰。因此将手臂放到屏幕下方,会成为一个很好的设计选择。

DynaBase 的交互设计

机构设计:上述的DynaFrame依然有遮挡的缺点,因此DynaBase则是尝试去解决这样的一个缺点。DynaBase的组成与DynaFrame类似,也是由舵机Dynamixel AX18-A组成。主体部分的机械手臂设计与DynaFrame相同,DynaBase前臂只有一个马达,使得末端可以在垂直与平板方向旋转。与DynaFrame最大的区别是DynaBase是将机械手臂放在平板的下方,为了控制上方的画笔,我们通过移动机械手臂末端的磁铁来移动屏幕上方的磁铁。我们将屏幕下方的磁铁形式叫做基座,基座为一对磁铁,一个正极向上,一个负极向上;我们将屏幕上方磁铁设计成为卡座,卡座的设计分为两种,点形卡座(仅仅一个磁铁),尺形卡座(一对磁铁),这样下方的基座就可以通过磁性来控制上方卡座的移动或旋转,以此来控制与引导画笔。

交互设计:相对于DynaFrame,DynaBase呈现在用户前的只有上方的磁性卡座,而且DynaBase的引导方式则更为自由与多样。一开始DynaBase也需要记录所要引导的路径。在引导用户的方式上,DynaBase分为全介入(hard constraint)与半介入(soft constraint)的两种方式。全介入是类似DynaFrame那样,将画笔放在卡座中间,限制住画笔所有的自由度,让画笔必须完全跟着卡座移动。而半介入的引导则是限制住画笔的某一个自由度,使得用户能在一定程度上保持自己的自由度。这里举两个例子来说明:

  • 点形卡座:在点形卡座的半介入引导的时候,DynaBase只会记录每个笔画的起始点与终止点,首先点形卡座移动到笔画起始点旁,当画笔放在起始点上的时候,卡座移动到终止点,用户自己画到终止点,并被卡座阻止,防止其画出笔画终止点,以此反复。
  • 尺形卡座:而尺形卡座,顾名思义,则是模拟尺子的引导形式。这个可以用在用户对齐的时候使用,当用户画多个笔画,需要在在x方向或者y方向上对齐。比如当用户画波浪线的时候,需要波浪线下方对齐,这时候就可以记录一条直线,然后用户可以跟随这卡座画波浪线,可以自己控制波浪线的频率和振幅,但是波浪线下方都是完全对齐的。

讨论:虽然DynaBase缺少z方向上的纬度,当时更少的遮挡,让用户可以更好地关注画面上的内容,而且这样也不容易引起用户与机械手臂的互相干扰。z方向上的旋转,让其有独特的半介入引导方式。

技术细节

Dynamixel AX18-A的使用

IK(Inverse Kinematic)

在这个项目中,使用了IK来控制机械手臂的移动,但与传统的二段式机械手臂不同,为了保证机械手臂肘关节能够向内弯折90度,而不会前臂卡到上臂,这里机械手臂的肘关节向外偏移了大约3cm的距离。

相关的IK的源代码发布在(这里)[],下载后可以根据具体情况修改主要的这些参数:

  • 上臂长度
  • 偏移距离
  • 前臂长度

Processng与Arduino

Processing与Arduino的沟通主要以 然而一般的他们的字节传送只有0-255byte,这边我们的传输需要是是0-1023byte,这时候的传输需要一些技巧,否则很容易传输错误。我们提出的解法是这样的,

然而由于要控制Dynamixel AX18-A,需要两个Serail Port,因为这里需要使用Arduino Mega型号,然而在Processing与Arduino Mega这里有一个小bug就是

结论

因此,在这个项目中,希望提出一种能够在平板上实现触觉的引导形式,因此提出了两种马达设计,DynaFrame与DynaBase,以此实现手把手的写画引导。不仅可以满足可携带,而且也会希望尽量减少马达对屏幕画面内容的遮挡。以此实现了全介入式(hard constraint)与半介入式(soft constraint)的交互设计。