IP Library › Granted Patent US 10,521,030
Granted Patent B2
US 10,521,030 · App. 15/867,617 · Granted Dec 31, 2019

Transforming a control stick movement space

Inventors: Miles Franz Kaech (Vancouver, CA); Curtis F. McClive (Kirkland, WA); Ross Anthony Nelson (Seattle, WA); Aaron J. Schmitz (Redmond, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F3/038A63F13/22G05G9/047G06F3/0338G06F3/0362A63F2300/10A63F2300/1018A63F2300/6045G06F3/0383
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,521,030
App. No.
15/867,617
Granted
Dec 31, 2019
Kind
B2
Abstract

Examples are disclosed that relate to computing devices and methods for transforming output of a control stick. In one example, a method comprises: receiving a dead zone inflection point defining a boundary of a dead zone region and a playspace region within a first normalized unit-area movement space of the control stick, mapping the first normalized unit-area movement space to a second normalized unit-area movement space, using a scaling function comprising the dead zone inflection point, scaling each axis of the second normalized unit-area movement space to generate a scaled second normalized unit-area movement space, transforming the scaled second normalized unit-area movement space to a scaled first normalized unit-area movement space, receiving position data representing a current position of the control stick, and transforming the current position to a transformed position in the scaled first normalized unit-area movement space.

Claims (39)

1. At a computing device, a method for transforming output of a control stick, the method comprising:

receiving a dead zone inflection point defining a boundary of a dead zone region and a playspace region within a first normalized unit-area movement space of the control stick;

mapping the first normalized unit-area movement space to a second normalized unit-area movement space by multiplying one or more coordinates of a point in the first normalized unit-area movement space by a first scale factor;

using a scaling function comprising the dead zone inflection point, scaling each axis of the second normalized unit-area movement space by applying the scaling function to each axis of the second normalized unit-area movement space independently to generate a scaled second normalized unit-area movement space;

transforming the scaled second normalized unit-area movement space to a scaled first normalized unit-area movement space by dividing one or more coordinates of a point in the scaled second normalized unit-area movement space by a second scale factor;

receiving position data representing a current position of the control stick; and

transforming the current position to a transformed position in the scaled first normalized unit-area movement space.

2. The method of claim 1 , wherein the dead zone inflection point comprises a first coordinate corresponding to a return-to-center parameter of the control stick, and a second coordinate corresponding to a dimension of a dead zone region.

3. The method of claim 1 , wherein the first scale factor has a value of one when any of the coordinates of the point in the first normalized unit-area movement space has a value of zero.

4. The method of claim 1 , wherein the coordinates of the point in the first normalized unit-area movement space comprise an x-axis coordinate and a y-axis coordinate, and wherein when the absolute value of the x-axis coordinate is less than the absolute value of the y-axis coordinate, the first scale factor comprises the square root of: the sum of one plus the squared x-coordinate divided by the squared y-coordinate.

5. The method of claim 1 , wherein the coordinates of the point in the first normalized unit-area movement space comprise an x-axis coordinate and a y-axis coordinate, and wherein when the absolute value of the y-axis coordinate is less than or equal to the absolute value of the x-axis coordinate, the first scale factor comprises the square root of: the sum of one plus the squared y-coordinate divided by the squared x-coordinate.

6. The method of claim 1 , wherein the scaling function comprises a piecewise function, and wherein an input variable of the piecewise function comprises a coordinate of a point in the second normalized unit-area movement space.

7. The method of claim 6 , wherein the piecewise function comprises a first sub-function continuous between an origin and the dead zone inflection point, and a second sub-function continuous from the dead zone inflection point to a maximum possible coordinate in the second normalized unit-area movement space.

8. The method of claim 1 , wherein scaling each axis of the second normalized unit-area movement space comprises scaling a first axis of the second normalized unit-area movement space using a first scaling function comprising a first dead zone inflection point and scaling a second axis of the second normalized unit-area movement space using a second scaling function comprising a second dead zone inflection point.

9. The method of claim 1 , wherein the computing device is integrated in a user input device comprising the control stick.

10. The method of claim 1 , wherein mapping the first normalized unit-area movement space to the second normalized unit-area movement space comprises mapping a circular first normalized unit-area movement space to a square second normalized unit-area movement space.

11. The method of claim 1 , wherein the scaled first normalized unit-area movement space comprises a circular movement space.

12. The method of claim 1 , further comprising calculating the first scale factor and the second scale factor using a same function.

13. The method of claim 1 , wherein the scaled first normalized unit-area movement space preserves a perimeter of the first normalized unit-area movement space.

14. A user input device, comprising:

a control stick configured to receive an input from a user along one or more axes; and

a processor configured to:

receive a dead zone inflection point defining a boundary of a dead zone region and a playspace region within a first normalized unit-area movement space of the control stick;

map the first normalized unit-area movement space to a second normalized unit-area movement space by multiplying one or more coordinates of a point in the first normalized unit-area movement space by a first scale factor;

using a scaling function comprising the dead zone inflection point, scale each axis of the second normalized unit-area movement space by applying the scaling function to each axis of the second normalized unit-area movement space independently to generate a scaled second normalized unit-area movement space;

transform the scaled second normalized unit-area movement space to a scaled first normalized unit-area movement space by dividing one or more coordinates of a point in the scaled second normalized unit-area movement space by a second scale factor;

receive position data representing a current position of the control stick; and

transform the current position to a transformed position in the scaled first normalized unit-area movement space.

15. The device of claim 14 , wherein the coordinates of the point in the first normalized unit-area movement space comprise an x-axis coordinate and a y-axis coordinate, and wherein when the absolute value of the x-axis coordinate is less than the absolute value of the y-axis coordinate, the first scale factor comprises the square root of: the sum of one plus the squared x-coordinate divided by the squared y-coordinate.

16. The device of claim 14 , wherein the coordinates of the point in the first normalized unit-area movement space comprise an x-axis coordinate and a y-axis coordinate, and wherein when the absolute value of the y-axis coordinate is less than or equal to the absolute value of the x-axis coordinate, the first scale factor comprises the square root of: the sum of one plus the squared y-coordinate divided by the squared x-coordinate.

17. The device of claim 14 , wherein scaling each axis of the second normalized unit-area movement space comprises scaling a first axis of the second normalized unit-area movement space using a first scaling function comprising a first dead zone inflection point and scaling a second axis of the second normalized unit-area movement space using a second scaling function comprising a second dead zone inflection point.

18. The device of claim 14 , wherein the scaling function comprises a piecewise function, and wherein an input variable of the piecewise function comprises a coordinate of a point in the second normalized unit-area movement space.

19. The device of claim 18 , wherein the piecewise function comprises a first sub-function continuous between an origin and the dead zone inflection point, and a second sub-function continuous from the dead zone inflection point to a maximum possible coordinate in the second normalized unit-area movement space.

20. At a user input device comprising a control stick and a computing device, a method for transforming output of the control stick, the method comprising:

receiving a dead zone inflection point defining a boundary of a dead zone region and a playspace region within a first normalized unit-area movement space of the control stick;

mapping the first normalized unit-area movement space of the control stick to a second normalized unit-area movement space of the control stick by at least multiplying coordinates of a point in the first normalized unit-area movement space by a first scale factor;

using a scaling function comprising the dead zone inflection point, scaling each axis of the second normalized unit-area movement space to generate a scaled second normalized unit-area movement space by applying the scaling function to each axis of the second normalized unit-area movement space independently;

transforming the scaled second normalized unit-area movement space to a scaled first normalized unit-area movement space by dividing one or more coordinates of a point in the scaled second normalized unit-area movement space by a second scale factor;

receiving position data representing a current position of the control stick; and transforming the current position to a transformed position in the scaled first normalized unit-area movement space.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2018
From: KAECH, MILES FRANZ; MCCLIVE, CURTIS F.; NELSON, ROSS ANTHONY; SCHMITZ, AARON J.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044590/0401 →
Continuity (1)
Related Publication 20190212832A1 · Jul 11, 2019
Cited By (1)
US 12,221,199