Preparing your result...
Loading...
Press Esc to dismiss this message

Identifying contacts on a touch surface (17-Nov-2009)

Thumbnail
US Patent Publication (Source: USPTO)
Publication No. US 7619618 B2 published on 17-Nov-2009
Application No. US 11/428521 filed on 03-Jul-2006
Abstract (English)
Apparatus and methods are disclosed for simultaneously tracking multiple finger and palm contacts as hands approach, touch, and slide across a proximity-sensing, multi-touch surface. Identification and classification of intuitive hand configurations and motions enables unprecedented integration of typing, resting, pointing, scrolling, 3D manipulation, and handwriting into a versatile, ergonomic computer input device.
Inventors/Applicants
Westerman, Wayne Carl [+1] [-1]
San Francisco, CA, US
Elias, John G.
Townsend, DE, US
Assignees
Apple Inc.
Cupertino, CA, US
Classifications
International (2006.01): G09G 5/00
National: 345/173; 715/863
Field of Search: 345/156.-184; 715/863
Patent References
US 3333160 A Proximity responsive system Jul-1967
US 3541541 A X-y position indicator for a display system Nov-1970
US 3662105 A Electrical sensor of plane coordinates May-1972 178/18 [+252] [-252]
US 3798370 A Electrographic sensor for determining planar coordinates Mar-1974 178/18
US 4246452 A Switch apparatus Jan-1981 200/5
US 4550221 A Touch sensitive control device Oct-1985 178/18
US 4672364 A Touch input device having power profiling Jun-1987 340/365. P
US 4672558 A Touch-sensitive data input device Jun-1987 364/518
US 4692809 A Integrated touch paint system for displays Sep-1987 358/247
US 4695827 A Electromagnetic energy interference seal for light beam touch panels Sep-1987 340/365. P
US 4733222 A Capacitance-variation-sensitive touch sensing array system Mar-1988 340/365. C
US 4734685 A Position control apparatus Mar-1988 340/710
US 4746770 A Method and apparatus for isolating and manipulating graphic objects on computer video monitor May-1988 178/18
US 4771276 A Electromagnetic touch sensor input system in a cathode ray tube display device Sep-1988 340/712
US 4788384 A Device for two-dimensional localization of events that generate current on a resistive surface Nov-1988 178/18
US 4806846 A High accuracy direct reading capacitance-to-voltage converter Feb-1989 324/60. CD
US 4898555 A Display screen bezel and assembly method Feb-1990 445/22
US 4968877 A VideoHarp Nov-1990 250/221
US 5003519 A Alarm arrangement for a timepiece Mar-1991 368/73
US 5017030 A Ergonomically designed keyboard May-1991 400/485
US 5178477 A Ergonomic keyboard input device Jan-1993 400/489
US 5189403 A Integrated keyboard and pointing device system with automatic mode change Feb-1993 340/711
US 5194862 A Touch sensor array systems and display systems incorporating such Mar-1993 341/20
US 5224861 A Training device onboard instruction station Jul-1993 434/35
US 5241308 A Force sensitive touch panel Aug-1993 341/34
US 5252951 A Graphical user interface with gesture recognition in a multiapplication environment Oct-1993 345/156
US 5270711 A Touch sensor array systems and display systems incorporating such Dec-1993
US 5281966 A Method of encoding alphabetic characters for a chord keyboard Jan-1994 341/22
US 5305017 A Methods and apparatus for data input Apr-1994 345/174
US 5345543 A Method for manipulating objects on a computer display Sep-1994 395/137
US 5376948 A Method of and apparatus for touch-input computer and related display employing touch force location external to the display Dec-1994 345/173
US 5398310 A Pointing gesture based computer note pad paging and scrolling interface Mar-1995 395/144
US 5442742 A Method and apparatus for the manipulation of text on a computer display screen Aug-1995 395/146
US 5463388 A Computer mouse or keyboard input device utilizing capacitive sensors Oct-1995 341/33
US 5463696 A Recognition system and method for user inputs to a computer system Oct-1995 382/186
US 5471578 A Apparatus and method for altering enclosure selections in a gesture based input system Nov-1995
US 5479528 A Intelligent work surfaces Dec-1995
US 5483261 A Graphical input controller and method with rear screen image detection Jan-1996 345/173
US 5488204 A Paintbrush stylus for capacitive touch sensor pad Jan-1996 178/18
US 5495077 A Object position and proximity detector Feb-1996 178/18
US 5513309 A Graphic editor user interface for a pointer-based computer system Apr-1996 395/155
US 5523775 A Method for selecting objects on a computer display Jun-1996 345/179
US 5530455 A Roller mouse for implementing scrolling in windows applications Jun-1996 345/163
US 5543590 A Object position detector with edge motion feature Aug-1996 178/18
US 5543591 A Object position detector with edge motion feature and gesture recognition Aug-1996 178/18
US 5548667 A Image processing system and method thereof in which three dimensional shape is reproduced from two dimensional image data Aug-1996
US 5563632 A Method of and apparatus for the elimination of the effects of internal interference in force measurement systems, including touch - input computer and related displays employing touch force location measurement techniques Oct-1996 345/173
US 5563996 A Computer note pad including gesture based note division tools and method Oct-1996 395/144
US 5565658 A Capacitance-based proximity with interference rejection apparatus and methods Oct-1996 178/19
US 5579036 A Touch screen device and shielding bracket therefor Nov-1996 345/173
US 5581681 A Pointing gesture based computer note pad paging and scrolling interface Dec-1996 395/804
US 5583946 A Method and apparatus for recognizing gestures on a computer system Dec-1996 382/187
US 5589856 A System & method for dynamically labeled touch sensitive buttons in a digitizing display Dec-1996
US 5590219 A Method and apparatus for recognizing gestures on a computer system Dec-1996 382/202
US 5592566 A Method and apparatus for computerized recognition Jan-1997 382/187
US 5594469 A Hand gesture machine control system Jan-1997
US 5594810 A Method and apparatus for recognizing gestures on a computer system Jan-1997 382/187
US 5596694 A Method and apparatus for indicating a change in status of an object and its disposition using animation Jan-1997 395/152
US 5612719 A Gesture sensitive buttons for graphical user interfaces Mar-1997 345/173
US 5625715 A Method and apparatus for encoding pictures including a moving object Apr-1997
US 5631805 A Touch screen enclosure having an insertable graphic sheet May-1997 361/681
US 5633955 A Method of connecting shapes on a display of a computer system May-1997 381/187
US 5634102 A Methods and apparatus for a selectable backdrop May-1997 395/334
US 5636101 A Touch screen enclosure system having touch screen pan and hinged rear enclosure section for ease of serviceability Jun-1997 361/681
US 5642108 A Chordic keyboard system for generating a signal in response to a chord that is assigned using a correlation based on a composite chord-difficulty index Jun-1997 341/22
US 5644657 A Method for locating and displaying information in a pointer-based computer system Jul-1997 382/229
US 5666113 A System for using a touchpad input device for cursor control and keyboard emulation Sep-1997 341/34
US 5666502 A Graphical user interface using historical lists with field classes Sep-1997 345/352
US 5666552 A Method and apparatus for the manipulation of text on a computer display screen Sep-1997 395/802
US 5675361 A Computer keyboard pointing device Oct-1997 345/168
US 5677710 A Recognition keypad Oct-1997 345/173
US 5689253 A Ergonomic keyboard apparatus Nov-1997 341/22
US 5710844 A Method for searching and displaying results in a pen-based computer system Jan-1998 382/317
US 5729250 A Front cover assembly for a touch sensitive device Mar-1998 345/175
US 5730165 A Time domain capacitive field detector Mar-1998 137/1
US 5736976 A Computer data entry apparatus with hand motion sensing and monitoring Apr-1998 345/168
US 5741990 A Method of and means for producing musical note relationships Apr-1998 84/423. R
US 5745116 A Intuitive gesture-based graphical user interface Apr-1998 345/358
US 5745716 A Method and apparatus for tab access and tab cycling in a pen-based computer system Apr-1998 395/350
US 5746818 A Pigment ink composition capable of forming image having no significant bleeding or feathering May-1998 106/31.86
US 5748184 A Virtual pointing device for touchscreens May-1998
US 5748269 A Environmentally-sealed, convectively-cooled active matrix liquid crystal display (LCD) May-1998 349/58
US 5764222 A Virtual pointing device for touchscreens Jun-1998 345/173
US 5767457 A Apparatus and method for audible feedback from input device Jun-1998 178/18
US 5767842 A Method and device for optical input of commands or data Jun-1998 345/168
US 5790104 A Multiple, moveable, customizable virtual pointing devices Aug-1998 345/173
US 5790107 A Touch sensing method and apparatus Aug-1998 345/174
US 5802516 A Method of controlling an electronic book for a computer system Sep-1998 707/6
US 5808567 A Apparatus and method of communicating using three digits of a hand Sep-1998 341/20
US 5809267 A Apparatus and method for executing multiple-concatenated command gestures in a gesture based input system Sep-1998 395/358
US 5821690 A Electroluminescent devices having a light-emitting layer Oct-1998 313/506
US 5821930 A Method and system for generating a working window in a computer system Oct-1998 345/340
US 5823782 A Character recognition educational system Oct-1998 434/156
US 5825351 A Method and apparatus for noise filtering for an input device Oct-1998 345/173
US 5825352 A Multiple fingers contact sensing method for emulating mouse buttons and mouse operations on a touch sensor pad Oct-1998 345/173
US 5835079 A Virtual pointing device for touchscreens Nov-1998 345/173
US 5854625 A Force sensing touchpad Dec-1998 345/173
US 5856824 A Reshapable pointing device for touchscreens Jan-1999
US 5877748 A Computer control input interface system Mar-1999
US 5880411 A Object position detector with edge motion feature and gesture recognition Mar-1999 178/18.01
US 5883619 A Computer mouse for scrolling a view of an image Mar-1999
US 5898434 A User interface system having programmable user interface elements Apr-1999 345/348
US 5917476 A Cursor feedback text input method Jun-1999
US 5920309 A Touch sensing method and apparatus Jul-1999 345/173
US 5923319 A Front cover assembly for touch sensitive device Jul-1999 345/175
US 5933134 A Touch screen virtual pointing device which goes into a translucent hibernation state when not in use Aug-1999 345/173
US 5943043 A Touch panel "double-touch" input method and detection apparatus Aug-1999
US 5943044 A Force sensing semiconductive touchpad Aug-1999 345/174
US 5982302 A Touch-sensitive keyboard/mouse Nov-1999
US 6002389 A Touch and pressure sensing method and apparatus Dec-1999 345/173
US 6002808 A Hand gesture control system Dec-1999 382/288
US 6020881 A Graphical user interface with method and apparatus for interfacing to remote devices Feb-2000 345/327
US 6031524 A Hand-held portable data terminal having removably interchangeable, washable, user-replaceable components with liquid-impervious seal Feb-2000 345/173
US 6037882 A Method and apparatus for inputting data to an electronic system Mar-2000 341/20
US 6050825 A Opaque, one-size-fits-all computer keyboard cover which covers only the three or four alpha-numeric rows Apr-2000 434/227
US 6052339 A Watch with touch reading and setting of time functions Apr-2000 368/230
US 6072494 A Method and apparatus for real-time gesture recognition Jun-2000 345/358
US 6084576 A User friendly keyboard Jul-2000 345/168
US 6097371 A System and method of adjusting display characteristics of a displayable data file using an ergonomic computer input device Aug-2000
US 6107997 A Touch-sensitive keyboard/mouse and computing device using the same Aug-2000 345/173
US 6128003 A Hand gesture recognition system and method Oct-2000 345/157
US 6131299 A Display device for a coordinate measurement machine Oct-2000 33/503
US 6135958 A Ultrasound imaging system with touch-pad pointing device Oct-2000 600/443
US 6144380 A Method of entering and using handwriting to identify locations within an electronic book Nov-2000 345/350
US 6188391 B1 Two-layer capacitive touchpad and method of making same Feb-2001 345/173
US 6198515 B1 Apparatus and method for controlled sealing between bezel and CRT Mar-2001 348/836
US 6208329 B1 Supplemental mouse button emulation system, method and apparatus for a coordinate based data input device Mar-2001 345/173
US 6222465 B1 Gesture-based computer interface Apr-2001 341/20
US 6239790 B1 Force sensing semiconductive touchpad May-2001 345/174
US 6243071 B1 Tool set for navigating through an electronic book Jun-2001 345/146
US 6246862 B1 Sensor controlled user interface for portable communication device Jun-2001 455/90
US 6249606 B1 Method and system for gesture category recognition and training using a feature vector Jun-2001 382/195
US 6255604 B1 Coordinate detecting device for outputting coordinate data when two points are simultaneously depressed, method therefor and computer control device Jul-2001
US 6278443 B1 Touch screen with random finger placement and rolling on screen to control the movement of information on-screen Aug-2001
US 6288707 B1 Capacitive position sensor Sep-2001 345/168
US 6289326 B1 Portable interactive kiosk Sep-2001 705/702
US 6292178 B1 Screen navigation control apparatus for ophthalmic surgical instruments Sep-2001 345/173
US 6323846 B1 Method and apparatus for integrating manual input Nov-2001
US 6323849 B1 Display module with reduced power consumption Nov-2001 345/173
US 6347290 B1 Apparatus and method for detecting and executing positional and gesture commands corresponding to movement of handheld computing device Feb-2002 702/150
US 6377009 B1 Capacitive closure obstruction sensor Apr-2002 318/468
US 6380931 B1 Object position detector with edge motion feature and gesture recognition Apr-2002 345/173
US 6411287 B1 Stress seal for acoustic wave touchscreens Jun-2002 345/177
US 6414671 B1 Object position detector with edge motion feature and gesture recognition Jul-2002 345/157
US 6421234 B1 Handheld electronics device having ergonomic features Jul-2002 361/683
US 6452514 B1 Capacitive sensor and array Sep-2002 341/33
US 6457355 B1 Level sensing Oct-2002 73/304
US 6466036 B1 Charge transfer capacitance measurement circuit Oct-2002 324/678
US 6515669 B1 Operation input device applied to three-dimensional input device Feb-2003 345/474
US 6525749 B1 Apparatus and method for supporting the implicit structure of freeform lists, outlines, text, tables and diagrams in a gesture-based input system and editing system Feb-2003 345/863
US 6535200 B2 Capacitive position sensor Mar-2003 345/168
US 6543684 B1 Transaction terminal with privacy shield for touch-screen pin entry Apr-2003 234/379
US 6543947 B2 Keyboard having keys arranged in a pan configuration Apr-2003 400/489
US 6570557 B1 Multi-touch system and method for emulating modifier keys via fingertip chords May-2003 345/173
US 6593916 B1 Touchscreen having multiple parallel connections to each electrode in a series resistor chain on the periphery of the touch area Jul-2003 345/173
US 6610936 B2 Object position detector with edge motion feature and gesture recognition Aug-2003 178/18.01
US 6624833 B1 Gesture-based input interface system with shadow detection Sep-2003 345/863
US 6639577 B2 Portable information display device with ergonomic bezel Oct-2003 345/102
US 6650319 B1 Touch screen based topological mapping with resistance framing design Nov-2003 345/173
US 6658994 B1 Modular assembly for a holding cabinet controller Dec-2003 99/468
US 6670894 B2 System and method for keyboard independent touch typing Dec-2003 341/22
US 6677932 B1 System and method for recognizing touch typing under limited tactile feedback conditions Jan-2004 345/173
US 6677934 B1 Infrared touch panel with improved sunlight rejection Jan-2004 345/173
US 6724366 B2 Thumb actuated x-y input device Apr-2004 345/157
US 6757002 B1 Track pad pointing device with areas of specialized function Jun-2004 345/864
US 6803906 B1 Passive touch system and method of detecting user input Oct-2004 345/173
US 6842672 B1 Cockpit instrument panel systems and methods with redundant flight data display Jan-2005 701/3
US 6856259 B1 Touch sensor system to detect multiple touch events Feb-2005 341/5
US 6888536 B2 Method and apparatus for integrating manual input May-2005 345/173
US 6900795 B1 Unitary molded lens filter for touch screen interface May-2005 345/173
US 6927761 B2 Moisture deflector for capacitive NFI touch screens for use with bezels of conductive material Aug-2005 345/173
US 6942571 B1 Gaming device with directional and speed control of mechanical reels using touch screen Sep-2005 436/20
US 6965375 B1 Compact integrated touch panel display for a handheld device Nov-2005 345/173
US 6972401 B2 Illuminated bezel and touch system incorporating the same Dec-2005 250/221
US 6977666 B1 Flat panel display using dual CPU's for an aircraft cockpit Dec-2005 345/690
US 6985801 B1 Cockpit instrument panel systems and methods with redundant flight data display Jan-2006 701/3
US 6992659 B2 High transparency integrated enclosure touch screen assembly for a portable hand held device Jan-2006 345/173
US 7031228 B2 Timepiece with touch-type reading and control of time data Apr-2006 368/69
US 7129416 B1 Hybrid ground grid for printed circuit board Oct-2006
US 7339580 B2 Method and apparatus for integrating manual input Mar-2008
US 2002/0023124 A1 Method and system for providing character contents in the form of images Feb-2002
US 2002/0118848 A1 Device using analog controls to mix compressed digital audio data Aug-2002 381/119
US 2002/0140668 A1 Thumb actuated x-y input device Oct-2002
US 2003/0006974 A1 Methods and systems for increasing the input efficiency of personal digital assistants and other handheld stylus-engagable computing devices Jan-2003 345/179
US 2003/0076301 A1 Method and apparatus for accelerated scrolling Apr-2003 345/159
US 2003/0076303 A1 Mouse having a rotary dial Apr-2003 345/163
US 2003/0076306 A1 Touch pad handheld device Apr-2003 345/173
US 2003/0095095 A1 Form factor for portable device May-2003 345/156
US 2003/0095096 A1 Method and apparatus for use of rotational user inputs May-2003 345/156
US 2003/0098858 A1 Dual function input device and method May-2003 345/173
US 2003/0132950 A1 Detecting, classifying, and interpreting input events based on stimuli in multiple sensory domains Jul-2003
US 2003/0164820 A1 Acoustic condition sensor employing a plurality of mutually non-orthogonal waves Sep-2003
US 2003/0206202 A1 Information processing apparatus Nov-2003 345/846
US 2003/0234768 A1 Input method and input device Dec-2003 345/169
US 2004/0263484 A1 Multifunctional UI input device for moblie terminals Dec-2004 345/173
US 2005/0012723 A1 System and method for a portable multimedia client Jan-2005 345/173
US 2005/0052425 A1 Movable touch pad with added functionality Mar-2005 345/173
US 2005/0104867 A1 Method and apparatus for integrating manual input May-2005 345/173
US 2005/0110768 A1 Touch pad for handheld device May-2005 345/173
US 2006/0022955 A1 Visual expander Feb-2006 345/173
US 2006/0022956 A1 Touch-sensitive electronic apparatus for media applications, and methods therefor Feb-2006 345/173
US 2006/0026521 A1 Gestures for touch sensitive input devices Feb-2006 715/702
US 2006/0026535 A1 Mode-based graphical user interfaces for touch sensitive input devices Feb-2006 715/863
US 2006/0026536 A1 Gestures for touch sensitive input devices Feb-2006 715/863
US 2006/0032680 A1 Method of increasing the spatial resolution of touch sensitive devices Feb-2006 178/18.06
US 2006/0033724 A1 Virtual input device placement on a touch screen user interface Feb-2006 345/173
US 2006/0053387 A1 Operation of a computer with touch screen interface Mar-2006 715/773
US 2006/0066582 A1 Raw data track pad device and system Mar-2006 345/173
US 2006/0085757 A1 Activating virtual keys of a touch-screen virtual keyboard Apr-2006 715/771
US 2006/0097991 A1 Multipoint touchscreen May-2006 345/173
US 2006/0197753 A1 Multi-functional hand-held device Sep-2006 345/173
US 2007/0070050 A1 Multi-touch contact motion extraction Mar-2007
US 2007/0070051 A1 Multi-touch contact motion extraction Mar-2007
US 2007/0070052 A1 Multi-touch contact motion extraction Mar-2007
US 2007/0078919 A1 Multi-touch hand position offset computation Apr-2007
US 2007/0081726 A1 Multi-touch contact tracking algorithm Apr-2007
US 2007/0139395 A1 Ellipse Fitting for Multi-Touch Surfaces Jun-2007
US 2007/0268273 A1 Sensor arrangement for use with a touch sensor that identifies hand parts Nov-2007
US 2007/0268274 A1 Touch sensing with mobile sensors Nov-2007
US 2007/0268275 A1 Touch sensing with a compliant conductor Nov-2007
US 2008/0041639 A1 Contact tracking and identification module for touch sensing Feb-2008
US 2008/0042986 A1 Touch sensing architecture Feb-2008
US 2008/0042987 A1 Touch sensing through hand dissection Feb-2008
US 2008/0042988 A1 Writing using a touch sensor Feb-2008
US 2008/0042989 A1 Typing with a touch sensor Feb-2008
US 2008/0128182 A1 Sensor arrangement for use with a touch sensor Jun-2008
US 2009/0021489 A1 Identifying contacts on a touch surface Jan-2009
CA 1243096 Search for [CA 1243096] Oct-1988 340/180
DE 102 51 296 May-2004
EP 0 288 692 Search for [EP 0 288 692] Jul-1993
EP 0622722 A2 Interactive copying system Nov-1994
EP 0622722 A3 [EP 0622722 A3] Nov-1994
EP 0622722 B1 Interactive copying system Nov-1994
EP 0 664 504 Search for [EP 0 664 504] Jan-1995
EP 0 464 908 Search for [EP 0 464 908] Sep-1996
EP 0817000 A1 Reshapable pointing device for touchscreens Jan-1998
EP 1 014 295 Search for [EP 1 014 295] Jan-2002
GB 2330670 A Apr-1999
JP 02-56017 A Touch position detecting device Feb-1990
JP 02-304613 A Touch sensor array system Dec-1990
JP 04-233619 A Touch sensor array device Aug-1992
JP 07-129312 A Picture processor May-1995
JP 0 817 000 B1 Search for [JP 0 817 000 B1] Feb-2002
JP 2002-56017 A Method and system for providing character contents Feb-2002
JP 2002-304613 A Non-contact type ic card and its manufacturing method Oct-2002
JP 2007-129312 A Interphone system May-2007
WO WO-92/02000 Feb-1992
WO 1997/018547 May-1997
WO 1997/023738 Jul-1997
WO WO-97/36225 Oct-1997
WO WO-97/40744 Nov-1997
WO 1998/14863 Apr-1998
WO 99/38149 A1 Jul-1999
WO 2003/088176 Oct-2003
WO 2006/023569 Mar-2006
Other References
U.S. Appl. No. 10/654,108 filed Sep. 2, 2003 entitled “Ambidextrous Mouse”. [+129] [-129]
U.S. Appl. No. 10/789,676 filed Feb. 27, 2004 entitled “Shape Detecting Input Device”.
“4-Wire Resistive Touchscreens” obtained from http://www.touchscreens.com/intro-touchtypes-4resistive.html generated Aug. 5, 2005.
“5-Wire Resistive Touchscreens” obtained from http://www.touchscreens.com/intro-touchtypes-resistive.html generated Aug. 5, 2005.
“A Brief Overview of Gesture Recognition” obtained from http://www.dai.ed.ac.uk/Cvonline/LOCACOPIES/COHEN/gestureoverview. html, generated Apr. 20, 2004.
“Capacitive Touchscreens” obtained from http://www.touchscreens.com/intro-touchtypes-capacitive.html generated Aug. 5, 2005.
“Capacitive Position Sensing” obtained from http://www.synaptics.com/technology/cps.cfm generated Aug. 5, 2005.
“Comparing Touch Technologies” obtained from http://www.touchscreens.com/intro-touchtypes.html generated Oct. 10, 2004.
“Gesture Recognition ” http://www.fingerworks.com/gesturerecognition.html.
“GlidePoint®” obtained from http://www.cirque.com/technology/technologygp.html generated Aug. 5, 2005.
“How do touchscreen monitors know where you're touching?” obtained from http://www.electronics.howstuffworks.com/question716.html generated Aug. 5, 2005.
“How does a touchscreen work?” obtained from http://www.touchscreens.com/intro-anatomy.html generated Aug. 5, 2005.
“iGesture Products for Everyone (learn in minutes) Product Overview” FingerWorks.com.
“Infrared Touchscreens” obtained from http://www.touchscreens.com/intro-touchtypes-infrared.html generated Aug. 5, 2005.
“Mouse Emulation” FingerWorks obtained from http://www.fingerworks.com/gestureguidemouse.html generated Aug. 30, 2005.
“Mouse Gestures in Opera” obtained from http://www.opera.com/products/desktop/mouse/index.dml generated Aug. 30, 2005.
“Mouse Gestures,” Optim oz, May 21, 2004.
“MultiTouch Overview” FingerWorks obtained from http://www.fingerworks.com/multoverview.html generated Aug. 30, 2005.
“Near Field Imaging Touchscreens” obtained from http://www.touchscreens.com/intro-touchtypes-nfi.html generated Aug. 5, 2005.
“PenTouch Capacitive Touchscreens” obtained from http://www.touchscreens.com/intro-touchtypes-pentouch.html generated Aug. 5, 2005.
“Surface Acoustic Wave Touchscreens” obtained from http://www.touchscreens.com/intro-touchtypes-saw.html generated Aug. 5, 2005.
“Symbol Commander” obtained from http://www.sensiva.com/symbolcomander/, generated Aug. 30, 2005.
“Tips for Typing” FingerWorks http://www.fingerworks.com/minityping.html generated Aug. 30, 2005.
“Touch Technologies Overview” 2001, 3M Touch Systems, Massachusetts.
“Wacom Components—Technology” obtained from http://www.wacom-components.com/english/tech.asp generated on Oct. 10, 2004.
“Watershed Algorithm” http://rsb.info.nih.gov/ij/plugins/watershed.html generated Aug. 5, 2005.
“FingerWorks—Gesture Guide—Application Switching,” obtained from http://www.fingerworks.com/gestureguideapps.html, generated on Aug. 27, 2004, 1-pg.
“FingerWorks—Gesture Guide—Editing,” obtained from http://www.fingerworks.com/gesureguideediting.html, generated on Aug. 27, 2004, 1-pg.
“FingerWorks—Gesture Guide—File Operations,” obtained from http://www.fingerworks.com/gestureguidefiles.html, generated on Aug. 27, 2004, 1-pg.
“FingerWorks—Gesture Guide—Text Manipulation,” obtained from http://www.fingerworks.com/gestureguidetextmanip.html, generated on Aug. 27, 2004, 2-pg.
“FingerWorks—Gesture Guide—Tips and Tricks,” obtained from http://www.fingerworks.com/gestureguidetips.html, generated Aug. 27, 2004, 2-pgs.
“FingerWorks—Gesture Guide—Web,” obtained from http://www.fingerworks.com/gestureguideweb.html, generated on Aug. 27, 2004, 1-pg.
“FingerWorks—Guide to Hand Gestures for USB Touchpads,” obtained from http://www.fingerworks.com/igestureuserguide.html, generated Aug. 27, 2004, 1-pg.
“FingerWorks—iGesture—Technical Details,” obtained from http://www.fingerworks.com/igesturetech.html, generated Aug. 27, 2004, 1-pg.
“FingerWorks—The Only Touchpads with Ergonomic Full-Hand Resting and Relaxation!” obtained from http://www.fingerworks.com/resting.html, Copyright 2001, 1-pg.
“FingerWorks—Tips for Typing on the Mini,” obtained from http://www.fingerworks.com/minityping.html, generated on Aug. 27, 2004, 2-pgs.
“iGesture Pad—the MultiFinger USB TouchPad with Whole-Hand Gestures,” obtained from http://www.fingerworks.com/igesture.html, generated Aug. 27, 2004, 2-pgs.
Bier, et al., “Toolglass and Magic Lenses: The see-through interface” In James Kijiya, editor, Computer Graphics (SIGGRAPH '93 Proceedings), vol. 27, pp. 73-80, Aug. 1993.
Douglas et al., The Ergonomics of Computer Pointing Devices (1997).
European Search Report received in EP 1 621 989 (@ Beyer Weaver & Thomas, LLP) dated Mar. 27, 2006.
EVB Elektronik “TSOP6238 IR Receiver Modules for Infrared Remote Control Systems” dated Jan. 2004 1-pg.
Fisher et al., “Repetitive Motion Disorders: The Design of Optimal Rate- Rest Profiles,” Human Factors, 35(2):283-304 (Jun. 1993).
Fukumoto, et al., “ActiveClick: Tactile Feedback for Touch Panels,” In CHI 2001 Summary, pp. 121-122, 2001.
Fukumoto and Yoshinobu Tonomura, “Body Coupled Fingering: Wireless Wearable Keyboard,” CHI 97, pp. 147-154 (Mar. 1997).
Hardy, “Fingerworks” Mar. 7, 2002; BBC World On Line.
Hillier and Gerald J. Lieberman, Introduction to Operations Research (1986).
International Search Report dated Mar. 3, 2006 (PCT/US 05/03325; 119-0052WO).
Jacob et al., “Integrality and Separability of Input Devices,” ACM Transactions on Computer-Human Interaction, 1:3-26 (Mar. 1994).
Kinkley et al., “Touch-Sensing Input Devices,” in CHI '99 Proceedings, pp. 223-230, 1999.
Kionx “KXP84 Series Summary Data Sheet”copyright 2005,dated Oct. 21, 2005, 4-pgs.
Lee et al., “A Multi-Touch Three Dimensional Touch-Sensitive Tablet,” in CHI '85 Proceedings, pp. 121-128, 2000.
Lee, “A Fast Multiple-Touch-Sensitive Input Device,” Master's Thesis, University of Toronto (1984).
Matsushita et al., “HoloWall: Designing a Finger, Hand, Body and Object Sensitive Wall,” In Proceedings of UIST '97, Oct. 1997.
Quantum Research Group “QT510/QWheel™ Touch Slider IC” copyright 2004-2005, 14-pgs.
Quek, “Unencumbered Gestural Interaction,” IEEE Multimedia, 3:36-47 (Winter 1996).
Radwin, “Activation Force and Travel Effects on Overexertion in Repetitive Key Tapping,” Human Factors, 39(1):130-140 (Mar. 1997).
Rekimoto “SmartSkin: An Infrastructure for Freehand Manipulation on Interactive Surfaces” CHI 2002, Apr. 20-25, 2002.
Rekimoto et al., “ToolStone: Effective Use of the Physical Manipulation Vocabularies of Input Devices,” In Proc. Of UIST 2000, 2000.
Rubine et al., “Programmable Finger-Tracking Instrument Controllers,” Computer Music Journal, vol. 14, No. 1 (Spring 1990).
Rutledge et al., “Force-To-Motion Functions For Pointing,” Human-Computer Interaction—Interact (1990).
Subatai Ahmad, “A Usable Real-Time 3D Hand Tracker,” Proceedings of the 28th Asilomar Conference on Signals, Systems and Computers—Part 2 (of2), vol. 2 (Oct. 1994).
Texas Instruments “TSC2003/I2C Touch Screen Controller” Data Sheet SBAS 162, dated Oct. 2001, 20-pgs.
Wellner, “The Digital Desk Calculators: Tangible Manipulation on a Desk Top Display” In ACM UIST '91 Proceedings, pp. 27-34, Nov. 1991.
Williams, “Applications for a Switched-Capacitor Instrumentation Building Block” Linear Technology Application Note 3, Jul. 1985, pp. 1-16.
Yamada et al., “A Switched-Capacitor Interface for Capacitive Pressure Sensors” IEEE Transactions on Instrumentation and Measurement, vol. 41, No. 1, Feb. 1992, pp. 81-86.
Yeh et al., “Switched Capacitor Interface Circuit for Capacitive Transducers” 1985 IEEE.
Zhai et al., “Dual Stream Input for Pointing and Scrolling,” Proceedings of CHI '97 Extended Abstracts (1997).
Zimmerman et al., “Applying Electric Field Sensing to Human-Computer Interfaces,” In CHI '85 Proceedings, pp. 280-287, 1995.
U.S. Appl. No. 10/774,053 filed Feb. 5, 2004.
U.S. Appl. No. 11/140,529 filed May 27, 2005 which is a Reissue of 6,570,557 listed above (see A152).
U.S. Appl. No. 11/381,313 filed on May 2, 2006 entitled “Multipoint Touch Surface Controller”.
U.S. Appl. No. 11/332,861 filed Jan. 13, 2006 which is a Reissue of 6,677,932 listed above (see A160).
U.S. Appl. No. 11/380,109 filed Apr. 25, 2006 entitled “Keystroke Tactility Arrangement On Smooth Touch Surface.”
U.S. Appl. No. 11/428,501 filed Jul. 3, 2006 entitled “Capacitive Sensing Arrangement,” which is a Continuation of US 2005/0104867 listed above (see A177).
U.S. Appl. No. 11/428,503 filed Jul. 3, 2006 entitled “Touch Surface” which is a Continuation of US 2005/0104867 listed above (see A177).
U.S. Appl. No. 11/428,506 filed Jul. 3, 2006 entitled “User Interface Gestures” which is a Continuation of US 2005/0104867 listed above (see A177).
U.S. Appl. No. 11/428,515 filed Jul. 3, 2006 entitled “User Interface Gestures” which is a Continuation of US 2005/0104867 listed above (see A177).
U.S. Appl. No. 11/428,522 filed Jul. 3, 2006 entitled “Identifying Contacts on a Touch Surface” which is a Continuation of US 2005/0104867 listed above (see A177).
U.S. Appl. No. 11/428,521 filed Jul. 3, 2006 entitled “Identifying Contacts on a Touch Surface” which is a Continuation of US 2005/0104867 listed above (see A177).
U.S. Appl. No. 11/426,078 filed Jun. 23, 2006 entitled “Electronic Device Having Display and Surrounding Touch Sensitive Bezel For User Interface and Control” which is a Continuation-In-Part of 2006/0197753 listed above (see A181).
U.S. Appl. No. 11/278,080 filed Mar. 30, 2006 entitled “Force Imaging Input Device and System”.
U.S. Appl. No. 11/382,402 filed May 9, 2006 entitled “Force and Location Sensitive Display” which is a Continuation of U.S. Appl. No. 11/278,080 listed above (see C81).
International Search Report received in corresponding PCT application No. PCT/US2006/008349 dated Oct. 6, 2006.
Buxton, W. et al. (Jul. 22, 1985). “Issues and Techniques in Touch-Sensitive Tablet Input,” Proceedings ACM Siggraph, pp. 215-224.
Cutler, L.D. et al. (Apr. 27, 1997). “Two-Handed Direct Manipulation on the Responsive Workbench,” Proceedings of the 1997 Symposium on Interactive 3D Graphics, Providence, RI, Apr. 27-30, 1997, pp. 107-114.
Davis, J. et al. (Oct. 31, 1994). “Determining 3-D Hand Motion,” Signals, Systems and Computers, 1994 Conference Record of the 28 th Asilomar Conference on Pacific Grove, CA, Oct. 31-Nov. 2, 1994, Los Alamitos, CA, pp. 1262-1266.
Lee, S.K. et al. (Apr. 1985). “A Multi-Touch Three Dimensional Touch-Sensitive Tablet,” Proceedings of CHI: ACM Conference on Human Factors in Computing Systems, pp. 21-25.
Pavlovic, V.I. et al. (Jul. 1997). “Visual Interpretation of Hand Gestures for Human-Computer Interaction: A Review,”IEEE Transactions on Pattern Analysis and Machine Intelligence 19(7):677-695.
International search report for PCT/US99/01454, mailed May 14, 1999.
Supplementary European search report for U.S. Appl. No. 99904228.6, mailed Jul. 8, 2005.
European examination report for European patent Application No. 99904228.6, mailed Apr. 20, 2006.
European examination report for European Patent Application No. 99904228.6, mailed Mar. 23, 2007.
Extended European search report for European Patent Application No. 06016858.0, mailed Dec. 21, 2007.
Extended European search report for European Patent Application No. 06016856.4, mailed Mar. 14, 2008.
European examination report for European Patent Application No. 06016830.9, mailed Aug. 6, 2008
European search report for European Patent Application No. 06016830.9 mailed Dec. 3, 2007.
European examination report for European Patent Application No. 06016856.4 mailed Sep. 16, 2008.
Chang, C-C. et al. (Aug. 1, 1993). “A Hashing-Oriented Nearest Neighbor Searching Scheme,” Pattern Recognition Letters, 14(8):625-630.
Crowley, J.L. (Mar. 1, 1997). “Vision for Man-Machine Interaction,” Robotics and Autonomous Systems, 19(3-4):347-358.
Davis, J. et al. (May 2, 1994). “Recognizing Hand Gestures,” European Conference on Computer Vision, Stockholm, SE, 1:331-340.
European supplementary search report for European Patent Application No. 99904228.6, mailed Feb. 16, 2005.
European Search Report mailed Dec. 12, 2008, for EP Application No. 06016855.6 filed Jan. 25, 1999, six pages.
European Search Report mailed Dec. 23, 2008, for EP Application No. 06016831.7 filed Jan. 25, 1999, seven pages.
European Search Report mailed Jan. 9, 2009, for EP Application No. 06016832.5 filed Jan. 25, 1999, four pages.
Final Office Action mailed Mar. 19, 2009, for U.S. Appl. No. 11/428,506, filed Jul. 3, 2006, seven pages.
Heap, T. et al. (Oct. 14, 1996). “Towards 3D Hand Tracking Using a Deformable Model,” Proceedings of the 2nd International Conference, Killington, VT, USA, Oct. 14-16, 1996, Automatic Face and Gesture Recognition, IEEE Comput. Soc., pp. 140-145.
Nirei, K. et al. (Aug. 5, 1996). “Human Hand Tracking from Binocular Image Sequences,” Proceedings of the 1996 IEEE IECON 22nd International Conference, Taipei, Taiwan, Aug. 5-10, 1996, Industrial Electronics, Control, and Instrumentation 1(5):297-302.
Non-Final Office Action mailed Sep. 21, 2007, for U.S. Appl. No. 11/428,515, filed Jul. 3, 2006, seven pages.
Non-Final Office Action mailed Sep. 24, 2007, for U.S. Appl. No. 11/428,506, filed Jul. 3, 2006, six pages.
Non-Final Office Action mailed Jan. 28, 2008, for U.S. Appl. No. 11/428,522, filed Jul. 3, 2006, seven pages.
Non-Final Office Action mailed Feb. 4, 2008, for U.S. Appl. No. 11/428,515, filed Jul. 3, 2006, six pages.
Non-Final Office Action mailed Sep. 2, 2008, for U.S. Appl. No. 11/428,522, filed Jul. 3, 2006, six pages.
Non-Final Office Action mailed Sep. 15, 2008, for U.S. Appl. No. 11/428,506, filed Jul. 3, 2006, eight pages.
Non-Final Office Action mailed Oct. 31, 2008, for U.S. Appl. No. 11/428,515, filed Jul. 3, 2006, seven pages.
Non-Final Office Action mailed Feb. 17, 2009, for U.S. Appl. No. 11/428,522, filed Jul. 3, 2006, six pages.
Non-Final Office Action mailed Mar. 18, 2009, for U.S. Appl. No. 11/428,515, filed Jul. 3, 2006, 12 pages.
Non-Final Office Action mailed Apr. 2, 2009, for U.S. Appl. No. 11/428,501, filed Jul. 3, 2006, 11 pages.
Non-Final Office Action mailed Apr. 2, 2009, for U.S. Appl. No. 11/428,503, filed Jul. 3, 2006, 12 pages.
U.S. Appl. No. 12/342,027, filed on Dec. 22, 2008, by Westerman et al.
U.S. Appl. No. 12/422,197, filed on Apr. 10, 2009, by Westerman et al.
U.S. Appl. No. 12/422,205, filed on Apr. 10, 2009, by Westerman et al.
U.S. Appl. No. 12/422,222, filed on Apr. 10, 2009, by Westerman et al.
U.S. Appl. No. 12/422,225, filed on Apr. 10, 2009, by Westerman et al.
U.S. Appl. No. 12/422,212, filed on Apr. 10, 2009, by Westerman et al.
Westerman, W. (Jan. 1, 1999). “Hand Tracking, Finger Identification, and Chordic Manipulation on a Multi-Touch Surface,” Dissertation, University of Delaware, pp. 1-333.
Rubine, D. (May 1992). “Combining Gestures and Direct Manipulation,” CHI '92, pp. 659-660.
U.S. Appl. No. 12/434,439, filed on May 1, 2009, by Westerman et al.
U.S. Appl. No. 12/479,573, filed on Jun. 5, 2009, by Westerman et al.
U.S. Appl. No. 12/479,617, filed on Jun. 5, 2009, by Westerman et al.
U.S. Appl. No. 12/479,678, filed on Jun. 5, 2009, by Westerman et al.
Prior Publications
US 2006/0238521 A1 Identifying contacts on a touch surface 26-Oct-2006
Related Documents
Continuation of application No. US 11/15434 00, filed on 17-Dec-2004, now Pat. No. US 7339580 A, which is a continuation of application No. US 09/919266 00, filed on 31-Jul-2001, now Pat. No. US 6888536 A, which is a division of application No. US 09/236513 00, filed on 25-Jan-1999, now Pat. No. US 6323846 A. [+1] [-1]
Provisional application No. US 60/72509 00, filed on 26-Jan-1998.
Examiners
Primary: Hjerpe, Richard
Assistant: Sheng, Tom V
Attorney, Agent or Firm
Morrison & Foerster LLP

Supplemental Information (Source: DOCDB)
Inventors
WESTERMAN WAYNE CARL [+1] [-1]
US
ELIAS JOHN G
US
Assignees/Applicants
APPLE INC
US
Priority
US 428521 A  03-Jul-2006 [+4] [-4]
US 15434 A  17-Dec-2004
US 919266 A  31-Jul-2001
US 236513 A  25-Jan-1999
US 72509 P  26-Jan-1998
Classifications
International (2009.01): G09G 5/00
International (2006.01): G09G 5/00
European: G06F 3/044; G06F 3/023M4; G06F 3/048A1E; G06F 3/048A1S; G06F 3/048A2; G06F 3/048A3G; G06F 3/048A3T; G06K 9/00H2 [+5] [-5]
Also Published As
US 2006/0232567 application Capacitive sensing arrangement
US 2006/0238518 application Touch surface
US 2006/0238519 application User interface gestures
US 2006/0238520 application User interface gestures
US 2006/0238521 application Identifying contacts on a touch surface
US 2006/0238522 application Identifying contacts on a touch surface
US 2007/0070050 application Multi-touch contact motion extraction
US 2007/0070051 application Multi-touch contact motion extraction
US 2007/0070052 application Multi-touch contact motion extraction
US 2007/0078919 application Multi-touch hand position offset computation
US 2007/0081726 application Multi-touch contact tracking algorithm
US 2007/0268273 application Sensor arrangement for use with a touch sensor that identifies hand parts
US 2007/0268274 application Touch sensing with mobile sensors
US 2007/0268275 application Touch sensing with a compliant conductor
US 2008/0041639 application Contact tracking and identification module for touch sensing
US 2008/0042986 application Touch sensing architecture
US 2008/0042987 application Touch sensing through hand dissection
US 2008/0042988 application Writing using a touch sensor
US 2008/0042989 application Typing with a touch sensor
US 2008/0128182 application Sensor arrangement for use with a touch sensor
US 2009/0160816 application Multi-touch contact motion extraction
US 2009/0244031 application Contact tracking and identification module for touch sensing
US 2009/0244032 application Contact Tracking and Identification Module for Touch Sensing
US 2009/0244033 application Contact tracking and identification module for touch sensing
US 2009/0249236 application Contact tracking and identification module for touch sensing
US 2009/0251435 application Contact tracking and identification module for touch sensing
US 2009/0251438 application Contact tracking and identification module for touch sensing
US 2009/0251439 application Contact tracking and identification module for touch sensing
US 2010/0149092 application Identifying contacts on a touch surface
US 2010/0149134 application Writing using a touch sensor
US 7656394 patent User interface gestures
US 7764274 patent Capacitive sensing arrangement
US 7782307 patent Maintaining activity after contact liftoff or touchdown
Preview up to the first 8 page images of this publication.
--- Page 1 ---
Page 1
--- Page 2 ---
Page 2
--- Page 3 ---
Page 3
--- Page 4 ---
Page 4
--- Page 5 ---
Page 5
--- Page 6 ---
Page 6
--- Page 7 ---
Page 7
--- Page 8 ---
Page 8
(Source: USPTO)
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of Ser. No. 11/015,434, entitled “Method and Apparatus for Integrating Manual Input,” filed Dec. 17, 2004, which is a continuation of Ser. No. 09/919,266 (now U.S. Pat. No. 6,888,536), entitled “Method And Apparatus For Integrating Manual Input” filed Jul. 31, 2001, which is a division of application Ser. No. 09/236,513 (now U.S. Pat. No. 6,323,846) filed Jan. 25, 1999 which claims the benefit of provisional application 60/072,509, filed Jan. 26, 1998, each of which is hereby incorporated by reference in its entirety. This application is also related to application Ser. No. 11/428,501 entitled “Capacitive Sensing Arrangement” filed Jul. 3, 2006; application Ser. No. 11/428,503 entitled “Touch Surface” filed Jul. 3, 2006; application Ser. No. 11/428,506 entitled “User Interface Gestures” filed Jul. 3, 2006; application Ser. No. 11/428,515 entitled “User Interface Gestures” filed Jul. 3, 2006, application Ser. No. 11/428,522 entitled “Identifying Contacts on A Touch Surface” filed Jul. 3, 2006, each of which is incorporated by reference in its entirety.
BACKGROUND OF THE INVENTION
A. Field of the Invention
The present invention relates generally to methods and apparatus for data input, and, more particularly, to a method and apparatus for integrating manual input.
B. Description of the Related Art
Many methods for manual input of data and commands to computers are in use today, but each is most efficient and easy to use for particular types of data input. For example, drawing tablets with pens or pucks excel at drafting, sketching, and quick command gestures. Handwriting with a stylus is convenient for filling out forms which require signatures, special symbols, or small amounts of text, but handwriting is slow compared to typing and voice input for long documents. Mice, finger-sticks and touchpads excel at cursor pointing and graphical object manipulations such as drag and drop. Rollers, thumbwheels and trackballs excel at panning and scrolling. The diversity of tasks that many computer users encounter in a single day call for all of these techniques, but few users will pay for a multitude of input devices, and the separate devices are often incompatible in a usability and an ergonomic sense. For instance, drawing tablets are a must for graphics professionals, but switching between drawing and typing is inconvenient because the pen must be put down or held awkwardly between the fingers while typing. Thus, there is a long-felt need in the art for a manual input device which is cheap yet offers convenient integration of common manual input techniques.
Speech recognition is an exciting new technology which promises to relieve some of the input burden on user hands. However, voice is not appropriate for inputting all types of data either. Currently, voice input is best-suited for dictation of long text documents. Until natural language recognition matures sufficiently that very high level voice commands can be understood by the computer, voice will have little advantage over keyboard hot-keys and mouse menus for command and control. Furthermore, precise pointing, drawing, and manipulation of graphical objects is difficult with voice commands, no matter how well speech is understood. Thus, there will always be a need in the art for multi-function manual input devices which supplement voice input.
A generic manual input device which combines the typing, pointing, scrolling, and handwriting capabilities of the standard input device collection must have ergonomic, economic, and productivity advantages which outweigh the unavoidable sacrifices of abandoning device specialization. The generic device must tightly integrate yet clearly distinguish the different types of input. It should therefore appear modeless to the user in the sense that the user should not need to provide explicit mode switch signals such as buttonpresses, arm relocations, or stylus pickups before switching from one input activity to another. Epidemiological studies suggest that repetition and force multiply in causing repetitive strain injuries. Awkward postures, device activation force, wasted motion, and repetition should be minimized to improve ergonomics. Furthermore, the workload should be spread evenly over all available muscle groups to avoid repetitive strain.
Repetition can be minimized by allocating to several graphical manipulation channels those tasks which require complex mouse pointer motion sequences. Common graphical user interface operations such as finding and manipulating a scroll bar or slider control are much less efficient than specialized finger motions which cause scrolling directly, without the step of repositioning the cursor over an on-screen control. Preferably the graphical manipulation channels should be distributed amongst many finger and hand motion combinations to spread the workload. Touchpads and mice with auxilliary scrolling controls such as the Cirque®™ Smartcat touchpad with edge scrolling, the IBM®™ ScrollPoint™ mouse with embedded pointing stick, and the Roller Mouse described in U.S. Pat. No. 5,530,455 to Gillick et al. represent small improvements in this area, but still do not provide enough direct manipulation channels to eliminate many often-used cursor motion sequences. Furthermore, as S. Zhai et al. found in “Dual Stream Input for Pointing and Scrolling,” Proceedings of CHI '97 Extended Abstracts (1997), manipulation of more than two degrees of freedom at a time is very difficult with these devices, preventing simultaneous panning, zooming and rotating.
Another common method for reducing excess motion and repetition is to automatically continue pointing or scrolling movement signals once the user has stopped moving or lifts the finger. Related art methods can be distinguished by the conditions under which such motion continuation is enabled. In U.S. Pat. No. 4,734,685, Watanabe continues image panning when the distance and velocity of pointing device movement exceed thresholds. Automatic panning is, stopped by moving the pointing device back in the opposite direction, so stopping requires additional precise movements. In U.S. Pat. No. 5,543,591 to Gillespie et al., motion continuation occurs when the finger enters an edge border region around a small touchpad. Continued motion speed is fixed and the direction corresponds to the direction from the center of the touchpad to the finger at the edge. Continuation mode ends when the finger leaves the border region or lifts off the pad. Disadvantageously, users sometimes pause at the edge of the pad without intending for cursor motion to continue, and the unexpected motion continuation becomes annoying. U.S. Pat. No. 5,327,161 to Logan et al. describes motion continuation when the finger enters a border area as well, but in an alternative trackball emulation mode, motion continuation can be a function solely of lateral finger velocity and direction at liftoff. Motion continuation decays due to a friction factor or can be stopped by a subsequent touchdown on the surface. Disadvantageously, touch velocity at liftoff is not a reliable indicator of the user's desire for motion continuation since when approaching a large target on a display at high speeds the user may not stop the pointer completely before liftoff. Thus it would be an advance in the art to provide a motion continuation method which does not become activated unexpectedly when the user really intended to stop pointer movement at a target but happens to be on a border or happens to be moving at significant speed during liftoff.
Many attempts have been made to embed pointing devices in a keyboard so the hands do not have to leave typing position to access the pointing device. These include the integrated pointing key described in U.S. Pat. No. 5,189,403 to Franz et al., the integrated pointing stick disclosed by J. Rutledge and T. Selker in “Force-to-Motion Functions for Pointing,” Human-Computer Interaction—INTERACT '90, pp. 701-06 (1990), and the position sensing keys described in U.S. Pat. No. 5,675,361 to Santilli. Nevertheless, the limited movement range and resolution of these devices, leads to poorer pointing speed and accuracy than a mouse, and they add mechanical complexity to keyboard construction. Thus there exists a need in the art for pointing methods with higher resolution, larger movement range, and more degrees of freedom yet which are easily accessible from typing hand positions.
Touch screens and touchpads often distinguish pointing motions from emulated button clicks or keypresses by assuming very little lateral fingertip motion will occur during taps on the touch surface which are intended as clicks. Inherent in these methods is the assumption that tapping will usually be straight down from the suspended finger position, minimizing those components of finger motion tangential to the surface. This is a valid assumption if the surface is not finely divided into distinct key areas or if the user does a slow, “hunt and peck” visual search for each key before striking. For example, in U.S. Pat. No. 5,543,591 to Gillespie et al., a touchpad sends all lateral motions to the host computer as cursor movements. However, if the finger is lifted soon enough after touchdown to count as a tap and if the accumulated lateral motions are not excessive, any sent motions are undone and a mouse button click is sent instead. This method only works for mouse commands such as pointing which can safely be undone, not for dragging or other manipulations. In U.S. Pat. No. 5,666,113 to Logan, taps with less than about 1/16″ lateral motion activate keys on a small keypad while lateral motion in excess of 1/16″ activates cursor control mode. In both patents cursor mode is invoked by default when a finger stays on the surface a long time.
However, fast touch typing on a surface divided into a large array of key regions tends to produce more tangential motions along the surface than related art filtering techniques can tolerate. Such an array contains keys in multiple rows and columns which may not be directly under the fingers, so the user must reach with the hand or flex or extend fingers to touch many of the key regions. Quick reaching and extending imparts significant lateral finger motion while the finger is in the air which may still be present when the finger contacts the surface. Glancing taps with as much as ¼″ lateral motion measured at the surface can easily result. Attempting to filter or suppress this much motion would make the cursor seem sluggish and unresponsive. Furthermore, it may be desirable to enter a typematic or automatic key repeat mode instead of pointing mode when the finger is held in one place on the surface. Any lateral shifting by the fingertip during a prolonged finger press would also be picked up as cursor jitter without heavy filtering. Thus, there is a need in the art for a method to distinguish keying from pointing on the same surface via more robust hand configuration cues than lateral motion of a single finger.
An ergonomic typing system should require minimal key tapping force, easily distinguish finger taps from resting hands, and cushion the fingers from the jarring force of surface impact. Mechanical and membrane keyboards rely on the spring force in the keyswitches to prevent activation when the hands are resting on the keys. This causes an irreconcilable tradeoff between the ergonomic desires to reduce the fatigue from key activating force and to relax the full weight of the hands onto the keys during rest periods. Force minimization on touch surfaces is possible with capacitive or active optical sensing, which do not rely on finger pressure, rather than resistive-membrane or surface-acoustic-wave sensing techniques. The related art touch devices discussed below will become confused if a whole hand including its four fingertips a thumb and possibly palm heels, rests on the surface. Thus, there exists a long felt need in the art for a multi-touch surface typing system based on zero-force capacitive sensing which can tolerate resting hands and a surface cushion.
An ergonomic typing system should also adapt to individual hand sizes tolerate variations in typing style, and support a range of healthy hand postures. Though many ergonomic keyboards have been proposed, mechanical keyswitches can only be repositioned at great cost. For example, the keyboard with concave keywells described by Hargreaves et al. in U.S. Pat. No. 5,689,253 fits most hands well but also tends to lock the arms in a single position. A touch surface key layout could easily be morphed, translated, or arbitrarily reconfigured as long as the changes did not confuse the user. However, touch surfaces may not provide as much laterally orienting tactile feedback as the edges of mechanical keyswitches. Thus, there exists a need in the art for a surface typing recognizer which can adapt a key layout to fit individual hand postures and which can sustain typing accuracy if the hands drift due to limited tactile feedback.
Handwriting on smooth touch surfaces using a stylus is well-known in the art, but it typically does not integrate well with typing and pointing because the stylus must be put down somewhere or held awkwardly during other input activities. Also, it may be difficult to distinguish the handwriting activity of the stylus from pointing motions of a fingertip. Thus there exists a need in the art for a method to capture coarse handwriting gestures without a stylus and without confusing them with pointing motions.
Many of the input differentiation needs cited above could be met with a touch sensing technology which distinguishes a variety of hand configurations and motions such as sliding finger chords and grips. Many mechanical chord keyboards have been designed to detect simultaneous downward activity from multiple fingers, but they do not detect lateral finger motion over a large range. Related art shows several examples of capacitive touchpads which emulate a mouse or keyboard by tracking a single finger. These typically measure the capacitance of or between elongated wires which are laid out in rows and columns. A thin dielectric is interposed between the row and column layers. Presence of a finger perturbs the self or mutual capacitance for nearby electrodes. Since most of these technologies use projective row and column sensors which integrate on one electrode the proximity of all objects in a particular row or column, they cannot uniquely determine the positions of two or more objects as discussed in S. Lee, “A Fast Multiple-Touch-Sensitive Input Device,” University of Toronto Masters Thesis (1984). The best they can do is count fingertips which happen to lie in a straight row, and even that will fail if a thumb or palm is introduced in the same column as a fingertip.
In U.S. Pat. Nos. 5,565,658 and 5,305,017, Gerpheide et al. measure the mutual capacitance between row and column electrodes by driving one set of electrodes at some clock frequency and sensing how much of that frequency is coupled onto a second electrode set. Such synchronous measurements are very prone to noise at the driving frequency, so to increase signal-to-noise ratio they form virtual electrodes comprised of multiple rows or multiple columns, instead of a single row and column, and scan through electrode combinations until the various mutual capacitances are nulled or balanced. The coupled signal increases with the product of the rows and columns in each virtual electrodes, but the noise only increases with the sum, giving a net gain in signal-to-noise ratio for virtual electrodes consisting of more than two rows and two columns. However, to uniquely distinguish multiple objects, virtual electrode sizes would have to be reduced so the intersection of the row and column virtual electrodes would be no larger than a finger tip, i.e., about two rows and two columns, which will degrade the signal-to-noise ratio. Also, the signal-to-noise ratio drops as row and column lengths increase to cover a large area.
In U.S. Pat. Nos. 5,543,591, 5,543,590, and 5,495,077, Gillespie et al measure the electrode-finger self-capacitance for row and column electrodes independently. Total electrode capacitance is estimated by measuring the electrode voltage change caused by injecting or removing a known amount of charge in a known time. All electrodes can be measured simultaneously if each electrode has its own drive/sense circuit. The centroid calculated from all row and column electrode signals establishes an interpolated vertical and horizontal position for a single object. This method may in general have higher signal-to-noise ratio than synchronous methods, but the signal-to-noise ratio is still degraded as row and column lengths increase. Signal-to-noise ratio is especially important for accurately locating objects which are floating a few millimeters above the pad. Though this method can detect such objects, it tends to report their position as being near the middle of the pad, or simply does not detect floating objects near the edges.
Thus there exists a need in the art for a capacitance-sensing apparatus which does not suffer from poor signal-to-noise ratio and the multiple finger indistinguishability problems of touchpads with long row and column electrodes.
U.S. Pat. No. 5,463,388 to Boie et al. has a capacitive sensing system applicable to either keyboard or mouse input, but does not consider the problem of integrating both types of input simultaneously. Though they mention independent detection of arrayed unit-cell electrodes, their capacitance transduction circuitry appears too complex to be economically reproduced at each electrode. Thus the long lead wires connecting electrodes to remote signal conditioning circuitry can pickup noise and will have significant capacitance compared to the finger-electrode self-capacitance, again limiting signal-to-noise ratio. Also, they do not recognize the importance of independent electrodes for multiple finger tracking, or mention how to track multiple fingers on an independent electrode array.
Lee built an early multi-touch electrode array, with 7 mm by 4 mm metal electrodes arranged in 32 rows and 64 columns. The “Fast Multiple-Touch-Sensitive Input Device (FMTSID)” total active area measured 12″ by 16″, with a 0.075 mm Mylar dielectric to insulate fingers from electrodes. Each electrode had one diode connected to a row charging line and a second diode connected to a column discharging line. Electrode capacitance changes were measured singly or in rectangular groups by raising the voltage on one or more row lines, selectively charging the electrodes in those rows, and then timing the discharge of selected columns to ground through a discharge resistor. Lee's design required only two diodes per electrode, but the principal disadvantage of Lee's design is that the column diode reverse bias capacitances allowed interference between electrodes in the same column.
All of the related capacitance sensing art cited above utilize interpolation between electrodes to achieve high pointing resolution with economical electrode density. Both Boie et al. and Gillespie et al. discuss compultattion of a centroid from all row and column electrode readings. However, for multiple finger detection, centroid calculation must be carefully limited around local maxima to include only one finger at a time. Lee utilizes a bisective search technique to find local maxima and then interpolates only on the eight nearest neighbor electrodes of each local maximum electrode. This may work fine for small fingertips, but thumb and palm contacts may cover more than nine electrodes. Thus there exists a need in the art for improved means to group exactly those electrodes which are covered by each distinguishable hand contact and to compute a centroid from such potentially irregular groups.
To take maximum advantage of multi-touch surface sensing, complex proximity image processing is necessary to track and identify the parts of the hand contacting the surface at any one time. Compared to passive optical, images, proximity images provide clear indications of where the body contacts the surface, uncluttered by luminosity variation and extraneous objects in the background. Thus proximity image filtering and segmentation stages can be simpler and more reliable than in computer vision approaches to free-space hand tracking such as S. Alimad, “A Usable Real-Time 3D Hand Tracker,” Proceedings of the 28th Asilomar Conference on Signals, Systems, and Computers—Part 2, vol. 2, IEEE (1994) or Y. Cui and J. Wang, “Hand Segmentation Using Learning-Based Prediction and Verification for Hand Sign Recognition,” Proceedings of the 1996 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pp. 88-93 (1996). However, parts of the hand such as intermediate finger joints and the center of the palms do not show up in capacitive proximity images at all if the hand is not flattened on the surface. Without these intermediate linkages between fingertips and palms the overall hand structure can only be guessed at, making hand contact identification very difficult. Hence the optical flow and contour tracking techniques which have been applied to free-space hand sign language recognition as in F. Quek, “Unencumbered Gestural Interaction,” IEEE Multimedia, vol. 3, pp. 36-47 (1996), do not address the special challenges of proximity image tracking.
Synaptics Corp. has successfully fabricated their electrode array on flexible mylar film rather than stiff circuit board. This is suitable for conforming to the contours of special products, but does not provide significant finger cushioning for large surfaces. Even if a cushion was placed under the film, the lack of stretchability in the film, leads, and electrodes would limit the compliance afforded by the compressible material. Boie et al suggests that placing cornnressihle insulators on top of the electrode array cushions finger impact. However, an insulator more than about one millimeter thick would seriously attenuate the measured finger-electrode capacitances. Thus there exists a need in the art for a method to transfer finger capacitance influences through an arbitrarily thick cushion.
SUMMARY OF THE INVENTION
It is a primary object of the present invention to provide a system and method for integrating different types of manual input such as typing, multiple degree-of-freedom manipulation, and handwriting on a multi-touch surface.
It is also an object of the present invention to provide a system and method for distinguishing different types of manual input such as typing, multiple degree-of-freedom manipulation, and handwriting on a multi-touch surface, via different hand configurations which are easy for the user to learn and easy for the system to recognize.
It is a further object of the present invention to provide an improved capacitance-transducing apparatus that is cheaply implemented near each electrode so that two-dimensional sensor arrays of arbitrary size and resolution can be built without degradation in signal to noise.
It is a further object of the present invention to provide an electronic system which minimizes the number of sensing electrodes necessary to obtain proximity images with such resolution that a variety of hand configurations can be distinguished.
Yet another object of the present invention is to provide a multi-touch surface apparatus which is compliant and contoured to be comfortable and ergonomic under extended use.
Yet another object of the present invention is to provide tactile key or hand position feedback without impeding hand resting on the surface or smooth, accurate sliding across the surface.
It is a further object of the present invention to provide an electronic system which can provide images of flesh proximity to an array of sensors with such resolution that a variety of hand configurations can be distinguished.
It is another object of the present invention to provide an improved method for invoking cursor motion continuation only when the user wants it by not invoking it when significant deceleration is detected.
Another object of the present invention is to identify different hand parts as they contact the surface so that a variety of hand configurations can be recognized and used to distinguish different kinds of input activity.
Yet another object of the present invention is to reliably extract rotation and scaling as well as translation degrees of freedom from the motion of two or more hand contacts to aid in navigation and manipulation of two-dimensional electronic documents.
It is a further object of the present invention to reliably extract tilt and roll degrees of freedom from hand pressure differences to aid in navigation and manipulation of three-dimensional environments.
Additional objects and advantages of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.
To achieve the objects and in accordance with the purpose of the invention, as embodied and broadly described herein, the invention comprises a sensing device that is sensitive to changes in self-capacitance brought about by changes in proximity of a touch device to the sensing device, the sensing device comprising: two electrical switching means connected together in series having a common node, an input node, and an output node; a dielectric-covered sensing electrode connected to the common node between the two switching means; a power supply providing an approximately constant voltage connected to the input node of the series-connected switching means; an integrating capacitor to accumulate charge transferred during multiple consecutive switchings of the series connected switching means; another switching means connected in parallel across the integrating capacitor to deplete its residual charge; and a voltage-to-voltage translation device connected to the output node of the series-connected switching means which produces a voltage representing the magnitude of the self-capacitance of the sensing device. Alternatively, the sensing device comprises: two electrical switching means connected together in series having a common node, an input node, and an output node; a dielectric-covered sensing electrode connected to the common node between the two switching means; a power supply providing an approximately constant voltage connected to the input node of the series-connected switching means; and an integrating current-to-voltage translation device connected to the output node of the series connected switching means, the current-to-voltage translation device producing a voltage representing the magnitude of the self-capacitance of the sensing device.
To further achieve the objects, the present invention comprises a multi-touch surface apparatus for detecting a spatial arrangement of multiple touch devices on or near the surface of the multi-touch apparatus, comprising: one of a rigid or flexible surface; a plurality of two-dimensional arrays of one of the sensing devices (recited in the previous paragraph) arranged on the surface in groups wherein the sensing devices within a group have their output nodes connected together and share the same integrating capacitor, charge depletion switch, and voltage-to-voltage translation circuitry; control circuitry for enabling a single sensor device from each two-dimensional array; means for selecting the sensor voltage data from each two-dimensional array; voltage measurement circuitry to convert sensor voltage data to a digital code; and circuitry for communicating the digital code to another electronic device. The sensor voltage data selecting means comprises one of a multiplexing circuitry and a plurality of voltage measurement circuits.
To still further achieve the objects, the present invention comprises a multi-touch surface apparatus for sensing diverse configurations and activities of touch devices and generating integrated manual input to one of an electronic or electromechanical device, the apparatus comprising: an array of one of the proximity sensing devices described above; a dielectric cover having symbols printed thereon that represent action-to-be-taken when engaged by the touch devices; scanning means for forming digital proximity images from the array of sensing devices; calibrating means for removing background offsets from the proximity images; recognition means for interpreting the configurations and activities of the touch devices that make up the proximity images; processing means for generating input signals in response to particular touch device configurations and motions; and communication means for sending the input signals to the electronic or electromechanical device.
To even further achieve the objects, the present invention comprises a multi-touch surface apparatus for sensing diverse configurations and activities of fingers and palms of one or more hands near the surface and generating integrated manual input to one of an electronic or electromechanical device, the apparatus comprising: an array of proximity sensing means embedded in the surface; scanning means for forming digital proximity images from the proximities measured by the sensing means; image segmentation means for collecting into groups those proximity image pixels intensified by contact of the same distinguishable part of a hand; contact tracking means for parameterizing hand contact features and trajectories as the contacts move across successive proximity images, contact identification means for determining which hand and which part of the hand is causing each surface contact; synchronization detection means for identifying subsets of identified contacts which touchdown or liftoff the surface at approximately the same time, and for generating command signals in response to synchronous taps of multiple fingers on the surface; typing recognition means for generating intended key symbols from asynchronous finger taps; motion component extraction means for compressing multiple degrees of freedom of multiple fingers into degrees of freedom common in two and three dimensional graphical manipulation; chord motion recognition means for generating one of command and cursor manipulation signals in response to motion in one or more extracted degrees of freedom by a selected combination of fingers; pen grip detection means for recognizing contact arrangements which resemble the configuration of the hand when gripping a pen, generating inking signals from motions of the inner fingers, and generating cursor manipulation signals from motions of the palms while the inner fingers are lifted; and communication means for sending the sensed configurations and activities of finger and palms to one of the electronic and electromechanical device.
To further achieve the objects, the present invention comprises a method for tracking and identifying hand contacts in a sequence of proximity images in order to support interpretation of hand configurations and activities related to typing, multiple degree-of-freedom manipulation via chords, and handwriting, the method comprising the steps of: segmenting each proximity image into groups of electrodes which indicate significant proximity, each group representing proximity of a distinguishable hand part or other touch device; extracting total proximity, position, shape, size, and orientation parameters from each group of electrodes; tracking group paths through successive proximity images including detection of path endpoints at contact touchdown and liftoff; computing velocity and filtered position vectors along each path; assigning a hand and finger identity to each contact path by incorporating relative path positions and velocities, individual contact features, and previous estimates of hand and finger positions; and maintaining estimates of hand and finger positions from trajectories of paths currently assigned to the fingers, wherein the estimates provide high level feedback to bias segmentations and identifications in future images.
To still further achieve the objects, the present invention comprises a method for integrally extracting multiple degrees of freedom of hand motion from sliding motions of two or more fingers of a hand across a multi-touch surface, one of the fingers preferably being the opposable thumb, the method comprising the steps of: tracking across successive scans of the proximity sensor array the trajectories of individual hand parts on the surface; finding an innermost and an outermost finger contact from contacts identified as fingers on the given hand; computing a scaling velocity component from a change in a distance between the innermost and outermost finger contacts; computing a rotational velocity component from a change in a vector angle between the innermost and outermost finger contacts; computing a translation weighting for each contacting finger; computing translational velocity components in two dimensions from a translation weighted average of the finger velocities tangential to surface; suppressively filtering components whose speeds are consistently lower than the fastest components; transmitting the filtered velocity components as control signals to an electronic or electromechanical device.
To even further achieve the objects, the present invention comprises a manual input integration method for supporting diverse hand input activities such as resting the hands, typing, multiple degree-of-freedom manipulation, command gesturing and handwriting on a multi-touch surface, the method enabling users to instantaneously switch between the input activities by placing their hands in different configurations comprising distinguishable combinations of relative hand contact timing, proximity, shape, size, position, motion and/or identity across a succession of surface proximity images, the method comprising the steps of: tracking each touching hand part across successive proximity images; measuring the times when each hand part touches down and lifts off the surface; detecting when hand parts touch down or lift off simultaneously; producing discrete key symbols when the user asynchronously taps, holds, or slides a finger on key regions defined on the surface; producing discrete mouse button click commands, key commands, or no signals when the user synchronously taps two or more fingers from the same hand on the surface; producing gesture commands or multiple degree-of-freedom manipulation signals when the user slides two or more fingers across the surface; and sending the produced symbols, commands and manipulation signals as input to an electronic or an electromechanical device.
To still even further achieve the objects, the present invention comprises a method for choosing what kinds of input signals will be generated and sent to an electronic or electromechanical device in response to tapping or sliding of fingers on a multi-touch surface, the method comprising the following steps: identifying each contact on the surface as either a thumb, fingertip or palm; measuring the times when each hand part touches down and lifts off the surface; forming a set of those fingers which touch down from the all finger floating state before any one of the fingers lifts back off the surface; choosing the kinds of input signals to be generated by further distinctive motion of the fingers from the combination of finger identities in the set; generating input signals of this kind when further distinctive motions of the fingers occur; forming a subset any two or more fingers which touch down synchronously after at least one finger has lifted back off the surface; choosing a new kinds of input signals to be generated by further distinctive motion of the fingers from the combination of finger identities in the subset; generating input signals of this new kind when further distinctive motions of the fingers occur; and continuing to form new subsets, choose and generate new kinds of input signals in response to liftoff and synchronous touchdowns until all fingers lift off the surface.
To further achieve the objects, the present invention comprises a method for continuing generation of cursor movement or scrolling signals from a tangential motion of a touch device over a touch-sensitive input device surface after touch device liftoff from the surface if the touch device operator indicates that cursor movement continuation is desired by accelerating or failing to decelerate the tangential motion of the touch device before the touch device is lifted, the method comprising the following steps: measuring, storing and transmitting to a computing device two or more representative tangential velocities during touch device manipulation; computing and storing a liftoff velocity from touch device positions immediately prior to the touch device liftoff; comparing the liftoff velocity with the representative tangential velocities, and entering a mode for continuously moving the cursor if a tangential liftoff direction approximately equals the representative tangential directions and a tangential liftoff speed is greater than a predetermined fractional multiple of representative tangential speeds; continuously transmitting cursor movement signals after liftoff to a computing device such that the cursor movement velocity corresponds to one of the representative tangential velocities; and ceasing transmission of the cursor movement signals when the touch device engages the surface again, if comparing means detects significant deceleration before liftoff, or if the computing device replies that the cursor can move no farther or a window can scroll no farther.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several embodiments of the invention and together with the description, serve to explain the principles of the invention. In the drawings:
FIG. 1 is a block diagram of the integrated manual input apparatus;
FIG. 2 is a schematic drawing of the proximity sensor with voltage amplifier;
FIG. 3 is a schematic drawing of the proximity sensor with integrating current amplifier;
FIG. 4 is a schematic drawing of the proximity sensor implemented with field effect transistors;
FIG. 5 is a schematic drawing of the proximity sensor as used to implement 2D arrays of proximity sensors;
FIG. 6 is a block diagram showing a typical architecture for a 2D array of proximity sensors where all sensors share the same amplifier;
FIG. 7 is a block diagram of circuitry used to convert proximity sensor output to a digital code;
FIG. 8 is a block diagram showing a typical architecture for a 2D array of proximity sensors where sensors within a row share the same amplifier;
FIG. 9 is a schematic of a circuit useful for enabling the output gates of all proximity sensors within a group (arranged in columns);
FIG. 10 is a side view of a 2D proximity sensor array that is sensitive to the pressure exerted by non-conducting touch objects;
FIG. 11 is a, side view of a 2D proximity sensor array that provides a compliant surface without loss of spatial sensitivity;
FIG. 12 is a side view of a 2D proximity sensor array that is sensitive to both the proximity of conducting touch objects and to the pressure exerted by non-conducting touch objects;
FIG. 13 is an example proximity image of a hand flattened onto the surface with fingers outstretched;
FIG. 14 is an example proximity image of a hand partially closed with fingertips normal to surface;
FIG. 15 is an example proximity image of a hand in the pen grip configuration with thumb and index fingers pinched;
FIG. 16 is a data flow diagram of the hand tracking and contact identification system;
FIG. 17 is a flow chart of hand position estimation:
FIG. 18 is a data flow diagram of proximity image segmentation;
FIG. 19 is a diagram of the boundary search pattern during construction of an electrode group;
FIG. 20A is a diagram of the segmentation strictness regions with both hands in their neutral, default position on surface;
FIG. 20B is a diagram of the segmentation strictness regions when the hands are in asymmetric positions on surface;
FIG. 20C is a diagram of the segmentation strictness regions when the right hand crosses to the left half of the surface and the left hand is off the surface;
FIG. 21 is a flow chart of segmentation edge testing;
FIG. 22 is a flow chart of persistent path tracking;
FIG. 23 is a flow chart of the hand part identification algorithm;
FIG. 24 is a Voronoi cell diagram constructed around hand part attractor points;
FIG. 25A is a plot of orientation weighting factor for right thumb, right inner palm, and left outer palm versus contact orientation;
FIG. 25B is a plot of thumb size factor versus contact size;
FIG. 25C is a plot of palm size factor versus ratio of total contact proximity to contact eccentricity;
FIG. 25D is a plot of palm separation factor versus distance between a contact and it nearest neighbor contact;
FIG. 26 is a flow chart of the thumb presence verification algorithm;
FIG. 27 is a flow chart of an alternative hand part identification algorithm;
FIG. 28 is a flow chart of the pen grip detection process:
FIG. 29 is a flow chart of the hand identification algorithm:
FIGS. 30A-C show three different hand partition hypotheses for a fixed arrangement of surface contacts;
FIG. 31A is a plot of the hand clutching direction factor versus horizontal hand velocity;
FIG. 31B is a plot of the handedness factor versus vertical position of outermost finger relative to next outermost;
FIG. 31C is a plot of the palm cohesion factor versus maximum horizontal separation between palm contacts within a hand;
FIG. 32 is a plot of the inner finger angle factor versus the angle between the innermost and next innermost finger contacts;
FIG. 33 is a plot of the inter-hand separation factor versus the estimated distance between the right thumb and left thumb;
FIG. 34 is a flow chart of hand motion component extraction;
FIG. 35 is a diagram of typical finger trajectories when hand is contracting;
FIG. 36 is a flow chart of radial and angular hand velocity extraction;
FIG. 37 is a flow chart showing extraction of translational hand velocity components;
FIG. 38 is a flow chart of differential hand pressure extraction;
FIG. 39A is a flow chart of the finger synchronization detection loop;
FIG. 39B is a flow chart of chord tap detection;
FIG. 40A is a flow chart of the chord motion recognition loop;
FIG. 40B is a flow chart of chord motion event generation;
FIG. 41 is a flow chart of key layout morphing;
FIG. 42 is a flow chart of the keypress detection loop;
FIG. 43A is a flow chart of the keypress acceptance and transmission loop; and
FIG. 43B is a flow chart of typematic emulation.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Reference will now be made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible the same reference numbers will be used throughout the drawings to refer to the same or like parts.
FIG. 1 is a system block diagram of the entire, integrated manual input apparatus. Sensor embedded in the multi-touch surface 2 detect proximity of entire flattened hands 4, fingertips thumbs, palms, and other conductive touch devices to the surface 2. In a preferred embodiment, the surface is large enough to comfortably accommodate both hands 4 and is arched to reduce forearm pronation.
In alternative embodiments the multi-touch surface 2 may be large enough to accommodate motion of one hand, but may be flexible so it can be fitted to an armrest or clothing.
Electronic scanning hardware 6 controls and reads from each proximity sensor of a sensor array. A calibration module 8 constructs a raw proximity image from a complete scan of the sensor array and subtracts off any background sensor offsets. The background sensor offsets can simply be a proximity image taken when nothing is touching the surface.
The offset-corrected proximity image is then passed on to the contact tracking and identification module 10, which segments the image into distinguishable hand-surface contacts, tracks and identifies them as they move through successive images.
The paths of identified contacts are passed on to a typing recognizer module 12, finger synchronization detection module 14, motion component extraction module 16, and pen grip detection module 17, which contain software algorithms to distinguish hand configurations and respond to detected hand motions.
The typing recognizer module 12 responds to quick presses and releases of fingers which are largely asynchronous with respect to the activity of other fingers on the same hand. It attempts to find the key region nearest to the location of each finger tap and forwards the key symbols or commands associated with the nearest key region to the communication interface module 20.
The finger synchronization detector 14 checks the finger activity within a hand for simultaneous presses or releases of a subset of fingers. When such simultaneous activity is detected it signals the typing recognizer to ignore or cancel keystroke processing for fingers contained in the synchronous subset. It also passes on the combination of finger identities in the synchronous subset to the chord motion recognizer 18.
The motion component extraction module 16 computes multiple degrees of freedom of control from individual finger motions during easily performable hand manipulations on the surface 2, such as hand translations, hand rotation about the wrist, hand scaling by grasping with the fingers, and differential hand tilting.
The chord motion recognizer produces chord tap or motion events dependent upon both the synchronized finger subset identified by the synchronization detector 14 and on the direction and speed of motion extracted in 16. These events are then posted to the host communication interface 20.
The pen grip detection module 17 checks for specific arrangements of identified hand contacts which indicate the hand is configured as if gripping a pen. If such an arrangement is, detected, it forwards the movements of the gripping fingers as inking events to the host communication interface 20. These inking events can either lay digital ink on the host computer display for drawing or signature capture purposes, or they can be further interpreted by handwriting recognition software which is well known in the art. The detailed steps within each of the above modules will be further described later.
The host communication interface keeps events from both the typing recognizer 12 and chord motion recognizer 18 in a single temporally ordered queue and dispatches them to the host computer system 22. The method of communication between the interface 20 and host computer system 22 can vary widely depending on the function and processing power of the host computer. In a preferred embodiment, the communication would take place over computer cables via industry standard protocols such as Apple Desktop Bus, PS/2 keyboard and mouse protocol for PCs, or Universal Serial Bus (USB). In alternative embodiments the software processing of modules 10-18 would be performed within the host computer 22. The multi-touch surface apparatus would only contain enough hardware to scan the proximity sensor array 6, form proximity images 8, and compress and send them to the host computer over a wireless network. The host communication interface 20 would then play the role of device driver on the host computer, conveying results of the proximity image recognition process as input to other applications residing on the host computer system 22.
In a preferred embodiment the host computer system outputs to a visual display device 24 so that the hands and fingers 4 can manipulate graphical objects on the display screen. However, in alternative embodiments the host computer might output to an audio display or control a machine such as a robot.
The term “proximity” will only be used in reference to the distance or pressure between a touch device such as a finger and the surface 2, not in reference to the distance between adjacent fingers. “Horizontal” and “vertical” refer to x and y directional axes within the surface plane. Proximity measurements are then interpreted as pressure in a z axis normal to the surface. The direction “inner” means toward the thumb of a given hand, and the direction “outer” means towards the pinky finger of a given hand. For the purposes of this description, the thumb is considered a finger unless otherwise noted, but it does not count as a fingertip. “Contact” is used as a general term for a hand part when it touches the surface and appears in the current proximity image, and for the group and path data structures which represent it.
FIG. 2 is a schematic diagram of a device that outputs a voltage 58 dependent on the proximity of a touch device 38 to a conductive sense electrode 33. The proximity sensing device includes two electrical switching means 30 and 31 connected together in series having a common node 48, an input node 46, and an output node 45. A thin dielectric material 32 covers the sensing electrode 33 that is electrically connected to the common node 48. A power supply 34 providing an approximately constant voltage is connected between reference ground and the input node 46. The two electrical switches 30 and 31 gate the flow of charge from the power supply 34 to an integrating capacitor 37. The voltage across the integrating capacitor 37 is translated to another voltage 58 by a high-impedance voltage amplifier 35. The plates of the integrating capacitor 37 can be discharged by closing electrical switch 36 until the voltage across the integrating capacitor 37 is near zero. The electrical switches 30 and 31 are opened and closed in sequence but are never closed at the same time, although they may be opened at the same time as shown in FIG. 2. Electrical switch 30 is referred to as the input switch; electrical switch 31 is referred to as the output switch; and, electrical switch 36 is referred to as the shorting switch.
The proximity sensing device shown in FIG. 2 is operated by closing and opening the electrical switches 30, 31, and 36 in a particular sequence after which the voltage output from the amplifier 58, which is dependent on the proximity of a touch device 38, is recorded. Sensor operation begins with all switches in the open state as shown in FIG. 2. The shorting switch 36 is then closed for a sufficiently long time to reduce the charge residing on the integrating capacitor 37 to a low level. The shorting switch 37 is then opened. The input switch 30 is then closed thus allowing charge to flow between the power supply and the common node 48 until the voltage across the input switch 30 becomes zero. Charge Q will accumulate on the sensing electrode 33 according to
Q=V(e*A)/D  (1)
where V is the voltage of the power supply 34, e is the permittivity of the dielectric sensing electrode cover 32 and the air gap between the cover and the touch device 38, D is the thickness of this dielectric region, and A is the overlap area of the touch device 38 and the sensing electrode 33. Therefore the amount of charge accumulating on the sensing electrode 33 will depend, among other things, on the area of overlap of the touch device 38 and the sensing electrode 33 and the distance between the touch device 38 and the sensing electrode 33. The input switch 30 is opened after the voltage across it has become zero, or nearly so. Soon after input switch 30 is opened the output switch 31 is closed until the voltage across it is nearly zero. Closing the output switch 31 allows charge to flow between the sensing electrode 33 and the integrating capacitor 37 resulting in a voltage change across the integrating capacitor 37 according to:
deltaV=(V−Vc)/(1+C*D/e*A)  (2)
where Vc is the voltage across the integrating capacitor 37 before the output switch 31 was closed, C is the capacitance of the integrating capacitor 37, and A and D are equal to their values when input switch 30 was closed as shown in Equation 1. Multiple switchings of the input 30 and output 31 switches as described above produce a voltage on the integrating capacitor 37 that reflects the proximity of a touch device 38 to the sensing electrode 33.
FIG. 3A is a schematic diagram of the proximity sensor in which the shorting transistor 36 and the voltage-to-voltage translation device 35 are replaced by a resistor 40 and a current-to-voltage translation device 41, respectively. The integrating function of capacitor 37 shown in FIG. 2 is, in this variation of the proximity sensor, carried out by the capacitor 39 shown in FIG. 3A. Those skilled in the art will see that this variation of the proximity sensor produces a more linear output 58 from multiple switchings of the input and output switches, depending on the relative value of the resistor 40. Alternatively, the resistor 40 can be replaced by a shorting switch 69 (cf. FIG. 3B) to improve linearity. Although, the circuits shown in FIG. 3 provide a more linear output than the circuit shown in FIG. 2 the circuits of FIG. 3 generally require dual power supplies while the circuit of FIG. 2 requires only one.
The electrical switches shown in, FIG. 2 can be implemented with various transistor technologies: discrete, integrated, thin film, thick film, polymer, optical, etc. One such implementation is shown in FIG. 4A where field effect transistors (FETs) are used as the input 30, output 31, and shorting 36 switches. The FETs are switched on and off by voltages applied to their gate terminals (43, 44, and 55). For the purpose of this description we will assume the FET is switched on when its gate voltage is logic 1 and switched off when its gate voltage is logic 0. A controller 42 is used to apply gate voltages as a function of time as shown in FIG. 4B. In this example, a sequence of three pairs of pulses (43 and 44) are applied to the input and output transistor gates. Each pair of pulses 43 and 44 produces a voltage change across the integrating capacitor 37 as shown in Equation 2. The number of pulse pairs applied to input 43 and output 44 gates depends on the desired voltage across integrating capacitor 37. In typical applications the number is between one and several hundred pulse-pairs.
FIG. 5 shows the proximity sensor circuitry appropriate for use in a system comprising an array of proximity sensors 47 as in a multi-touch surface system. The proximity sensor 47 consists of the input transistor 30, the output transistor 31, the sensing electrode 33, the dielectric cover 32 for the sensing electrode 33, and conductive traces 43, 44, 45, and 46. The conductive traces are arranged so as to allow the proximity sensors 47 comprising a 2D array to be closely packed and to share the same conductive traces, thus reducing the number of wires needed in a system. FIG. 6 shows an example of such a system where the input nodes 46 of all proximity sensors are connected together and connected to a power supply 34. The output nodes 45 of all proximity sensors are connected together and connected to a single integrating capacitor 37, a single shorting transistor 36, and a single voltage-to-voltage amplifier 35. In this implementation, a single proximity sensor 47 is enabled at a time by applying a logic 1 signal first to its input gate 43 and then to its output gate 44. This gating of a single proximity sensor 47 one at a time is done by input gate controller 50 and output gate controller 51. For example, to enable the proximity sensor 47 in the lower right corner the input gate controller 50 would output a logic one pulse on conductive trace 43a. This is followed by a logic one pulse on conductive trace 44h produced by output gate controller 51. Repetition of this pulse as shown in FIG. 4B would cause charge to build up on integrating capacitor 37 and a corresponding voltage to appear at the output of the amplifier 58. The entire array of proximity sensors 47 is thus scanned by enabling a single sensor at a time and recording its output.
FIG. 7A is a schematic of typical circuitry useful for converting the proximity sensor output 58 to a digital code appropriate for processing by computer. The proximity sensor output 58 is typically non-zero even when there is no touch device (e.g., ref. no. 38 in FIG. 2) nearby. This non-zero signal is due to parasitic or stray capacitance present at the common node 48 of the proximity sensor and is of relatively constant value. It is desirable to remove this non-zero background signal before converting the sensor output 58 to a digital code. This is done by using a differential amplifier 64 to subtract a stored record of the background signal 68 from the sensor output 58. The resulting difference signal 65 is then converted to a digital code by an ADC (analog to digital converter) 60 producing a K-bit code 66. The stored background signal is first recorded by sampling the array of proximity sensors 47 (FIG. 6) with no touch devices nearby and storing a digital code specific for each proximity sensor 47 in a memory device 63. The particular code corresponding to the background signal of each proximity sensor is selected by an M-bit address input 70 to the memory device 63 and applied 69 to a DAC (digital to analog converter) 61.
The 2D array of proximity sensors 47 shown in FIG. 6 can be connected in groups so as to improve the rate at which the entire array is scanned. This is illustrated in FIG. 8 where the groups are arranged as columns of proximity sensors. In this approach, the input nodes of the proximity sensors are connected together and connected to a power supply 34, as in FIG. 6. The output gates 44 are also connected in the same way. However, the input gates 43 are now all connected together and the output nodes 45 are connected to only those proximity sensors 47 within a row and to a dedicated voltage amplifier 35. With this connection method, all of the proximity sensors in a column are enabled at a time, thus reducing the time to scan the array by a factor N, where N is the number of proximity sensors in a group. The outputs 58a-h could connect to dedicated converter circuitry as shown in FIG. 7A or alternatively each output 58a-h could be converted one at a time using the circuitry shown in FIG. 7B. In this figure, the output signals from each group 58a-h are selected one at a time by multiplexer 62 and applied to the positive input of the differential amplifier 64. With this later approach, it is assumed that the ADC 60 conversion time is much faster than the sensor enable time, thus providing the suggested speed up in sensor array scanning.
FIG. 9 shows a typical circuit useful for the control of the proximity sensor's output gate 44. It consists of three input signals 75, 76, 78 and two output signals 44, 77. The output gate signal 44 is logic 1 when both inputs to AND gate 79 are logic 1. The AND input signal 77 becomes logic 1 if input signal 76 is logic 1 when input signal 78 transitions from logic 0 to logic 1, otherwise it remains logic 0. A linear array of these circuits 81 can be connected end-to-end to enable the output gates of a single group of proximity sensors at a time as shown in FIG. 8.
FIG. 10 shows a cover for the multi-touch surface 89 that permits the system to be sensitive to pressure exerted by non-conducting touch objects (e.g., gloved fingers) contacting the multi-touch surface. This cover comprises a deformable dielectric touch layer 85, a deformable conducting layer 86, and a compliant dielectric layer 87. The touch surface 85 would have a symbol set printed on it appropriate for a specific application, and this surface could be removed and replaced with another one having a different symbol set. The conducting layer 86 is electrically connected 88 to the reference ground of the proximity sensor's power supply 34. When a touch object presses on the top surface 85 it causes the conducting surface 86 under the touch device to move closer to the sensing electrode 33 of the proximity sensor. This results in a change in the amount of charge stored on the sensing electrode 33 and thus the presence of the touch object can be detected. The amount of charge stored will depend on the pressure exerted by the touch object. More pressure results in more charge stored as indicated in Equation 1.
To obtain a softer touch surface on the multi-touch device a thicker and more, compliant dielectric cover could be used. However, as the dielectric thickness increases the effect of the touch device on the sensing electrodes 33 spreads out thus lowering spatial resolution. A compliant anisotropically-conducting material can be used to counter this negative effect while also providing a soft touch surface. FIG. 11 shows a cover in which a compliant anisotropically-conducting material 90 is set between a thin dielectric cover 85 and the sensing electrodes 33. If the conductivity of the compliant material 90 is oriented mostly in the vertical direction, the image formed by a touch device on the surface 85 will be translated without significant spreading to the sensing electrodes 33, thus preserving spatial resolution while providing a compliant touch surface.
FIG. 12 shows a cross section of a multi-touch surface that senses both the proximity and pressure of a touch device. The touch layer 85 is a thin dielectric that separates touch devices from the sensing electrodes 33. Proximity sensing is relative to this surface. The electrodes 33 and associated switches and conductors are fabricated on a compliant material 89 which is attached to a rigid metal base 92. The metal base 92 is electrically connected 88 to the reference ground of the proximity sensor's power supply 34. When a touch device presses on the touch surface 85 it causes the sensing electrodes 33 directly below to move closer to the rigid metal base 92. The distance moved depends on the pressure applied and thus the pressure exerted by a touch device can be detected as described before.
To illustrate typical properties of hand contacts as they appear in proximity images, FIGS. 13-15 contain sample images captured by a prototype array of parallelogram-shaped electrodes. Shading of each electrode darkens to indicate heightened proximity signals as flesh gets closer to the surface, compresses against the surface due to hand pressure, and overlaps the parallelogram more completely. Note that the resolution of these images is in no way intended to limit the scope of the invention, since certain applications such as handwriting recognition will clearly require finer electrode arrays than indicated by the electrode size in these sample images. In the discussion that follows, the proximity data measured at one electrode during a particular scan cycle constitutes one “pixel” of the proximity image captured in that scan cycle.
FIG. 13 shows a right hand flattened against the surface with fingers outstretched. At the far left is the oblong thumb 201 which tends to point off at about 120-degrees. The columnar blobs arranged in an arc across the top of the image are the index finger 202, middle finger 203, ring finger 204 and pinky finger 205. Flesh from the proximal finger joint, or proximal phalanges 209, will appear below each fingertip if the fingers are fully extended. The inner 207 and outer 206 palm heels cause the pair of very large contacts across the bottom of the image. Forepalm calluses 213 are visible at the center of the hand if the palm is fully flattened. This image shows that all the hand contacts are roughly oval-shaped, but they differ in pressure, size, orientation, eccentricity and spacing relative to one another. This image includes all of the hand parts which can touch the surface from the bottom of one hand but in many instances only a few of these parts will be touching the surface, and the fingertips may roam widely in relation to the palms as fingers are flexed and extended.
FIG. 14 shows another extreme in which the hand is partially closed. The thumb 201 is adducted toward the fingertips 202-208 and the fingers are flexed so the fingertips come down normal instead of tangential to the surface. The height and intensity of fingertip contacts is lessened somewhat because the boney tip rather than fleshy pulp pad is actually touching the surface, but fingertip width remains the same. Adjacent fingertips 202-205 and thumb 201 are so close together as to be distinguishable only by slight proximity valleys 210 between them. The proximal phalange finger joints are suspended well above the surface and do not appear in the image, nor do the forepalm calluses. The palm heels 206, 207 are somewhat shorter since only the rear of the palm can touch the surface when fingers are flexed, but the separation between them is unchanged. Notice that the proximity images are uncluttered by background objects. Unlike optical images, only conductive objects within a few millimeters of the surface show up at all.
FIG. 15 is a proximity image of a right hand in a pen grip configuration. The thumb 201 and index fingertip 202 are pinched together as if they were holding a pen but in this case they are touching the surface instead. Actually the thumb and index finger appear the same here as in FIG. 14. However, the middle 203, ring 204, and pinky 205 fingers are curled under as if making a fist, so the knuckles from the top of the fingers actually touch the surface instead of the finger tips. The curling under of the knuckles actually places them behind the pinched thumb 201 and index fingertip 202 very close to the palm heels 206, 207. The knuckles also appear larger than the curled fingertips of FIG. 14 but the same size as the flattened fingertips in FIG. 13. These differences in size and arrangement will be measured by the pen grip detector 17 to distinguish this pen grip configuration from the closed and flattened hand configurations.
FIG. 16 represents the data flow within the contact tracking and identification module 10. The image segmentation process 241 takes the most recently scanned proximity image data 240 and segments it into groups of electrodes 242 corresponding to the distinguishable hand parts of FIG. 13. The filtering and segmentation rules applied in particular regions of the image are partially determined by feedback of the estimated hand offset data 252. The image segmentation process 241 outputs a set of electrode group data structures 242 which are parameterized by fitting an ellipse to the positions and proximity measurements of the electrodes within each group.
The path tracking process 245 matches up the parameterized electrode groups 242 with the predicted continuations of contact path data structures 243 extracted from previous images. Such path tracking ensures continuity of contact representation across proximity images. This makes it possible to measure the velocity of individual hand contacts and determine when a hand part lifts off the surface, disappearing from future images. The path tracking process 245 updates the path positions, velocities, and contact geometry features from the parameters of the current groups 242 and passes them on to the contact identification processes 247 and 248. For notational purposes, groups and unidentified paths will be referred to by data structure names of the form Gi and Pi respectively, where the indices i are arbitrary except for the null group G0 and null path P0. Particular group and path parameters will be denoted by subscripts to these structure names and image scan cycles will be denoted by bracketed indices, so that, for example, P2x[n] represents the horizontal position of path 2 in the current proximity image, and P2x[n−1] represents the position in the previous proximity image. The contact identification system is hierarchically split into a hand identification process 247 and within-hand finger and palm identification process 248. Given a hand identification for each contact, the finger and palm identification process 248 utilizes combinatorial optimization and fuzzy pattern recognition techniques to identify the part of the hand causing each surface contact. Feedback of the estimated hand offset helps identify hand contacts when so few contacts appear in the image that the overall hand structure is not apparent.
The hand identification process 247 utilizes a separate combinatorial optimization algorithm to find the assignment of left or right hand identity to surface contacts which results in the most biomechanically consistent within-hand identifications. It also receives feedback of the estimated hand and finger offsets 252, primarily for the purpose of temporarily storing the last measured hand position after fingers in a hand lift off the surface. Then if the fingers soon touch back down in the same region they will more likely receive their previous hand identifications.
The output of the identification processes 247 and 248 is the set of contact paths with non-zero hand and finger indices attached. For notational purposes identified paths will be referred to as F0 for the unidentified or null finger, F1 for the thumb 201, F2 for the index finger 202, F3 for the middle finger 203, F4 for the ring finger 204, F5 for the pinky finger 205, F6 for the outer palm heel 206. F7 for the inner palm heel 207, and F8 for the forepalm calluses 208. To denote a particular hand identity this notation can be prefixed with an L for left hand or R for right hand, so that, for example, RF2 denotes the right index finger path. When referring to a particular hand as a whole. LH denotes the left hand and RH denotes the right hand. In the actual algorithms left hand identity is represented by a −1 and right hand by +1, so it is easy to reverse the handedness of measurements taken across the vertical axis of symmetry.
It is also convenient to maintain for each hand a set of bitfield data registers for which each bit represents touchdown, continued contact or liftoff of a particular finger. Bit positions within each bit field correspond to the hand part indices above. Such registers can quickly be tested with a bit mask to determine whether a particular subset of fingers has touched down. Alternatively, they can be fed into a lookup table to find the input events associated with a particular finger chord (combination of fingers). Such finger identity bitfields are needed primarily by the synchronization detector 14 and chord motion recognizer 18.
The last process within the tracking and identification subsystem is the hand position estimator 251, which as described above provides biasing feedback to the identification and segmentation processes. The hand position estimator is intended to provide a conservative guess 252 of lateral hand position under all conditions including when the hand is floating above the surface without touching. In this case the estimate represents a best guess of where the hand will touch down again. When parts of a hand are touching the surface, the estimate combines the current position measurements of currently identified hand parts with past estimates which may have been made from more or less reliable identifications.
The simplest but inferior method of obtaining a hand position measurement would be to average the positions of all the hand's contacts regardless of identity. If hand parts 201-207 were all touching the surface as in FIG. 13 the resulting centroid would be a decent estimate, lying somewhere under the center of the palm since the fingers and palm heels typically form a ring around the center of the palm. However, consider when only one hand contact is available for the average. The estimate would assume the hand center is at the position of this lone contact, but if the contact is from the right thumb the hand center would actually be 4-8 cm to the right, or if the contact is from a palm heel the hand center is actually 4-6 cm higher, or if the lone contact is from the middle finger the hand center should actually be actually 4-6 cm lower.
FIG. 17 shows the detailed steps within the hand position estimator 251. The steps must be repeated for each hand separately. In a preferred embodiment, the process utilizes the within-hand contact identifications (250) to compute (step 254) for each contact an offset between the measured contact position (Fix[n], Fiy[n]) and the default position of the particular finger or palm heel (Fidefx,Fidefy) with hand part identity i. The default positions preferably correspond to finger and palm positions when the hand is in a neutral posture with fingers partially closed, as when resting on home row of a keyboard. Step 255 averages the individual contact offsets to obtain a measured hand offset, (Hmox[n], Hmoy[n]):
H mox [ n ] = i = 1 i = 7 Fi mow [ n ] ( Fi x [ n ] - Fi defx ) i = 1 i = 7 Fi mow [ n ] ( 3 ) H moy [ n ] = i = 1 i = 7 Fi mow [ n ] ( Fi y [ n ] - Fi defy ) i = 1 i = 7 Fi mow [ n ] ( 4 )
Preferably the weighting Fimow[n] of each finger and palm heel is approximately its measured total proximity, i.e., Fimow[n]=Fiz[n]. This ensures that lifted fingers, whose proximity is zero, have no influence on the average, and that contacts with lower than normal proximity, whose measured positions and identities are less accurate, have low influence. Furthermore, if palm heels are touching, their large total proximities will dominate the average. This is beneficial because the palm heels, being immobile relative to the hand center compared to the highly flexible fingers, supply a more reliable indication of overall hand position. When a hand is not touching the surface, i.e., when all proximities are zero, the measured offsets are set to zero. This will cause the filtered hand position estimate below to decay toward the default hand position.
As long as the contact identifications are correct, this hand position measurement method eliminates the large errors caused by assuming lone contacts originate from the center of the hand. Flexing of fingers from their default positions will not perturb the measured centroid more than a couple centimeters. However, this scheme is susceptible to contact misidentification, which can cause centroid measurement errors of up to 8 cm if only one hand part is touching. Therefore, the current measured offsets are not used directly, but are averaged with previous offset estimates (Heox[n−1], Heoy[n−1]) using a simple first-order autoregressive filter, forming current offset estimates (Heox[n], Heoy[n]).
Step 256 adjusts the filter pole Hoa[n] according to confidence in the current contact identifications. Since finger identifications accumulate reliability as more parts of the hand contact the surface one simple measure of identification confidence: is the number of fingers which have touched down from the hand since the hand last left the surface. Contacts with large total proximities also improve identification reliability because they have strong disambiguating features such as size and orientation. Therefore Hoa[n] is set roughly proportional to the maximum finger count plus the sum of contact proximities for the hand. Hoa[n] must of course be normalized to be between zero and one or the filter will be unstable. Thus when confidence in contact identifications is high, i.e., when many parts of the hand firmly touch the surface, the autoregressive filter favors the current offset measurements. However, when only one or two contacts have reappeared since hand liftoff, the filter emphasizes previous offset estimates in the hope that they were based upon more reliable identifications.
The filtered offsets must also maintain a conservative estimate of hand position while the hand is floating above the surface for optimal segmentation and identification as the hand touches back down. If a hand lifts off the surface in the middle of a complex sequence of operations and must, quickly touch down again, it will probably touch down close to where it lifted off. However, if the operation sequence has ended, the hand is likely to eventually return to the neutral posture, or default position, to rest. Therefore, while a hand is not touching the surface, Hoa[n] is made small enough that the estimated offsets gradually decay to zero at about the same rate as a hand lazily returns to default position.
When Hoa[n] is made small due to low identification confidence, the filter tracking delay becomes large enough to lag behind a pair of quickly moving fingers by several centimeters. The purpose of the filter is to react slowly to questionable changes in contact identity, not to smooth contact motion. This motion tracking delay can be safely eliminated by adding the contact motion measured between images to the old offset estimate. Step 257 obtains motion from the average, (Hnvx[n], Hnvy[n]) of the current contact velocities:
M mvx [ n ] = i = 1 i = 7 Fi mow [ n ] Fi vx [ n ] i = 1 i = 7 Fi mow [ n ] ( 5 ) H mvy [ n ] = i = 1 i = 7 Fi mow [ n ] Fi vy [ n ] i = 1 i = 7 Fi mow [ n ] ( 6 )
The current contact velocities. (Fivx[n], Fvy[n]), are retrieved from the path tracking process 245, which measures them independent of finger identity. Step 258 updates the estimated hand offsets (Heox[n], Heoy[n]) using the complete filter equations:
Heox[n]=Hoa[n]Hmox[n]+(1−Hoa[n])(Heox[n−1]+Hmox[n]Δt)  (7)
Heoy[n]=Hoa[n]Hmoy[n]+(1−Hoa[n])(Heoy[n−1]+Hmoy[n]Δt)  (8)
Finally, to provide a similarly conservative estimate of the positions of particular fingers step

The remainder of this text has been abbreviated because it is either very complex or very long and may not be displayed properly or efficiently by your web browser. Even with this precaution, certain browsers may display odd behaviors when rendering this document. Please download the document to view it in its entirety.
(Source: USPTO)
What is claimed is:
1. A method comprising: obtaining a set of contacts detected on or near a sensing surface; generating a plurality of partitions, each partition representing an assignment of the contacts to a plurality of groups, wherein each group corresponds to a plurality of touch devices; determining, for each partition, a fit of the assignment of the contacts to one or more constraints of the plurality of touch devices of each group; and assigning the contacts to the groups according to the partition with the best fit.
2. The method of claim 1, wherein the plurality of groups includes a left hand group and a right hand group, and the plurality of touch devices includes at least one of right-hand fingers corresponding to the right hand group, a right-hand thumb corresponding to the right hand group, and a right-hand palm heel corresponding to the right hand group.
3. The method of claim 1, wherein the plurality of touch devices of each group includes different types of touch devices.
4. The method of claim 1, wherein determining the fit includes calculating a distance metric between the contacts assigned to a group and a template of attractor points of the group.
5. The method of claim 4, wherein the distance metric includes a sum of differences between the attractor points and contacts for each group.
6. The method of claim 4, wherein determining the fit includes one of adjusting the template based on a predetermined translation of a default template, adjusting the template based on a predetermined rotation of a default template, and adjusting the attractor points based on predetermined offset values of a default template.
7. The method of claim 1, wherein determining the fit includes calculating a separation factor representing a separation distance between the groups.
8. The method of claim 7, wherein the separation distance is based on a distance between a first contact in a first group and a second contact in a second group.
9. The method of claim 8, wherein the first and second contacts are nearest contacts of the first and second groups.
10. The method of claim 8, wherein the plurality of touch devices of each group includes different types of touch devices, and the first and second contacts correspond to a same type of touch device.
11. The method of claim 1, wherein the one or more constraints includes at least one of a geometric constraint of the plurality of touch devices of a group and a biomechanical constraint of the plurality of touch devices of a group.
12. The method of claim 1, wherein the set of contacts includes only contacts that physically touch the surface.
13. The method of claim 1, wherein generating a plurality of partitions includes defining one or more contours for each partition.
14. The method of claim 13, wherein the contours include one of substantially linear contours and substantially vertical contours.
15. The method of claim 13, wherein the number of contours defined for each partition is the same.
16. The method of claim 13, wherein generating a plurality of partitions includes defining a contour between a distal end of the surface and a contact nearest to the distal end of the surface.
17. The method of claim 13, wherein generating a plurality of partitions includes discarding a partition in which a number of contacts assigned to a group exceed a maximum number of contacts of the group.
18. The method of claim 1, further comprising: determining whether a new contact has been detected on or near the surface, wherein the obtaining a set of contacts, generating a plurality of partitions, determining a fit, and assigning the contacts are performed only when the new contact is detected.
19. A computer-readable storage medium storing computer-executable program instructions executable to perform a method comprising: obtaining a set of contacts detected on or near a sensing surface; generating a plurality of partitions, each partition representing an assignment of the contacts to a plurality of groups, wherein each group corresponds to a plurality of touch devices; determining, for each partition, a fit of the assignment of the contacts to one or more constraints of the plurality of touch devices of each group; and assigning the contacts to the groups according to the partition with the best fit.
20. The computer-readable storage medium of claim 19, wherein determining the fit includes calculating a distance metric between the contacts assigned to a group and a template of attractor points of the group.
21. The computer-readable storage medium of claim 20, wherein determining the fit includes one of adjusting the template based on a predetermined translation of a default template, adjusting the template based on a predetermined rotation of a default template, and adjusting the attractor points based on predetermined offset values of a default template.
22. The computer-readable storage medium of claim 19, wherein determining the fit includes calculating a separation factor representing a separation distance between the groups.
23. The computer-readable storage medium of claim 19, wherein the one or more constraints includes at least one of a geometric constraint of the plurality of touch devices of a group and a biomechanical constraint of the plurality of touch devices of a group.
24. The computer-readable storage medium of claim 19, wherein generating a plurality of partitions includes defining one or more contours for each partition.
25. A touch sensing apparatus comprising: a sensing surface; a scanner that detects a set of contacts on or near the sensing surface; and an identification module that generates a plurality of partitions, each partition representing an assignment of the contacts to a plurality of groups, wherein each group corresponds to a plurality of touch devices, determines, for each partition, a fit of the assignment of the contacts to one or more constraints of the plurality of touch devices of each group, and assigns the contacts to the groups according to the partition with the best fit.
26. The touch sensing apparatus of claim 25, wherein determining the fit includes calculating a distance metric between the contacts assigned to a group and a template of attractor points of the group.
27. The touch sensing apparatus of claim 26, wherein determining the fit includes one of adjusting the template based on a predetermined translation of a default template, adjusting the template based on a predetermined rotation of a default template, and adjusting the attractor points based on predetermined offset values of a default template.
28. The touch sensing apparatus of claim 25, wherein determining the fit includes calculating a separation factor representing a separation distance between the groups.
29. The touch sensing apparatus of claim 25, wherein the one or more constraints includes at least one of a geometric constraint of the plurality of touch devices of a group and a biomechanical constraint of the plurality of touch devices of a group.
30. The touch sensing apparatus of claim 25, wherein generating a plurality of partitions includes defining one or more contours for each partition.
(Source: USPTO)