Systems and methods of free-space gestural interaction
During control of a user interface via free-space motions of a hand or other suitable control object, switching between control modes can be facilitated by tracking the control object's movements relative to, and its contact with a “virtual touch plane or surface” (i.e., a plane, portion of a plane, and/or surface computationally defined in space, or corresponding to any physical surface).
1 . A method comprising:
receiving a position of an interaction between a first three-dimensional (3D) gesture primitive and a plane defined in a 3D space, wherein a position of the plane is based, at least in part, on a pointing direction of the first 3D gesture primitive;
changing, based at least in part, on the position of the interaction and the position of the plane, (i) a mode for an element to a tentatively selected mode, and (ii) a displayed control to indicate the tentatively selected mode;
detecting a second 3D gesture primitive in the 3D space;
changing the mode from the tentatively selected mode to an actuation mode; and
providing a signal to initiate a function based, at least in part, on the displayed control,
wherein at least one of the first 3D gesture primitive or the second 3D gesture primitive is a component of a compound gesture of an object, and is represented by coordinate (x, y, z) points that lie on a path.
2 . The method of claim 1 , wherein the changing of the displayed control is performed prior to activating the function that is based, at least in part, on the displayed control.
3 . The method of claim 1 , wherein the indicating of the tentatively selected mode is done haptically.
4 . The method of claim 1 , wherein the indicating of the tentatively selected mode is done visually.
5 . The method of claim 1 , wherein the detecting of the second 3D gesture primitive is specific to the displayed control.
6 . The method of claim 1 , comprising changing the mode from the tentatively selected mode to an unselected mode based, at least in part, on detecting a gesture.
7 . The method of claim 6 , wherein the detecting of the gesture is specific to the displayed control.
8 . The method of claim 1 , wherein at least one of the first 3D gesture primitive or the second 3D gesture primitive is represented by an algebraic curve.
9 . A method comprising:
receiving a first interaction between a first three-dimensional (3D) gesture primitive and a plane in a 3D space, wherein a position of the plane is based, at least in part, on a pointing direction of the first 3D gesture primitive;
receiving a second interaction between a second 3D gesture primitive and the plane;
changing, based at least in part, on one of the first interaction or the second interaction and the plane, (i) a mode for a machine modality to a tentatively selected mode, and (ii) a displayed modality control to indicate the tentatively selected mode;
detecting a third 3D gesture primitive in the 3D space;
changing the mode from the tentatively selected mode to an actuation mode; and
providing a signal to initiate a function based, at least in part, on the displayed modality control,
wherein at least one of the first 3D gesture primitive, the second 3D gesture primitive, or the third 3D gesture primitive is a component of a compound gesture of an object, and is represented by coordinate (x, y, z) points that lie on a path.
10 . The method of claim 9 , wherein the changing of the displayed modality control is performed prior to activating the function that is based, at least in part, on the displayed modality control.
11 . The method of claim 9 , wherein the indicating of the tentatively selected mode is done haptically.
12 . A method including:
receiving a position of a detected contact between a first object and a plane defined in a three-dimensional (3D) space;
generating a first 3D gesture primitive based, at least in part, on the position of the detected contact between the first object and the plane, wherein an orientation of the plane is based, at least in part, on a pointing direction of the first 3D gesture primitive;
changing, based at least in part, on the position of the detected contact and the plane orientation, (i) a mode for an element to a tentatively selected mode, and (ii) a displayed control to indicate the tentatively selected mode;
detecting a confirmatory gesture of a second object in the 3D space;
changing the mode from the tentatively selected mode to an actuation mode; and
providing a signal to initiate a function based, at least in part, on the displayed control,
wherein the first 3D gesture primitive is a component of a compound gesture of an object, and is represented by coordinate (x, y, z) points that lie on a path.
13 . The method of claim 12 , wherein the changing of the displayed control is performed prior to activating a function that is based, at least in part, on the displayed control.
14 . The method of claim 12 , wherein the indicating of the tentatively selected mode is done haptically.
15 . The method of claim 1 , wherein at least one of the first 3D gesture primitive or the second 3D gesture primitive is stored as at least one of: (i) coordinate (x, y, z) points that lie on a path, (ii) a set of vectors, or (iii) a set of specified curves, lines, or shapes.
16 . The method of claim 15 , wherein the set of specified curves, lines, or shapes comprises one of an arc, a parabola, or an elliptic curve.
17 . The method of claim 1 , wherein at least one of the first 3D gesture primitive or the second 3D gesture primitive has a field specifying a part of body used in making the compound gesture.
18 . The method of claim 9 , wherein at least one of the first 3D gesture primitive, the second 3D gesture primitive, or the third 3D gesture primitive is stored as at least one of: (i) coordinate (x, y, z) points that lie on a path, (ii) a set of vectors, or (iii) a set of specified curves, lines, or shapes comprising one of an arc, a parabola, or an elliptic curve.
19 . The method of claim 12 , wherein the first 3D gesture primitive is stored as at least one of: (i) coordinate (x, y, z) points that lie on a path, (ii) a set of vectors, or (iii) a set of specified curves, lines, or shapes comprising one of an arc, a parabola, or an elliptic curve.
20 . The method of claim 1 , comprising changing the mode from the tentatively selected mode to an unselected mode based, at least in part, on detecting a free-space ratificatory gesture.