LATENCY COMPENSATION SYSTEM

20240045519 ยท 2024-02-08

    Inventors

    Cpc classification

    International classification

    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] FIG. 1 shows an illustrative system as known in the art.

    [0109] FIG. 2 shows a position versus time plot of the illustrative system shown in FIG. 1.

    [0110] FIG. 3 shows an improved system according to an embodiment of the present invention.

    [0111] FIG. 4 shows a position versus time plot of the improved system according to an embodiment of the present invention shown in FIG. 3.

    [0112] FIG. 5 shows a system with a deactivation point which limits rate of retrigger by adding retrigger latency.

    [0113] FIG. 6 shows a position versus time plot of the system shown in FIG. 5 to illustrate the source of retrigger latency.

    [0114] FIG. 7 shows a position versus time plot of an improved system according to an embodiment of the present invention to illustrate compensation for retrigger latency.

    [0115] FIG. 8 shows a flowchart to describe an algorithm used to implement the compensation for retrigger latency shown in FIG. 7.

    [0116] FIG. 9 shows a flowchart to describe a method of providing a depressed state signal from a keyboard or button according to an embodiment of the present invention.

    [0117] FIG. 10 shows a flowchart to describe a method of providing a released state signal from a keyboard or button according to an embodiment of the present invention.

    [0118] FIG. 11 shows a flowchart to describe a method of controlling an action of an output device in response to an actuator of an input device reaching an actuation position according to an embodiment of the present invention.

    [0119] FIG. 12 shows a flowchart to describe an algorithm used to implement the compensation for retrigger latency shown in FIG. 7.

    DETAILED DESCRIPTION

    [0120] An illustrative system as known in the art is shown in FIG. 1, whereby an input device 1 comprises an actuator 2 and a detection element 4. In a resting state said detection element 4 is at a starting position 5. When acted upon by an external stimulus 3, said actuator 2 and said detection element 4 traverses a path in a direction 7 along an axis of motion 8. When said detection element's position equals the actuation point 6, and said actuator is in its final position 9, a trigger event is transmitted 22 to an output device 23 to signal that the input device has transitioned from the inactive state to the active state. Thereafter said output device produces a desired outcome 24.

    [0121] The causes of latency within the system shown in FIG. 1 are shown in FIG. 2. Referring to FIG. 2 which plots the variation of the detection element's position 7 against time 14 whereby said detection element 4 traverses a path 10 from the starting position 5 to the actuation point 6 at time 11 at which time a trigger event is transmitted to signal that the input device 1 has transitioned from the inactive state to the active state. Said trigger event is received by the output device 23 at time 12 and processed to produce the desired outcome at time 13. The said latency 15 is the difference in time between the time 13 (i.e. the time at which the desired outcome is produced) and the time 11 (i.e. the time at which the trigger event is transmitted).

    [0122] According to an embodiment of the present invention, FIG. 3 shows an improved input device 1a (over that shown in FIG. 1 and FIG. 2) wherein two or more pre-actuation locations 16 and 17 are provided which permits the detection element's position and timestamp at each of these said pre-actuation locations to be determined prior to said detection element's position equalling the actuation point 6. Furthermore, a means of detecting an outcome time 13 at which a desired outcome occurs is optionally provided and said outcome time 13 may be communicated back (at communication 26) to said input device 1a to create a feedback loop such that said outcome time 13, and deviations thereof, may be known to said input device 1a.

    [0123] FIG. 4 shows a plot of the variation of the detection element's position 7 against time 14 to show a reduction in latency achieved by the system shown in FIG. 3. The said detection element 4 traverses a path 10 from the starting position 5 to the actuation point 6 at time 11. Whilst said actuator 2 traverses said path 10, a first timestamp 18 is recorded when said detection element's position equals the first pre-actuation location 16 and a second timestamp 19 is recorded when said detection element's position equals the second pre-actuation location 17. A trigger event is then transmitted at time 20 such that said trigger event is received by the output device 23 at time 12 before said detection element's position equals the actuation point 6 at time 11. Furthermore, a time of sending said trigger event may be adjusted such that the time at which said output device 23 processes said trigger event to produce the desired outcome 24 at time 13 equals time 11, thus the latency 15 (which is the difference in time between time 13 and time 11) may be zero.

    [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 FIG. 4) with respective timestamps t.sub.1 and t.sub.2 (18 and 19 in FIG. 4), the velocity, v, may be calculated according the following equation:

    [00001] v = ( p 2 - p 1 ) ( t 2 - t 1 )

    [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:

    [00002] v i = p i - p i - 1 t i - t i - 1 v i = v i - v i - 1 i = k | v i |

    The filtered velocity, v.sub.i, may then be calculated according to the following equation:


    v.sub.i=.sub.iv.sub.i+(1.sub.i)v.sub.i-1

    [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 v.sub.i. Such a method, which may be implemented in the digital domain, can provide improved resolution because of the filtering, which is especially important for a very slowly moving detection element, without significantly compromising the time response for a fast-moving detection element.

    [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 FIG. 4, to compensate for a latency of t.sub.latency whereby t.sub.trig is calculated according the following equation where t.sub.i is one of said timestamps corresponding to the position at one of said pre-actuation locations p.sub.i:

    [00003] t t r i g = t i + ( p a c t u a t i o n - p i ) v - t l a t e n c y

    [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 FIG. 4, whereby said trigger threshold p.sub.trig is a position of the detection element that compensates for a latency of t.sub.latency. The trigger threshold p.sub.trig may be calculated according to the following equation, where p.sub.actuation is the actuation point 6:


    p.sub.trig=p.sub.actuation(vt.sub.latency)

    [0131] FIG. 9 summarises a method of providing a depressed state signal from a keyboard or button. The method may comprise sensing movement of an actuator of the keyboard or button 37. The method may also comprise determining, during depression 38 of the actuator, a velocity of the actuator at a depression sense position of the actuator and at a first time 39. The method may also comprise 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 40. The method may also comprise generating the depressed state signal with a timing based on the prediction of when the actuator will reach the second depression sense position 41.

    [0132] FIG. 10 summarises a method of providing a released state signal from a keyboard or button. The method may comprise sensing movement of an actuator of the keyboard or button 37. The method may also comprise determining, during release 42 of the actuator, a velocity of the actuator at a release sense position of the actuator and at a first release time 43. The method may also comprise processing the determined velocity to predict when the actuator will reach a second release sense position of the actuator at a later point during release of the actuator 44. The method may also comprise generating the released state signal with a timing based on the prediction of when the actuator will reach the second release sense position 45.

    [0133] FIG. 11 summarises 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 may comprise sensing movement of the actuator 46. The method may also comprise determining a velocity of the actuator by processing a signal representing the sensed movement 47, 48. The method may also comprise processing the determined velocity 49 to output a control signal to the output device, in particular at an output time no later than a time when the actuator reaches the actuation position 50.

    [0134] FIG. 5 shows a deactivation point 28 to which the detection element 4 returns before the input device 1a is transitioned from the active state to the inactive state. While said input device 1a is in said active state and the actuator 2 is in the intermediate position 27 further trigger signals are not permitted, thus said latency of retriggering is increased because further trigger signals are not permitted until the position of said detection element 4 returns to said deactivation point.

    [0135] This is shown in more detail in FIG. 6 which plots the variation of the detection element's position 7 against time 14 whereby said detection element 4 traverses a path 10 originating at the starting position 5. Trigger events 30 and 31 are transmitted before said detection element's position equals the actuation point 6, according to aforementioned embodiments of the present invention.

    [0136] In further embodiments, the latency of retriggering can be compensated. Refer to FIG. 7, with comparison to FIG. 6, which shows the effect of such compensation of said latency of retriggering. The first trigger event 30 in FIG. 7 occurs at the same time as the same said first trigger event 30 in FIG. 6. However, the second retrigger event 32 of FIG. 7 occurs sooner, and thus with lower latency, compared to the second retrigger event 31 of FIG. 6. Moreover, retrigger events that were not possible in FIG. 6 may now be detected as shown in FIG. 7 as further retrigger event(s) 33.

    [0137] In some implementations this compensation of retriggering latency may be implemented by the algorithm summarised in FIG. 8. Initially the input device is in the INACTIVE state and transitions to the ACTIVE state when a trigger event has been transmitted 34. While in the ACTIVE state another trigger event is not transmitted. If the velocity of the detection element is negative (i.e., said detection element is moving back towards the start position) and has a large enough magnitude (i.e., velocity<negative threshold, 35) the state transitions to the ACTIVE_PENDING state which does permit another trigger event to be transmitted (a retrigger) without the detection element's position having to first return to the start position conditional upon the velocity of said detection element being positive (i.e., said detection element is moving away from the start position) with a large enough magnitude (i.e., velocity>positive threshold, 36), whereupon another trigger event is transmitted and the state transitions to the ACTIVE state 34. By optimising the said negative threshold of velocity and said positive threshold of velocity for a particular system it is possible to: minimise said retriggering latency, maximise detection of retriggers and minimise the probability of false detections of retriggers.

    [0138] In embodiments, the compensation of retriggering latency may be implemented by a process summarised in FIG. 12. The process of FIG. 12 is in some ways similar to the first algorithm summarised in FIG. 8 when the state transitions to the ACTIVE state. In the process of FIG. 12, an inversion position is detected whereby the position of the detection element transitions from moving towards the start position (i.e., velocity<negative threshold, 35) to moving away from the start position (i.e., velocity>positive threshold, 36) and at this time a retrigger threshold is set 51 as a position offset from said inversion position and the state transitions to the ACTIVE_PENDING state. Thereafter, when the position of said detection element exceeds said retrigger threshold 52 another trigger event is transmitted and the state transitions to the ACTIVE state 34.

    [0139] In embodiments, the compensation of retriggering latency may be implemented by combining the algorithms summarised in FIG. 8 and FIG. 12 whereby the decision to transmit the retrigger event uses both a position-based threshold and a velocity-based threshold.

    [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.