Air pointer with improved user experience
AssigneeMovea
InventorsPierre Grenet, Guillaume Aujay
Life of this patent
Estimating the term…
Abstract
A 3D pointing device and a method are disclosed to control an object on a surface and to improve the user experience when the user moves the object beyond the limits of the surface where the object can no longer be visualized. The user experience is enhanced by defining the behavior of a cursor in a margin around the screen.
Claims13
A system for controlling a virtual object on a surface comprising:
- at least one of a camera, accelerometer, gyrometer, magnetometer, or any combination thereof configured for producing measurements in relation to one of a position, an attitude, and a motion of a pointing device;
- a microprocessor and a memory configured for calculating a first position pointed by the pointing device in the surface or in a virtual space around the surface from the measurements;
- said microprocessor and memory being further configured to display the virtual object at a second position in the surface, said second position being calculated according to one of the first position and variations of the first position using a first gain g1 when the first position is located in the surface and a second gain g2 when the first position is located inside a subset of the virtual space, enclosing the surface, the first gain g1 and the second gain g2 being defined in order that 0<g2<g1<1, and in order that the second position is displayed at an edge of the surface when the first position is at an edge of the subset of the virtual space, wherein the surface is a rectangle of width W and height H, and the subset is a rectangle of width W2 and height H2 centred around the surface, and wherein:
- W
-
-
- 2
- =
- 1
- -
- g
-
-
- 1
- +
- g
-
-
- 2
- g
-
-
- 2
- ·
- W
- ;
- H
-
-
- 2
- =
- 1
- -
- g
-
-
- 1
- +
- g
-
-
- 2
- g
-
-
- 2
- ·
- H
- .
A system for controlling a virtual object on a surface comprising:
- at least one of a camera, accelerometer, gyrometer, magnetometer, or any combination thereof configured for producing measurements in relation to one of a position, an attitude, and a motion of a pointing device;
- a microprocessor and a memory configured for calculating a first position pointed by the pointing device in the surface or in a virtual space around the surface from the measurements;
- said microprocessor and memory being further configured to display the virtual object at a second position in the surface, said second position being calculated using a mode of calculation chosen from a group comprising at least one of at least an absolute mode and a relative mode, the mode of calculation of said second position being switched according to the first position in order that:
- when the first position is within the surface, the second position is calculated using the relative mode;
- when the first position is outside a subset of the virtual space, said subset enclosing the surface, the second position is calculated using the absolute mode;
- when the first position is in the subset, the second position is calculated using the relative mode if the first position entered the subset from the surface, and using the absolute mode, if the first position entered the subset from the virtual space outside of the subset;
- wherein the surface is a rectangle of coordinates (W, H) in a frame of reference of the surface, the first position having first coordinates (x1, y1) and the second position having second coordinates (x2, y2) in said frame of reference, and wherein the second coordinates are calculated:
- in the absolute mode, by a saturation of the first coordinates to the edges of the surface, by a formula of the type (x2, y2)=(min(max(0, x1);
- W);
- min(max(0;
- y1);
- H));
- in the relative mode, by:
- the application of the variation (dx1, dy1) of the first coordinates (x1, y1) by a formula of the type:
- (x2, y2)=(x2+dx1, y2+dy1);
- the saturation of the second coordinates (x2, y2) to the edges of the subset, by a formula of the type (x2, y2)=(min(max(0, x2);
- W);
- min(max(0;
- y2);
- H)).
A system for controlling a virtual object on a surface comprising:
- at least one of a camera, accelerometer, gyrometer, magnetometer, or any combination thereof configured for producing measurements in relation to one of a position, an attitude, and a motion of a pointing device;
- a microprocessor and a memory configured for calculating a first position of the virtual object from the measurements;
- said microprocessor and memory being further configured to convert at least an orientation of the device into variations of the horizontal position of the virtual object, said conversion being calculated in one of an absolute mode, a relative mode and a combination thereof based on a pitch angle of the device, wherein:
- in relative mode, a variation of the horizontal coordinate of the virtual pointer is obtained based on a variation of a yaw angle and a sensitivity factor;
- and
- in absolute mode a horizontal coordinate of the virtual object is calculated by applying a gain and the sensitivity factor on a rotation matrix of the device;
- in a first subset of the surface, a position P of the virtual object is calculated as a weighted sum of the position calculated according to the relative mode, and the position calculated according to the absolute mode;
- the first subset defines a margin around the surface;
- the position P of the virtual object is calculated by a formula of the type:
- P=α*PLP+(1−α)*PHP, wherein PLP is the position calculated according to the relative mode, PHP the position calculated according to the absolute mode, and α is a
- number between 0 and 1 that represents the relative contribution of each mode.
A system for controlling a virtual object on a surface comprising:
- at least one of a camera, accelerometer, gyrometer, magnetometer, or any combination thereof configured for producing measurements in relation to one of a position, an attitude, and a motion of a pointing device;
- a microprocessor and a memory configured for calculating a first position of the virtual object from the measurements;
- said microprocessor and memory being further configured to convert at least an orientation of the device into variations of the horizontal position of the virtual object, said conversion being calculated in one of an absolute mode, a relative mode and a combination thereof based on a pitch angle of the device, wherein:
- in relative mode, a variation of the horizontal coordinate of the virtual pointer is obtained based on a variation of a yaw angle and a sensitivity factor;
- in absolute mode a horizontal coordinate of the virtual object is calculated by applying a gain and the sensitivity factor on a rotation matrix of the device;
- in the relative mode, a variation ΔX of the coordinate of the virtual pointer on an horizontal axis is obtained by a formula where ΔX=k*ΔΨ, wherein ΔΨ is a variation of the yaw angle, and k is a sensitivity factor;
- and
- in the absolute mode at high pitch angles, the horizontal coordinate Xh of the virtual object in the horizontal axis is calculated by a formula where
- [
- X
- h
- .
- .
- ]
- =
- k
- *
- gain
- *
- R
- *
- [
- 1
- 0
- 0
- ]
- ,
- wherein k is the sensitivity factor used in relative mode, gain is a gain factor, and R is a rotation matrix of the device.
A system for controlling a virtual object on a surface comprising:
- at least one of a camera, accelerometer, gyrometer, magnetometer, or any combination thereof configured for producing measurements in relation to one of a position, an attitude, and a motion of a pointing device;
- a microprocessor and a memory configured for calculating a first position of the virtual object from the measurements;
- said microprocessor and memory being further configured to convert at least an orientation of the device into variations of the horizontal position of the virtual object, said conversion being calculated in one of an absolute mode, a relative mode and a combination thereof based on a pitch angle of the device, wherein:
- in relative mode, a variation of the horizontal coordinate of the virtual pointer is obtained based on a variation of a yaw angle and a sensitivity factor;
- and
- in absolute mode a horizontal coordinate of the virtual object is calculated by applying a gain and the sensitivity factor on a rotation matrix of the device;
- and wherein the gain is calculated by the formula
- gain
- =
- Ψ
- m
-
-
- a
-
-
- x
- sin
-
- (
- Ψ
- m
-
-
- a
-
-
- x
- )
- ,
- wherein Ψmax is the yaw angle which covers half of the screen, between the centre of said screen and one of the left and right edge, for the sensitivity factor k.
Dependencies are inferred from the claim text.