Hardware device with a self-recalibration mechanism and method for performing self-recalibration in a hardware device

The hardware device automatically recalibrates operation elements by defining a zero position zone, addressing the need for manual recalibration due to mechanical and sensor deviations, ensuring accurate and efficient device operation.

DE102024201809A1Pending Publication Date: 2025-08-28INFINEON TECHNOLOGIES AG
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
DE102024201809
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-02-27
Publication Date
2025-08-28

AI Technical Summary

Technical Problem

Existing hardware devices require manual recalibration of operation elements due to changes in zero point position caused by mechanical hysteresis, sensor noise, or signal offsets, leading to potential misinterpretation of unactuated states as actuated, which can result in undesirable device activation.

Method used

A hardware device with a movable operating element and a sensor component that automatically recalibrates by determining a mechanical zero position and setting a zero position zone, treating all positions within this zone as virtual zero positions, thereby eliminating the need for manual recalibration.

Benefits of technology

The solution provides automated self-recalibration, reducing the time and effort required for recalibration, ensuring accurate operation and preventing unintended device activation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present disclosure relates to a hardware device (100) with a self-recalibration mechanism, wherein the hardware device (100) comprises a movable mechanical operating element (110) configured to be moved by a user within a predetermined mechanical range of motion (120), and a sensor component for determining a position of the operating element (110) within its predetermined mechanical range of motion (120). The sensor component is configured to perform self-recalibration by determining a mechanical zero-point position (130) of the operating element (110) in its non-actuated state and by setting a zero-point position zone (150) extending around the mechanical zero-point position (130).The sensor component is configured to treat all positions of the operating element (110) that are within the zero point position zone (150) as virtual zero point positions.
Need to check novelty before this filing date? Find Prior Art

Description

GENERAL DESCRIPTION

[0001] Embodiments of the present disclosure relate to a hardware device with an operating element, such as a game controller with a joystick, a drill with a push button, and the like. The hardware device is capable of self-reconfiguring a zero position of the operating element. Further embodiments relate to a corresponding method for performing self-recalibration in a hardware device. TECHNICAL BACKGROUND

[0002] Electrical and electronic hardware devices are equipped with controls used to operate the hardware device. For example, game controllers may be equipped with movable joysticks, which may also be called analog sticks. A user can manipulate the game controller's analog stick to control a game character in a video game. Another example would be a power tool. Power tools may be equipped with push buttons to operate the tool. For example, the further a user presses the push button, the faster the power tool moves.

[0003] Controls must be calibrated before their first use to initially define the control's zero-point position. Only when the zero-point position is properly defined can the control register an actuated condition in which the control is deflected from its zero-point position, such as movement of an analog stick during gameplay. Factory calibration can be performed at the factory before the hardware device is shipped. However, during normal use of the hardware device, the initially calibrated zero-point position may change. This can be caused, for example, by mechanical hysteresis, sensor noise, or signal skew.

[0004] For example, if an analog stick was previously deflected to the upper left corner, it will return to a different home position than if it was previously deflected to the lower right corner. This can be caused by hysteresis. As another example, the game controller might fall to the floor and hit the ground hard. In this case, the analog stick's mechanism within the game controller can shift and relocate, causing the home position to change.

[0005] If the previously calibrated zero position has changed, an unactuated state of the control element may be mistakenly interpreted as an actuated state, resulting in the hardware device being active even though it is not being operated. For example, if a drill is running while not being operated by a user, this could result in serious injury.

[0006] Thus, a change in the previously calibrated zero-point position may require recalibration of the control element outside the factory, i.e., at a user's location. For example, a user can manually readjust the zero-point position of a drill. For this purpose, drills offer small rotating wheels integrated into the push button (trigger). In video games, the user can launch a specific controller calibration menu, which guides them through a predetermined recalibration procedure. However, these conventional recalibration processes must be performed manually, which can be time-consuming and annoying for a user, especially if the recalibration process must be performed at regular intervals.

[0007] Therefore, one object of the innovative concept described herein is to provide a hardware device that reduces or even eliminates the need for manual recalibration of the control element. A further object is to provide a hardware device capable of automatically recalibrating the control element without any user involvement.

[0008] This object is achieved by the hardware device disclosed herein and the corresponding method for performing self-recalibration of the hardware device according to the independent claims. Further embodiments and advantageous aspects are proposed in the dependent claims.

[0009] The innovative hardware device comprises a movable mechanical operating element configured to be moved by a user within a predetermined mechanical range of motion, and a sensor component configured to determine a position of the operating element within its predetermined mechanical range of motion. The sensor component is configured to perform self-recalibration by determining a mechanical zero position of the operating element in its non-actuated state and by setting a zero position zone extending around the mechanical zero position, wherein the sensor component is configured to treat all positions of the operating element located within the zero position zone as virtual zero positions.

[0010] Furthermore, an innovative method for performing self-recalibration of a hardware device is proposed, wherein the method comprises a step of determining a position of an operating element that is movable by a user within a predetermined mechanical range of motion. The method further comprises a step of performing the self-recalibration by determining a mechanical zero-point position of the operating element in its non-actuated state and by setting a zero-point position zone extending around the mechanical zero-point position, wherein all positions of the operating element located within the zero-point position zone are treated as virtual zero-point positions.

[0011] According to a further aspect, computer programs are provided, wherein each of the computer programs is configured to implement the method described above when executed on a computer or signal processor, such that the method described above is implemented by one of the computer programs.

[0012] In the following, embodiments of the present disclosure will be described in more detail with reference to the figures, in which Fig. 1 shows an illustrative drawing of a game controller as a non-limiting example of an innovative hardware device, Fig. 2 shows a schematic representation of a two-dimensional mechanical total movement range of an operating element, with a current actual position of an operating element in the middle, Fig. 3 shows a schematic representation of a two-dimensional mechanical total movement range of an operating element, wherein a current actual position of an operating element is located off-center, Fig. 4 shows a schematic representation of an innovative zero-point setting zone, where a mechanical zero-point position of a control element defines the center of the zero-point setting zone, Fig. 5 shows a schematic representation of various mechanical zero-point positions caused by hysteresis when the control element returns from various deflected positions, Fig. 6A shows a schematic representation of a two-dimensional mechanical total movement range of an operating element, showing two different sized initial zero point position zones, Fig. 6B shows a schematic representation of a two-dimensional mechanical total movement range of an operating element, showing a reduced zero point position zone, Fig. 7 shows a schematic block diagram of an innovative process, Fig. 8 shows a schematic flow diagram of an innovative process, Fig. 9 shows a schematic representation of a two-dimensional mechanical total movement range of an operating element, wherein a current actual position of an operating element lies outside a reduced zero point position zone, Fig. 10 shows a schematic representation of a two-dimensional mechanical total movement range of an operating element, wherein a minimized zero point position zone is created by means of a plurality of zero point position zones, and Fig. 11 shows a schematic representation of a one-dimensional mechanical total movement range of an operating element. DESCRIPTION OF THE CHARACTERS

[0013] The same or equivalent elements or elements with the same or equivalent functionality are designated by the same or equivalent reference numerals in the following description.

[0014] Method steps illustrated by means of a block diagram and described with reference to the block diagram may also be performed in an order that differs from the illustrated and / or described order. Furthermore, method steps relating to a specific feature of a device may be interchangeable with the feature of the device, and vice versa.

[0015] For ease of explanation, the following discussion refers to a game controller as a non-limiting example of an innovative hardware device and an analog stick as a non-limiting example of an innovative control element. However, the innovative concept can be used in a variety of different hardware devices in which a control element can be positioned in a mechanical zero position and deflected from the mechanical zero position to operate the hardware device.

[0016] Fig. 1 shows a game controller as a non-limiting example of a hardware device 100 having an innovative self-recalibration mechanism. The hardware device 100 may include a movable mechanical control element 110 configured to be moved by a user within a predetermined mechanical range of motion. For example, the mechanical control element 110 may be an analog stick attached to the game controller 100. The analog stick 110 can be deflected / moved in various directions to control a game character in a video game. However, the analog stick 110 can only be moved within a predetermined range of motion defined by mechanical constraints.

[0017] Fig. Figure 2 shows a schematic representation of a possible mechanical range of motion 120 of an operating element 110. In this example, the range of motion 120 is two-dimensional and encompasses a circular area spanned in an xy plane. The cross 130 indicates a raw position of the operating element 110. The raw position 130 corresponds to a current actual position of the operating element 110. The current actual position 130 can be specified using raw measured values, for example, x and y coordinates.

[0018] To determine a current actual position 130 of the operating element 110, the hardware element 100 may include a sensor component (not shown). The sensor component 110 may be configured to determine the current actual position 130 of the operating element 110 in any actuated and non-actuated state.

[0019] For example, if the operating element 110 is operated by moving / deflecting it, it is in an actuated state. If the operating element 110 is not moved / deflecting it, it is in a non-actuated state. When the operating element 110 is in a non-actuated state, the current actual position 130 of the operating element 110 defines its mechanical zero point position 133.

[0020] Fig. 1 shows the operating element 100 in a non-actuated state, i.e., in its mechanical zero position. When the operating element 110 is released from an actuated state to a non-actuated state, it may automatically return to its mechanical zero position. For example, the operating element 100 may include a mechanical biasing mechanism configured to mechanically move the operating element 110 from an actuated position back to its mechanical zero position.

[0021] With further reference to Fig. 2, the above-mentioned sensor component can be precalibrated for determining the current actual position 130 of the operating element 110, wherein a specific mechanical zero-point position 133 of the operating element 110 can be stored as a calibrated zero-point position. In this case, the calibrated zero-point position is the same as the mechanical zero-point position 133. Ideally, the calibrated zero-point position is located in the center 140 of the total range of motion 120 of the operating element.

[0022] After the calibrated zero position has been set, the actuator 110 can be actuated again and can again return from any actuated state to a non-actuated state. However, due to hysteresis effects or mechanical deterioration, the mechanical zero position 133 may no longer be the same as the calibrated zero position. It may also be possible that the sensor component itself is affected by sensor drift, causing the calibrated mechanical zero position to drift away from its initial value.

[0023] Fig. Figure 3 shows a scenario in which the mechanical zero point position 133 of the operating element 110 (in its non-actuated state) deviates from the previously defined calibrated zero point position, which is indicated by the reference numeral 133 preSuch deviations may occur due to mechanical wear / deterioration, hysteresis effects, sensor drift, or signal offsets. In such cases, recalibration of the control element 110 may be necessary. The innovative sensor component is capable of automated self-recalibration.

[0024] Fig. 4 shows an embodiment of the innovative concept for automated self-recalibration. When the operating element 110 is in its non-actuated state, the sensor component can set the associated current actual position 130 of the operating element 110 as its mechanical zero position 133. Accordingly, this mechanical zero position 133 is now a calibrated zero position. In a further calibration step, the sensor component can set a zero position zone 150 that extends around the calibrated mechanical zero position 133. According to the innovative concept, the sensor component is configured to treat all current actual positions 130 of the operating element 110 that are within the zero position zone 150 as virtual zero positions.

[0025] Accordingly, a plurality of different current actual positions 130 of the control element 110 can be considered zero-point positions, as long as they are within the previously defined zero-point position zone 150. In other words, common manual recalibration mechanisms use a single zero-point value to define a calibrated zero-point position. Instead, the innovative concept replaces the single zero-point value with a zero-point position zone 150, in which a plurality of different current actual positions 130 of the control element 110 can be considered as a zero-point position. Therefore, these zero-point positions are referred to as virtual zero-point positions in the present disclosure.

[0026] As in Fig. 4, the sensor component can perform self-recalibration by determining a mechanical zero position 130 of the operating element 110 in its non-actuated state. As described above, when the operating element 110 is in a non-actuated state, its current actual position 130 can be set as its mechanical zero position 133. The mechanical zero position 133 is now a calibrated zero position. In a further calibration step, the sensor component can set a zero position zone 150 extending around the calibrated mechanical zero position 133 such that the calibrated mechanical zero position 130 defines the center of the zero position zone 150.

[0027] The zero-point position zone 150 can be defined as a circular area with radius 'r' that extends around the mechanical zero-point position 130. According to the innovative concept, the sensor component is configured to treat all mechanical positions or positions of the operating element 110 that are located within the zero-point position zone 150 as virtual zero-point positions.

[0028] Fig. 5 shows a schematic representation of the operating element 110 returning from various actuated states to various non-actuated states. For example, the operating element 110 may be actuated / deflected to a first actual position 1301 in the upper left corner and subsequently to a second actual position 1302 in a lower right corner. As mentioned above, when the operating element 110 is released to its non-actuated state, it may automatically return to its mechanical zero position 133. However, due to hysteresis effects and the like, the operating element 110 may return to various mechanical zero positions.

[0029] As shown by way of example, the operating element 110, when released from its first actual position 1301, can return to a first mechanical zero-point position 1331. When the operating element 110 is released from its second actual position 1302, it can return to a different second mechanical zero-point position 1332. Thus, there are two different mechanical zero-point positions 1331, 1332, which may also deviate from a previously set calibrated zero-point position. Thus, a common sensor component may not know whether both mechanical zero-point positions 1331, 1332 should be treated as zero-point positions.

[0030] However, according to the innovative concept, all positions of the operating element 110 that are within the zero point position zone 150 are treated as virtual zero point positions by the sensor component.

[0031] As mentioned above, the zero position zone 150 can be defined as a circular area with radius 'r', where the radius 'r' can define the size of the zero position zone 150. The size of the zero position zone 150 can be adjusted to a fixed value, or it can be dynamically adjusted, as explained in more detail below. The size can be selected to cover various mechanical zero positions 1331, 1332 of the control element 110 that are affected by position deviations caused by at least one of hysteresis, noise, or offsets.

[0032] For example, the sensor component can be configured to set a size of the zero-point position zone 150 to a fixed value that covers all non-actuated states of the operating element 110, despite position deviations caused by at least one of hysteresis, noise, and signal offsets. The radius 'r' of the zero-point position zone 150 can be selected to be large enough that the operating element 110 always falls within the zero-point position zone 150 when the operating element 110 is released, regardless of which actuated position 1301, 1302 it is released from and from which actuated position 1301, 1302 it returns to its mechanical zero-point position 1331, 1332. This means that all possible zero-point position deviations are taken into account when selecting the radius 'r'.Accordingly, the innovative concept provides automated self-recalibration that takes into account zero-point deviations caused by at least one of hysteresis, sensor noise, and signal offsets.

[0033] On the other hand, it is desirable to make the size of the zero-position zone 150 as small as possible, since otherwise the user may experience undesirable behavior of the control element 110. For example, if the size of the zero-position zone 150 is chosen too large, the user must deflect the control element 110 a large distance to leave the zero-position zone 150, where the sensor component detects a non-zero actuated state. In real life, for example, the user must deflect the control element 110 a large distance before the game character begins to move in the video game.

[0034] The authors of the present disclosure found that a size of 2% to 8%, and in particular approximately 5%, of the total range of motion 120 of the operating element 110 provides a good compromise between a sufficiently large zero position zone 150 that covers all possible zero position deviations (caused by hysteresis, etc.) and a sufficiently small zero position zone 150 that ensures good haptics for the user. Thus, according to one embodiment, the sensor component can be configured to set a size of the zero position zone 150 to a fixed value that covers between 2% to 8%, and in particular 5%, of the total range of motion 120 of the operating element 110.

[0035] Since the mechanical zero positions 1331, 1332 of the operating element 110 may not be known in advance, an initial calibration step can be performed by the sensor component. As shown in Fig. 6A, the sensor device may set an initial zero position zone 151 that is larger than the previously discussed zero position zone 150, wherein the size of the initial zero position zone 151 is chosen to be large enough to cover a large area in which a majority of (or even all) of the possible mechanical zero positions 1331, 1332 of the operating element 110 may be located.

[0036] Fig. 6A shows an example of an initial calibration step, where the sensor device can set a size (defined by the radius 'r') of the initial zero-position zone 151 to a fixed value covering between 20% and 30% of the total range of motion 120 of the actuator 110. The initial zero-position zone 151 can be positioned at the center 140 of the total range of motion 120 of the actuator.

[0037] As in Fig. 6A, a mechanical zero position 133 of the control element 110 (in its non-actuated state) may be located outside an initial zero position zone 151 having a size of 20% of the total range of motion 120 of the control element, but may be located within an initial zero position zone 151 having a size of 30% of the total range of motion 120 of the control element. The authors of the present disclosure have found that a size of approximately 25% of the total range of motion 120 of the control element may be sufficient to cover virtually all possible mechanical zero positions 133 of the control element 110 occurring in all four quadrants.

[0038] As in Fig. As shown in Figure 6B, the sensor device can be calibrated after the initial calibration step ( Fig. 6A) Fine-tune the self-recalibration mechanism by creating a new or updated version of the zero position zone with a reduced size. For example, after the initial calibration step, the sensor device may perform a subsequent calibration step in which a current actual position 130 of the actuator 110 in its unactuated state is set as a new mechanical zero position 133. The new mechanical zero position 133 defines a center of a new reduced zero position zone 150, wherein the reduced zero position zone 150 is smaller than the previous initial zero position zone 151.

[0039] In this case, the reduced zero-point position zone 150 can correspond to the zero-point position zone 150 explained above. Accordingly, everything explained so far with regard to any zero-point position zone also applies to the reduced zero-point position zone 150.

[0040] In particular, the sensor component can set a size of the reduced zero position zone 150 to a fixed value that covers various mechanical zero positions 1331, 1332 of the operating element 110, where position deviations are caused by at least one of hysteresis, noise, or offsets. As mentioned above, a size between 2% to 8%, and in particular approximately 5%, of the total range of motion 120 of the operating element provides a good compromise between a sufficiently large zero position zone 150 that covers all possible zero position deviations (caused by hysteresis, etc.) and a sufficiently small zero position zone 150 that ensures good haptics for the user.

[0041] Fig. 7 shows a block diagram of a method 700 for performing the innovative self-recalibration in a hardware device according to an embodiment.

[0042] At block 701, a position of an operating element 110 is determined, wherein the operating element 110 is movable by a user within a predetermined mechanical range of motion 120.

[0043] At block 702, the self-recalibration can be performed by performing two steps. Block 703 shows a first step in which a current actual position 130 of the control element 110 in its non-actuated state is set as a mechanical zero position 133. Block 704 shows a second step in which a zero position zone 150 is set that extends around the mechanical zero position 133. The steps of blocks 703 and 704 can be performed in parallel or sequentially.

[0044] Block 705 represents the final step after performing the self-calibration, wherein all positions of the control element 110 that are within the zero point position zone 150 are treated as virtual zero point positions.

[0045] Fig. Figure 8 shows an exemplary flowchart of a non-restrictive possible implementation of the innovative concept.

[0046] Block 801 represents the initial calibration step explained above. The center 140 of the total range of motion 120 of the control element ( Fig. 2) is set as an initial mechanical zero position "null_position". An initial zero position zone 151 ( Fig. 6A) is set with a size having a fixed value, for example, r = 10. As discussed above, the size of the initial zero position zone 151 is chosen to be quite large (e.g., between 20% and 30% of the total range of motion 120) in order to cover a majority of possible mechanical zero positions 1331, 1332 of the operating element 110.

[0047] In this exemplary embodiment, the sensor device may be further configured to wait for a predetermined period of time (inactive_for_calibration_time) during which the control element 110 is in a non-actuated state to elapse to ensure that the control element 110 is indeed in a non-actuated state before performing self-recalibration. For example, if the control element 110 is not actuated for a certain period of time, e.g., 30 seconds or more, this may indicate that the control element 110 is not currently in use, and thus, self-recalibration may begin.

[0048] Additionally or alternatively, the sensor device 110 may be configured to wait for the occurrence of a predetermined event (e.g., control element 110 in charging mode or entering deep sleep) indicating that the control element 110 is in a non-actuated state before performing self-recalibration.

[0049] At block 802, a current actual position 130 of the control element 110 may be determined. A current actual position 130 of the control element 110 may be represented by raw measurement values ​​recorded by the sensor component, as explained above. For example, a current actual position 130 of the control element 110 may be specified by a coordinate, e.g., by at least one of an x- and y-coordinate.

[0050] At block 803, it can be determined whether the previously determined current actual position 130 of the control element 110 is within or outside the initial zero position zone 151. For example, a function (filter_zero_pos(x,y)) can be called, passing the x and y coordinates (representing the current actual position 130 of the control element 110) as arguments.

[0051] Block 804 shows a possible implementation of the function filter_zero_pos(x,y). First, the sensor component can check whether a current actual position 130 (defined by the arguments (x,y)) of the operating element 110 is within the initial zero position zone 151. The sensor component can perform the check by determining a radial distance 'r' of the current actual position 130 of the operating element from the center 140 of the total movement range 120 of the operating element. (e.g. r=x2+y2) The sensor component may further be configured to check whether the radial distance 'r' is less than or equal to the radius of the initial zero position zone 151.

[0052] If the sensor component determines that the current actual position 130 of the operating element 110 is within or at an edge of the initial zero-position zone 151 (r <= zero_pos_zone), then the sensor component can treat the current actual position 130 of the operating element 110 as a virtual zero-position (return (0,0)). In other words, all current actual positions 130 of the operating element 110 that are within (or at an edge) of the zero-position zone 150, 151 are considered zero-positions.

[0053] If the sensor component determines that the current actual position 130 of the operating element 110 is outside the initial zero position zone 151 (else branch at block 804), then the sensor component can be configured to subtract the radius of the initial zero position zone 151 from the current actual position 130 of the operating element 110, so that the start of a movement of the operating element 110 is only registered when the operating element 110 leaves the initial zero position zone 151. This will be explained with reference to Fig. 9 briefly explains in more detail.

[0054] Fig. Figure 9 shows a schematic representation of the above concept. It should be noted that, in this non-limiting example, a random zero-position zone 150 is shown instead of the initial zero-position zone 151 explained above. However, the innovative concept can be implemented at the initial zero-position zone 151 as well as at any other zero-position zones 150.

[0055] Here is in Fig. 9 shows a reduced zero-point position zone 150 with the radius 'R' as an example. Furthermore, a current actual position 130 of the operating element 110 is represented by a specific xy coordinate (x, y). As can already be seen, the current actual position 130 of the operating element 110 is outside the zero-point position zone 150. This means that the operating element 110 is deflected, ie, it is in an actuated state.

[0056] According to the present innovative concept, any current actual position 130 of the operating element 110 that is not considered a (virtual) zero-point position is considered a deflected position. In other words, if a current actual position 130 of the operating element 110 is outside the zero-point position zone 150, 151, this current actual position 130 is considered a deflected position, i.e., the operating element 110 is in an actuated state.

[0057] As in the else branch of block 804 ( Fig. 8), the sensor device may be configured to form an angle φ between the x-axis and the vector r⇀ (which is spanned between the center 140 and the current actual position 130).

[0058] Furthermore, the sensor component can subtract the radius 'R' of the zero position zone 150 from the current actual position 130 of the operating element 110. In particular, the sensor component can subtract the radius 'R' (zero_position_zone) of the zero position zone 150 from the x-coordinate corresponding to the current actual position 130 of the operating element 110 (x filtered = (r - zero_position_zone) cos φ), and subtract the radius 'R' (zero_position_zone) of the zero position zone 150 from the y-coordinate belonging to the current actual position 130 of the control element 110 (y filtered = (r - zero_position_zone) sin φ).

[0059] This allows the sensor component to begin calculating the current actual position 130 of the operating element 110 from the edge of the zero-point position zone 150 instead of from the center 140 of the operating element's total range of motion 120. In other words, the sensor component only registers an actuated state of the operating element 110 from the moment the operating element 110 leaves the zero-point position zone 150, 151. Accordingly, a smooth transition between a non-actuated state (within the zero-point position zone) and an actuated state (outside the zero-point position zone) can be realized.

[0060] For example, there is a random current position 131, which is in Fig. 9, is outside the zero-point position zone 150, i.e., it is considered an actuated state of the control element 110. The current actual position 131 is spaced from the mechanical center 140 by almost half the total travel along the x-axis. If the control element 110, e.g., an analog stick of a game controller, is deflected to this position, a game character would move at almost half its speed. However, since all positions within the zero-point position zone 150 are considered virtual zero-point positions, an abrupt transition would occur when the control element 110 leaves the zero-point position zone 150. In other words, the game character would abruptly begin moving instead of moving slowly.

[0061] However, according to the present innovation, the radius of the zero-point position zone 150 is subtracted from the current actual position 131, so that the beginning of the actuated state of the control element 110 is shifted by the size of the zero-point position zone 150. Thus, the beginning of a movement of the control element 110 is only registered when the control element 110 leaves the zero-point position zone 150. Accordingly, the playing figure begins to move smoothly from the moment the control element 110 leaves the zero-point position zone. There is no longer any abrupt transition. One can say that the x and y coordinates corresponding to the current actual position 131 are filtered taking into account the size of the zero-point position zone 150.

[0062] With further reference to Fig. 8, at block 804, the above-explained function filter_zero_pos(x,y) returns the filtered x, y coordinate, which is known as x filtered and y filteredThe innovative self-recalibration process then continues with block 805, where the result is output. The result is either a virtual zero position (0,0) if the control element 110 is within the zero position zone 150, or the filtered x, y coordinate x explained above. filtered and Yfiltered.

[0063] It should be noted that the above description of Fig. 8 still refers to the initial calibration step using the initial zero position zone 151. Thus, block 806 includes a query to determine whether the current actual position 130 of the control element 110 is within the initial zero position zone 151. If so, a reduced zero position zone 150 is generated that has a reduced size compared to the initial zero position zone 151. The size of the reduced zero position zone 150 can be determined by setting its radius to a fixed value, e.g., zero_position_zone := 0.7 at block 807. An average value of the current actual position 130 can be set as a new center of the reduced zero position zone 150.

[0064] If the query of block 806 returns a result that differs from a virtual zero position (0,0), this is an indication that the current actual position 130 is outside the initial zero position zone 151, which can occur when the operating element 110 is in an actuated state. In this case, the self-recalibration continues by returning to block 802. The subsequent process steps are the same as explained above. If the self-recalibration process ends at block 807 with the creation of a reduced zero position zone, it may be possible for the sensor device to terminate the self-recalibration process, e.g., it may enter a deep sleep mode. In other words, the sensor device may stop the self-recalibration process after a reduced zero position zone of a fixed size is defined.

[0065] Additionally or alternatively, it may be possible for the sensor component to perform a subsequent self-recalibration step, for example, after a certain period of time, e.g., after two or three days. In this case, the sensor component may be configured to perform the self-recalibration iteratively. In a first calibration step at a first time t1, the sensor component may set a first current actual position 1301 of the operating element 110 as a first mechanical zero-point position 1331 and define the first mechanical zero-point position 1331 as a center of a first zero-point position zone 1501, as explained above.

[0066] At a second time t2, the sensor component can then perform a subsequent second calibration step, wherein the sensor component can set a second current actual position 1302 of the operating element 110 as a second mechanical zero position 1332 and define the second mechanical zero position 1332 as a center of an updated second zero position zone 1502, which can replace the first zero position zone 1501. It is possible for both the first zero position zone 1501 and the second zero position zone 1502 to be reduced zero position zones with a fixed size, as explained above.

[0067] Using the iterative approach explained above, an adaptive adjustment of the size of any zero-point position zone can be performed. For example, the size of a zero-point position zone can be adaptively and gradually reduced to a predetermined minimum size. As mentioned above, the size of a zero-point position zone should be as small as possible so that the user experiences a good haptic feel of the control element 110.

[0068] Fig. Figure 10 shows a possible embodiment of the innovative concept, which features an adaptive and gradual reduction in the size of a zero-point position zone. This adaptive approach takes previous zero-point positions into account, thereby reducing the zero-point position zone to its absolute minimum.

[0069] With reference to Fig. 10, the sensor component may be configured to perform a plurality of successive calibration steps to generate a respective plurality of zero-point position zones, as explained above. For example, the sensor component may generate a first zero-point position zone 1501, a second zero-point position zone 1502, and a third zero-point position zone 1503. As also mentioned above, in each calibration step, a current actual position 130 of the operating element 110 may be set as a new mechanical zero-point position 133, which defines a center of the corresponding zero-point position zone 150. Accordingly, as in Fig. 10, the sensor component can store a respective plurality of mechanical zero-point positions 1331, 1332, 1333 corresponding to each of the plurality of zero-point position zones 1501, 1502, 1503.

[0070] The sensor device can then generate a minimized zero position zone 153 with a radius that includes each of the previously stored mechanical zero positions 1331, 1332, 1333, wherein the size of the minimized zero position zone 153 is smaller than the size of each of the plurality of previously generated zero position zones 1501, 1502, 1503. The size of the minimized zero position zone 153 can be slightly increased to compensate for intrinsic sensor noise. However, with this iterative approach, the size of any zero position zone can be reduced to its absolute minimum.

[0071] However, it may happen that a current actual position 130 of the control element 110 in its non-actuated state is outside the minimized zero position zone 153, for example, due to a mechanical shift that causes a shift in the center hysteresis. In this case, the sensor component can discard the minimized zero position zone 153 and resume self-recalibration with one of the previously used reduced zero position zones 1501, 1502, 1503.

[0072] In other words, if the sensor device determines in a subsequent calibration step, after generating the minimized zero position zone 153, that a current actual position 130 of the operating element 110 is outside the minimized zero position zone 153, the sensor device may discard the minimized zero position zone 153 and generate a new zero position zone with a size larger than the size of the minimized zero position zone 153. For example, the sensor device may then return to a new zero position zone with a fixed size, such as a reduced zero position zone 150, as explained above. For example, the sensor device may resume self-recalibration with one of the previously used reduced zero position zones 1501, 1502, 1503.

[0073] In summary, the sensor device can implement the iterative approach to gradually reduce the size of a zero-position zone by storing the center points 1331, 1332, 1333 of previous recalibrations. Once a set of measurements is available, the minimized zero-position zone 133 can be generated by determining a smallest circle containing all calibration points 1331, 1332, 1333, and optionally adding a certain margin for noise.

[0074] So far, the innovative concept has been explained with reference to an operating element 110 that is movable within a two-dimensional range of motion, with a current actual position 130 of the operating element 110 being specified by x and y coordinates. However, as mentioned above, the present innovative concept can also be used in push buttons of power tools and the like.

[0075] Fig. Figure 11 shows an example of a control element provided as a push button (trigger) of a power drill. The push button can be pressed to activate the power drill, but the push button can only be pressed in one direction. Accordingly, the push button only performs a one-dimensional movement along an axis 170. This one-dimensional range of movement 170 extends from a mechanical starting point 171 to a mechanical end stop 172. Ideally, a mechanical zero point position of the push button should coincide with the mechanical starting point 171. Otherwise, the power drill may start running even though the push button is not being pressed by a user.

[0076] Fig.Figure 11 shows a scenario in which a current actual position 130 of the push button deviates from the mechanical starting point 171. To avoid unwanted activation of the drill, the innovative self-recalibration mechanism can be used, whereby a zero-position zone 150 can be generated, as discussed above. The only difference may be that the current actual position 130 of the control element can be specified not by two-dimensional x- and y-coordinates, but only by a one-dimensional x-coordinate.

[0077] In summary, the innovative concept proposes a solution to a problem related to the recalibration of hardware devices to suppress noisy behavior of control elements (e.g., joysticks) in their zero-point position. Noisy behavior can arise from at least one of the sensor noise itself, mechanical tolerances at the system level, and abrasion / degradation. The innovative concept proposes a solution by creating a zero-point position zone to suppress the hysteresis effects as well as general noise. The size of the zero-point position zone should be as small as possible to avoid the customer realizing it. However, this leads to difficulties in initial calibration and transformation over time. The solution is an automated self-recalibration mechanism that can be triggered in an adaptive, intelligent manner.

[0078] The innovative concept extends the useful life of a hardware device. Compared to conventional recalibration mechanisms, fewer measurements are required and averaging is no longer necessary.

[0079] This innovative concept can be used in a wide range of applications, including all types of sensors (e.g., 3D Hall sensors) with a hysteresis effect or noise that needs to be suppressed, as well as at the system level where external factors introduce hysteresis or noise. A trigger indicating recalibration can be configured depending on the application.

[0080] Although some aspects have been described in connection with a device, it is clear that these aspects also represent a description of the corresponding method, with a block or component corresponding to a method step or a feature of a method step. Similarly, aspects described in connection with a method step also represent a description of a corresponding block, element, or feature of a corresponding device.

[0081] Some or all of the method steps may be performed by (or using) a hardware device, such as a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the key method steps may be performed by such a device.

[0082] Depending on specific implementation requirements, embodiments may be implemented in hardware or in software, or at least partially in hardware or at least partially in software. The implementation may be carried out using a digital storage medium, for example, a floppy disk, a DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or FLASH memory, on which electronically readable control signals are stored that interact (or can interact) with a programmable computer system such that the respective method is carried out. Therefore, the digital storage medium may be computer-readable.

[0083] Some embodiments include a data carrier having electronically readable control signals capable of interacting with a programmable computer system to perform one of the methods described herein.

[0084] In general, embodiments can be implemented as a computer program product with program code, wherein the program code is operable to perform one of the methods when the computer program product is running on a computer. The program code can, for example, be stored on a machine-readable medium.

[0085] Other embodiments comprise the computer program for performing one of the methods described herein stored on a machine-readable carrier.

[0086] In other words, an embodiment of the method according to the invention is therefore a computer program with a program code for carrying out one of the methods described herein when the computer program runs on a computer.

[0087] A further embodiment of the methods according to the invention is therefore a data carrier (or a digital storage medium or a computer-readable medium) on which the computer program for performing one of the methods described herein is recorded. The data carrier, the digital storage medium, or the recording medium is typically tangible and / or non-volatile.

[0088] A further embodiment of the method according to the invention is therefore a data stream or a sequence of signals that represents the computer program for performing one of the methods described herein. The data stream or the sequence of signals can, for example, be configured to be transmitted via a data communication connection, for example, via the Internet.

[0089] A further embodiment comprises a processing device, for example a computer, or a programmable logic device, which is configured or adapted to carry out one of the methods described herein.

[0090] A further embodiment comprises a computer on which the computer program for performing one of the methods described herein is installed.

[0091] Another embodiment includes a device or system configured to transmit a computer program for performing one of the methods described herein (e.g., electronically or optically) to a recipient. The recipient may, for example, be a computer, a mobile device, a storage device, or the like. The device or system may, for example, include a file server for transmitting the computer program to the recipient.

[0092] In some embodiments, a programmable logic device (e.g., a field-programmable gate array) may be used to perform some or all of the functionality of the methods described herein. In some embodiments, a field-programmable gate array may cooperate with a microprocessor to perform any of the methods described herein. In general, the methods are preferably performed by any hardware device.

[0093] The apparatus described herein may be implemented using a hardware device or using a computer or using a combination of a hardware device and a computer.

[0094] The methods described herein may be performed using a hardware device or using a computer or using a combination of a hardware device and a computer.

[0095] Although this disclosure has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of this disclosure, will become apparent to those skilled in the art upon reference to the description. Therefore, the appended claims are intended to encompass any such modifications or embodiments.

Claims

[1] A hardware device (100) having a self-recalibration mechanism, the hardware device (100) having the following features: a movable mechanical operating element (110) configured to be moved by a user within a predetermined mechanical range of motion (120), a sensor component for determining a position of the operating element (110) within its predetermined mechanical range of movement (120), wherein the sensor device is configured to perform self-recalibration by Setting a current actual position (130) of the operating element (110) in its non-actuated state as a mechanical zero point position (133) and Setting a zero point position zone (150) extending around the mechanical zero point position (133), wherein the sensor component is configured to treat all positions of the operating element (110) that are within the zero point position zone (150) as virtual zero point positions. [2] The hardware device (100) of claim 1, wherein the zero position zone (150) is defined as a circular area with a radius 'r' extending around the mechanical zero position (133). [3] The hardware device (100) according to claim 1 or 2, wherein the sensor device is configured to set a size of the zero position zone (150) to a fixed value covering various mechanical zero positions (1331, 1332) of the operating element (110) affected by positional deviations caused by at least one of hysteresis, noise, or offsets. [4] Hardware device (100) according to one of the preceding claims, wherein the sensor component is configured to set a size of the zero position zone (150) to a fixed value covering between 2% to 8% of the total range of motion (120) of the operating element (110). [5] Hardware device (100) according to one of the preceding claims, wherein the sensor device is configured to perform an initial calibration step including generating an initial zero position zone (151), wherein the center of the initial zero point position zone (151) is located in the center (140) of the total movement range (120) of the operating element and wherein the sensor component is configured to set the size of the initial zero position zone (151) to a fixed value covering between 20% to 30% of the total range of motion (120) of the operating element (110). [6] Hardware device (100) according to claim 5, wherein the sensor component is configured to perform a subsequent calibration step after the initial calibration step, in which the sensor component is configured to set a current actual position (130) of the operating element (110) in its non-actuated state as a new mechanical zero point position (133) and setting the new mechanical zero position (133) as a center of a new reduced zero position zone (150) that is smaller than the previous initial zero position zone (151). [7] Hardware device (100) according to claim 6, wherein the sensor component is configured to set a size of the reduced zero position zone (150) to a fixed value covering various mechanical zero positions (1331, 1332) of the operating element (110) affected by position deviations caused by at least one of hysteresis, noise, or offsets. [8] Hardware device (100) according to claim 6 or 7, wherein the sensor component is configured to set a size of the reduced zero position zone (150) to a fixed value covering between 2% to 8% of the total movement range of the operating element (110). [9] Hardware device (100) according to one of claims 6 to 8, wherein the sensor component is configured to check whether a current actual position (130) of the operating element (110) is within the reduced zero point position zone (150), wherein the sensor component is configured to perform the test by determining a radial distance 'r' of the current actual position (130) of the operating element from the center (140) of the total movement range (120) of the operating element and to check whether the radial distance 'r' is less than or equal to the radius of the reduced zero point position zone (150). [10] Hardware device (100) according to claim 9, wherein, if the sensor component determines that the current actual position (130) of the operating element (110) is within or at an edge of the reduced zero point position zone (151), the sensor component is configured to treat the current actual position (130) of the operating element (110) as a virtual zero point position. [11] Hardware device (100) according to claim 9 or 10, wherein, if the sensor component determines that the current actual position (130) of the operating element (110) is outside the reduced zero point position zone (150), the sensor component is configured to subtract the radius of the reduced zero-point position zone (150) from the current actual position (130) of the operating element (110), so that the start of a movement of the operating element (110) is only registered when the operating element (110) leaves the reduced zero-point position zone (150). [12] Hardware device (100) according to one of the preceding claims, wherein the sensor component is configured to perform the self-recalibration iteratively, wherein, in a first calibration step at a first time t1, the sensor component is configured to set a first current actual position (1301) of the operating element (110) as a first mechanical zero-point position (1331) and to define the first mechanical zero-point position (1301) as a center of a first zero-point position zone (1501), and wherein, in a subsequent second calibration step at a second time t2, the sensor component is configured to set a second current actual position (1302) of the operating element (110) as a second mechanical zero point position (1332) and to define the second mechanical zero point position (1332) as a center of a second zero point position zone (1502). [13] Hardware device (100) according to one of the preceding claims, wherein the sensor component is configured to perform a plurality of successive calibration steps to generate a plurality of zero-point position zones (1501, 1502, 1503) and to store the respective plurality of mechanical zero-point positions (1331, 1332, 1333) associated with each of the plurality of zero-point position zones (1501, 1502, 1503), and to generate a minimized zero position zone (153) having a radius that includes each of the stored mechanical zero positions (1331, 1332, 1333), wherein the size of the minimized zero position zone (153) is smaller than the size of each of the plurality of previously generated zero position zones (1501, 1502, 1503). [14] Hardware device (100) according to claim 13, wherein, if the sensor component determines in a subsequent calibration step, after having generated the minimized zero-point position zone (153), that a current actual position (130) of the operating element (110) in its non-actuated state is outside the minimized zero-point position zone (153), the sensor component is configured to discard the minimized zero position zone (153) and generate a new zero position zone having a size that is larger than the size of the minimized zero position zone (153). [15] Hardware device (100) according to one of the preceding claims, wherein the sensor component is configured to wait for the elapse of a predetermined period of time during which the operating element (110) is in a non-actuated state to ensure that the operating element (110) is actually in a non-actuated state before performing the self-recalibration, or wherein the sensor device is configured to wait for the occurrence of a predetermined event indicating that the operating element (110) is in a non-actuated state before performing the self-recalibration. [16] A method (700) for performing self-recalibration in a hardware device (100), the method comprising the following steps: Determining a position of an operating element (110) that can be moved by a user within a predetermined mechanical range of movement (120), Perform self-recalibration by Setting a current actual position (130) of the operating element (110) in its non-actuated state as a mechanical zero point position (133) and Setting a zero point position zone (150) extending around the mechanical zero point position (133), wherein all positions of the operating element (110) which are within the zero point position zone (150) are treated as virtual zero point positions. [17] A computer-readable storage medium having stored thereon a computer program for carrying out the method according to claim 16 when executed on a computer or signal processor.

Citation Information

Patent Citations

  • Travel and steering control for industrial truck has control device which from direction of deflection of actuating element determines desired steering angle, and from extent of deflection determines desired speed of travel

    DE102007060336A1

  • Control system and method for controlling the drive and braking system of a motor vehicle

    DE102019106695A1

  • System and method for generating an analog signal in a hand-held computing device

    US20040222965A1

  • Mechanical center calibration of control sticks in user input devices

    US20170252645A1

  • Control stick sensitivity adjustment

    US20190126140A1