LATENCY COMPENSATION SYSTEM
20240045519 ยท 2024-02-08
Inventors
Cpc classification
G06F3/0338
PHYSICS
G10H2220/271
PHYSICS
G06F3/0202
PHYSICS
A63F13/42
HUMAN NECESSITIES
A63F13/44
HUMAN NECESSITIES
H03K2217/9658
ELECTRICITY
G06F3/0362
PHYSICS
International classification
G06F3/0362
PHYSICS
Abstract
A method and corresponding system for providing a depressed state signal from a keyboard or button. The method comprises sensing movement of an actuator of the keyboard or button, determining, during depression of the actuator, a velocity of the actuator at a depression sense position of the actuator and at a first time, processing the determined velocity to predict when the actuator will reach a second depression sense position of the actuator at a later point during depression of the actuator, and generating the depressed state signal with a timing based on the prediction of when the actuator will reach the second depression sense position. A complementary method and system provides a released state signal.
Claims
1-25. (canceled)
26. A method of providing a depressed state signal from a keyboard or button, the method comprising: sensing movement of an actuator of the keyboard or button; determining, during depression of the actuator, a velocity of the actuator based on pre-actuation positions of the actuator; processing the determined velocity to determine a trigger position; and generating the depressed state signal when the actuator reaches the trigger position.
27. The method of claim 26, wherein the pre-actuation positions of the actuator are first and second positions of the actuator, the method comprising: detecting, at a first predetermined time after sensing the movement of the actuator, a first position of the actuator; detecting, at a second predetermined time after sensing the movement of the actuator, a second position of the actuator; and wherein the trigger position is determined based on the velocity of the actuator and a latency value of the keyboard or button.
28. The method of claim 26, wherein the step of determining the velocity comprises determining an average or filtered velocity.
29. The method of claim 28, wherein the velocity is a filtered velocity, and wherein the filtered velocity is based on a filtering coefficient, the filtering coefficient related to a magnitude of the velocity.
30. The method of claim 29, wherein the filtering coefficient is constrained to a predetermined range of values to avoid overflow or underflow the filtered velocity.
31. The method of claim 26, wherein the movement of the actuator is between a first depression or release sense position and a second depression or release sense position, wherein the keyboard or button is configured to perform an action when the actuator reaches the second depression or release sense position, the method further comprising: determining the trigger position based on the latency value of the keyboard or button such that a latency between the actuator reaching the second depression or release sense position and the action occurring is substantially zero or a negative latency.
32. A method of controlling an action of an output device in response to an actuator of an input device reaching an actuation position, the method comprising: sensing movement of the actuator; determining a velocity of the actuator by processing a signal representing the sensed movement; and processing the determined velocity to output a control signal to the output device at an output time no later than a time when the actuator reaches the actuation position.
33. The method of claim 32, the method further comprising providing a depressed or released state signal from a keyboard or button, where: sensing movement of an actuator comprises sensing movement of an actuator of the keyboard or button; determining a velocity of the actuator comprises, during depression or release of the actuator, determining a velocity of the actuator at a depression or release sense position of the actuator and at a first time; and processing the determined velocity to output a control signal comprises: processing the determined velocity to predict when the actuator will reach a second depression or release sense position of the actuator at a later point during depression or release of the actuator; and generating the depressed or released state signal with a timing based on the prediction of when the actuator will reach the second depression or release sense position.
34. The method of claim 33, wherein the keyboard or button controls an action of an output device in response to the actuator reaching the second depression sense position or second release sense position, the method further comprising: obtaining an indication of a latency value of the output device; and wherein the timing is further based on the latency value such that a time delay between the actuator reaching the second depression sense position or second release sense position and the action occurring is a latency reduction period.
35. The method of claim 34, the method further comprises determining the latency value by: receiving an indication of a depression time or a release time at which the actuator reaches the second depression sense position or second release sense position; receiving an indication of an action time, wherein the action time corresponds to a time when the action is triggered or occurs at the output device; and determining a difference between: the depression time or release time; and the action time.
36. The method of claim 32, wherein at least one of: the sensing is performed by two or more sensors, each sensor at a fixed position, and the velocity is determined by processing: a time associated with the actuator being sensed at each of the fixed positions; and a known distance between each of the two or more sensors; and (ii) the sensing is performed at a succession of times, and wherein the velocity is determined by processing the sensed position of the actuator at each time of the succession of times.
37. The method of claim 32, wherein determining the velocity comprises processing three or more sensed positions and associated times to determine an average velocity of the actuator.
38. The method of claim 32 further comprising at least one of: (i) determining, after generating the depressed state signal or the released state signal, a first retrigger velocity of the actuator and a subsequent second retrigger velocity of the actuator, and in response to determining that: the first retrigger velocity is such that the actuator is moving away from the second depression sense position or second release sense position at a first threshold rate; and the second retrigger velocity is such that the actuator is moving towards the second depression sense position or second release sense position at a second threshold rate, generating a retrigger signal; and (ii) determining, after generating the depressed state signal or the released state signal, an inversion position where the actuator is determined to be moving towards the actuation position; in response to determining that the actuator has moved a beyond the inversion position by a retrigger threshold distance, generating a retrigger signal.
39. The method of claim 31 wherein: processing the velocity comprises: inputting the determined velocity into a model; and receiving, from the model, an indication of when the actuator will reach the actuation point; and the indication is used to determine the output time.
40. The method of claim 31, the method further comprising: obtaining an indication of a latency value of the output device; and processing the latency value to output the output signal at the output time such that a time delay between the actuator reaching the actuation position and the action occurring is a latency reduction period.
41. The method of claim 31, wherein the method further comprises: receiving an indication of an actuation time at which the actuator physically reaches the actuation position; receiving an indication of an action time, wherein the action time corresponds to a time when the action is triggered or occurs; and determining a value of a latency between the actuation time and the action time.
42. The method claim 31 wherein the sensing is performed by two or more sensors, each sensor at a fixed position, and wherein at least one of: (i) the velocity is determined by processing: a time associated with the actuator being sensed at each of the fixed positions; and a known distance between each of the two or more sensors; (ii) the sensing is performed at a succession of times, and wherein the velocity is determined by processing the sensed position of the actuator at each time of the succession of times (iii) determining the velocity comprises processing three or more sensed positions and associated times to determine an average velocity.
43. The method of claim 31 further comprising at least one of: (i) determining, after outputting the output signal, a second velocity of the actuator and a subsequent third velocity of the actuator, and in response to determining that: the second velocity is such that the actuator is moving away from the actuation position at a first threshold rate; and the third velocity is such that the actuator is moving towards the actuation position at a second threshold rate, outputting a retrigger control signal to the output device; and (i) determining, after outputting the output signal and after the actuator has moved away from the actuation position, an inversion position where the actuator is determined to be moving towards the actuation position; and in response to determining that the actuator has moved beyond the inversion position by a retrigger threshold distance, outputting a retrigger control signal to the output device.
44. A system for controlling an action of an output device in response to an actuator of the input device reaching an actuation position, the system comprising: the actuator; a sensor for sensing movement of the actuator; wherein the system is configured to: determine a velocity of the actuator by processing a signal representing the sensed movement; and process the determined velocity to output a control signal to the output device at an output time no later than a time when the actuator reaches the actuation position.
45. The system of claim 44, the system configured for providing a depressed or released state signal from a keyboard or button, the system configured to: sense movement of an actuator of the keyboard or button; and wherein: determining a velocity of the actuator comprises determining, during depression or release of the actuator, a velocity of the actuator at a depression or release sense position of the actuator and at a first time; processing the determined velocity to output a control signal comprises: processing the determined velocity to predict when the actuator will reach a second depression or release sense position of the actuator at a later point during depression or release of the actuator; and generating the depressed or released state signal with a timing based on the prediction of when the actuator will reach the second depression or release sense position.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
DETAILED DESCRIPTION
[0120] An illustrative system as known in the art is shown in
[0121] The causes of latency within the system shown in
[0122] According to an embodiment of the present invention,
[0123]
[0124] One means of determining the time at which to send the trigger event corresponding to the transition of the input device from the inactive state to the active state is to calculate the velocity (speed and direction) of said input device's detection element from the position of said detection element at two or more pre-actuation locations and the corresponding timestamps at these said two or more pre-actuation locations.
[0125] In embodiments where only two pre-actuation locations are available with positions p.sub.1 and p.sub.2 (16 and 17 in
[0126] In embodiments where a plurality of pre-actuation locations is available with positions p.sub.n at respective timestamps t.sub.n, the velocity, v, may be calculated using averaging, filtering, or similar methods. Such a method of calculating the velocity has several advantages over other methods: it does not assume a linear velocity profile as is used for a two-point measurement method but allows changes in velocity throughout the range of movement of the detection element to be detected thus measured values of velocity are more representative of the true velocity of said detection element thus making the adjustments to the latency more accurate.
[0127] One example filtering procedure is as follows, where p.sub.i and t.sub.i are the position and respective timestamp of the detection element at the i.sup.th pre-actuation location, v.sub.i is the estimated velocity at said i.sup.th pre-actuation location, v.sub.i is the change in estimated velocity since the previous measurement, .sub.i is a filtering coefficient and k is a constant:
The filtered velocity,
[0128] The filtering coefficient, .sub.i, thus depends on magnitude of v.sub.i and may be constrained to a range of values to avoid overflow/underflow of
[0129] In some embodiments the two or more pre-actuation locations correspond to known positions. Two or more timestamps, t.sub.n, are obtained corresponding to each time at which the detection element's position equals said pre-actuation locations. In such cases the trigger event may be sent at a calculated trigger time t.sub.trig, 20 in
[0130] In some embodiments the two or more pre-actuation locations are determined by measuring the position of the detection element at known times. In such cases the trigger event may be sent when the detection element's position equals a trigger threshold, 21 in
p.sub.trig=p.sub.actuation(vt.sub.latency)
[0131]
[0132]
[0133]
[0134]
[0135] This is shown in more detail in
[0136] In further embodiments, the latency of retriggering can be compensated. Refer to
[0137] In some implementations this compensation of retriggering latency may be implemented by the algorithm summarised in
[0138] In embodiments, the compensation of retriggering latency may be implemented by a process summarised in
[0139] In embodiments, the compensation of retriggering latency may be implemented by combining the algorithms summarised in
[0140] In the described embodiments, the actuator may comprise the detection element. For example, the detector element may form an integral unit with the actuator, the detector element may be contained within a casing of the actuator, the detection element may be a section of the actuator.
[0141] Although some embodiments have been described with reference to two pre-actuation locations, embodiments of the invention may operate by determining only a single pre-actuation location. For example, embodiments of the present invention may operate by determining an instantaneous velocity of the actuator at a single position. As an example, determining an instantaneous velocity of the actuator at a single position could be achieved by processing a rate of change of a signal obtained from a sensor configured to sense movement of the actuator.
[0142] Features of the methods and systems which have been described or depicted herein in combination e.g. in an embodiment, may be implemented separately or in sub-combinations. Features from different embodiments may be combined. Thus each feature disclosed or illustrated in the present specification may be incorporated in the invention, whether alone or in any appropriate combination with any other feature disclosed or illustrated herein. Method steps should not be taken as requiring a particular order e.g. that in which they are described or depicted, unless this is specifically stated. A system may be configured to perform a task by providing processor control code and/or dedicated or programmed hardware e.g. electronic circuitry to implement the task.
[0143] Aspects of the method and system have been described in terms of embodiments but these embodiments are illustrative only and that the claims are not limited to those embodiments. Those skilled in the art will be able to make modifications and alternatives in view of the disclosure which are contemplated as falling within the scope of the claims.