Controller for use in an apparatus including a force sensor
By using a controller in a force sensor device, the output signal is generated based on the force sensor arrangement and crosstalk suppression and positioning operations are adopted, the mechanical crosstalk and signal distortion problems are solved, and signal accuracy and user interaction are improved.
Patent Information
- Application Number
- CN202080023274.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-29
- Filing Date
- 2020-03-27
- Publication Date
- 2025-01-03
- Estimated Expiration
- 2040-03-27
AI Technical Summary
In the prior art, there is a mechanical crosstalk problem in the processing of force sensor signals, resulting in signal distortion and false touching actions, making it difficult to effectively process sensor signals originating from force sensors.
By using a controller in the device, the output sensor signal is generated depending on the arrangement of the force sensor, crosstalk suppression operation and positioning operation are adopted, the impact of mechanical crosstalk is reduced and the position of interest is determined, and the signal processing is performed using weights and fractions to realize adaptive control .
It effectively reduces the impact of mechanical crosstalk in the output signal, improves signal accuracy and user interaction reliability, and enhances the tactile feedback and operation stability of the device.
Smart Images

Figure CN113632053B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to a controller for use in a device including a force sensor.Such a device may be a portable electrical or electronic device.
[0002] The present disclosure extends to an apparatus comprising the controller and corresponding methods and computer programs. Background Art
[0003] Force sensors are known as possible input transducers for devices such as portable electrical or electronic devices and can be used as a replacement for traditional mechanical switches. Such sensors detect force on the device to determine user interaction, such as touching or pressing the device.
[0004] It is desirable to process sensor signals originating from such force sensors in a convenient and useful manner. Summary of the invention
[0005] According to a first aspect of the present disclosure, there is provided a controller for use in a device comprising at least two force sensors in a given arrangement, the controller being capable of operating based on input sensor signals obtained from the force sensors to perform arrangement-related operations, wherein an output sensor signal is generated based on at least two of the input sensor signals and the arrangement of the force sensors in the device, such that the output sensor signal is dependent on the arrangement.
[0006] The arrangement of the force sensors in the device may be referred to as the topology of the device, and accordingly, the arrangement-related operations may be referred to as topology-related operations or device topology operations. The input sensor signals may be derived from the force sensors in the sense that they are generated by the force sensors, or from signals generated by the force sensors. The input sensor signals may have a one-to-one relationship with the force sensors, or a one-to-many relationship, for example, where they are generated based on a combination of sensor signals generated by respective force sensors.
[0007] By generating the output sensor signal in dependence on the arrangement of the force sensors in the device, the arrangement may be taken into account, for example to compensate for the influence of the arrangement on the sensor signal or to generate a sensor signal that would be expected from a different arrangement or topology.
[0008] The arrangement-related operation may be a crosstalk suppression operation. In this regard, the output sensor signal of the crosstalk suppression operation may correspond to one of the input sensor signals of the crosstalk suppression operation and be derived from subtracting a fraction of the other input sensor signal from its corresponding input sensor signal, the fraction being associated with the pair of input sensor signals.
[0009] In this way, the effects of mechanical crosstalk in the output sensor signal may be reduced or suppressed.
[0010] The crosstalk suppression operation may be configured to generate a plurality of output sensor signals of the crosstalk suppression operation, the plurality of output sensor signals corresponding to the respective input sensor signals of the crosstalk suppression operation. Each of the output sensor signals of the crosstalk suppression operation may be obtained by subtracting a fraction of the input sensor signals of the crosstalk suppression operation other than its corresponding input sensor signal from its corresponding input sensor signal of the crosstalk suppression operation, the fraction being associated with the pair of input sensor signals.
[0011] At least one of the output sensor signals of the crosstalk suppression operation is obtainable by subtracting from its corresponding input sensor signal corresponding fractions of the corresponding input sensor signals of the crosstalk suppression operation other than its corresponding input sensor signal, each corresponding fraction being associated with a pair of those input sensor signals involved.
[0012] Each score and its association with the input sensor signal for the crosstalk suppression operation may be based on the arrangement of the force sensors in the device. Each score may depend on the distance and / or mechanical interaction between the force sensors that produce the pair of input sensor signals associated with the crosstalk suppression operation. For each of the scores from which the input sensor signal for the crosstalk suppression operation is subtracted, the amount subtracted may be the product of the score and the input sensor signal.
[0013] Each score may have a value between a minimum score value greater than or equal to 0 and a maximum score value less than 1 and greater than the minimum score. The minimum score value may be 0, and the maximum score value may be between 0.2 and 0.6, optionally 0.3.
[0014] With respect to a given output sensor signal of the crosstalk suppression operation, the crosstalk suppression operation may be applied in dependence on the amplitude of the input sensor signal corresponding to the given output sensor signal exceeding a given threshold. The crosstalk suppression operation may be configured with respect to the given output sensor signal of the crosstalk suppression operation to replace each fraction involved with a zero-valued fraction (i.e., zero) when the amplitude of the input sensor signal corresponding to the given output sensor signal does not exceed the given threshold.
[0015] The controller may be configured to update the score over time, optionally at a rate defined by a rate parameter, dependent on the magnitude or relative magnitude of a pair of input sensor signals associated with the score. This may enable the score (and thus the crosstalk suppression operation) to adapt so that its performance tends toward an optimal or target performance over time.
[0016] When the amplitude of one or both of the associated pair of input sensor signals is above a threshold, the updating may be at a rate defined by an above threshold rate parameter. When the amplitude of one or both of the associated pair of input sensor signals is below a threshold, the updating may be at a rate defined by a below threshold rate parameter. These rate parameters may be different from each other.
[0017] The updating may be controlled based on an optimization or minimization algorithm. Such an algorithm may be configured to find the minimum of an error function, the error function optionally defining the output signal of the crosstalk suppression operation for the score involved based on an input sensor signal of the crosstalk suppression operation corresponding to the output signal, the score and another input sensor signal of the crosstalk suppression operation involved. The optimization algorithm may be an iterative minimization algorithm, such as a gradient descent algorithm.
[0018] The controller may be configured to store an initial value and an updated value of the score and / or to estimate a value of the score.
[0019] The fraction may have a constant value or a maintained value.That is, in some cases, it may be desirable not to employ adaptive control of the crosstalk suppression operation.
[0020] The controller is operable to perform at least a first and a second different arrangement-related operation, the first arrangement-related operation being the crosstalk suppression operation and the second arrangement-related operation being a positioning operation. An output sensor signal of the positioning operation may be generated based on a given weight associated with at least two input sensor signals of the positioning operation derived from the force sensor and defining a position of interest relative to the position of the force sensor, such that the output signal of the positioning operation represents the position of interest.
[0021] As a possibility, the crosstalk suppression operation may be performed before the positioning operation. That is, the input sensor signal of the positioning operation may be the output sensor signal of the crosstalk suppression operation, wherein the crosstalk suppression operation is configured to generate a plurality of output sensor signals corresponding to the corresponding input sensor signals of the crosstalk suppression operation.
[0022] As another possibility, the positioning operation may be performed before the crosstalk suppression operation. That is, the input sensor signal of the crosstalk suppression operation may be the output sensor signal of the positioning operation, wherein the positioning operation is configured to generate a plurality of output sensor signals, each output sensor signal being based on a given weight associated with at least two input sensor signals of the positioning operation.
[0023] The controller may be configured to perform a positioning operation without performing a crosstalk suppression operation. That is, the placement-related operation may be a positioning operation, wherein the output sensor signal is generated based on a given weight associated with at least two of the input sensor signals and defines a position of interest relative to the position of the force sensor, such that the output signal of the positioning operation represents the position of interest and the input sensor signal is an input sensor signal of the positioning operation.
[0024] The positioning operation may be configured to generate a plurality of output sensor signals, each output sensor signal of the positioning operation being generated based on a given weight, the given weight being associated with at least two of the input sensor signals of the positioning operation and defining a position of interest relative to the position of the force sensor, such that the output signal of the positioning operation in question represents the position of interest in question.
[0025] At least two output sensor signals of the positioning operation may be generated based on different given weights and / or different input sensor signals of the positioning operation, such that those output sensor signals differ from each other.
[0026] Each of the output sensor signals of the positioning operation may be derived from a weighted combination of the at least two input sensor signals of the positioning operation involved, the weighted combination being weighted according to the given weight involved. The weight may in effect provide position / orientation information such that the output sensor signal of the positioning operation represents a force sensed at a given position (which may be different from the position of any of the force sensors).
[0027] The weighted combination may be a weighted average or a weighted sum. Each output sensor signal of the positioning operation may represent a force applied at the involved position of interest. Each weighted average or weighted sum may comprise a sum of products, the products respectively corresponding to the input sensor signals of the weighted sum, and each product being the product of the input sensor signal of the product and a corresponding weight value defined by the involved weights.
[0028] As an option, the positioning operation may comprise, in association with at least one of its output sensor signals, calculating a further output sensor signal as a function of a first ratio of the involved input sensor signals to each other and a second ratio defining the involved weights.
[0029] As a further option, each of the output sensor signals of the positioning operation may be calculated as a function of a first ratio of the amplitudes of the input sensor signals involved to each other and a second ratio defining the weights involved.
[0030] The calculation may comprise comparing the first ratio in question with the second ratio in question. Each output sensor signal of the positioning operation calculated as a function of the first ratio in question and the second ratio in question may represent whether the applied force is applied at the location of interest in question or how close the location where the force is applied is to the location of interest in question.
[0031] The calculating may include determining how close the first ratio involved is to the second ratio involved. The first ratio and the second ratio may be logarithmic ratios (i.e., ratios of logarithmic values). The calculating may include using a Gaussian function to calculate a value constrained between defined upper and lower values (such as 1 and 0), the input parameters of the Gaussian function including the first ratio involved and the second ratio involved. The Gaussian function may be a non-normalized Gaussian radial basis function.
[0032] Each weight may include a series of weight values corresponding to the input sensor signals involved in the positioning operation, respectively. For each weight, the weight value may be a fraction (eg, 0.3 and 0.7) whose sum is 1.
[0033] Each of the weights may be based on the arrangement of the force sensors in the device and the location of interest in question. Each of the weights may be dependent on the location of the force sensors in the device and the location of interest in question.
[0034] The controller may be configured to store or access arrangement information defining the arrangement of the force sensors in the device, such as relative positions of the force sensors. The controller may be configured to perform the arrangement-related operation based on the arrangement information.
[0035] The controller may be configured to calculate each of the output sensor signals using a matrix calculation (i.e., a calculation operating on a matrix) based on the input sensor signals involved and the arrangement information. For example, the input sensor signals, output sensor signals, weights and factors may be presented in a matrix.
[0036] The controller may be configured to determine a user touch event based on the output sensor signal or based on a combination of two or more of the output sensor signals.
[0037] According to a second aspect of the present disclosure, there is provided a device comprising: at least two force sensors in a given arrangement; and a controller according to the aforementioned first aspect, wherein the input sensor signal originates from the corresponding force sensor of the device.
[0038] The force sensors may be disposed at different locations on the device. Each of the force sensors may include one or more of the following: a capacitive displacement sensor; an inductive force sensor; a strain gauge; a piezoelectric force sensor; a force sensing resistor; a piezoresistive force sensor; a thin film force sensor; and a force sensor based on a quantum tunneling complex.
[0039] The apparatus may comprise one or more input / output components, wherein the controller is configured to control the operation of at least one of the input / output components based on the output sensor signal.
[0040] The device may be a portable electrical or electronic device, such as a portable phone or a computer. Other example types of devices are mentioned later.
[0041] According to a third aspect of the present disclosure, there is provided a controller for use in a device comprising at least two force sensors, the controller being capable of operating based on input sensor signals obtained from the force sensors to perform a crosstalk suppression operation, wherein an output sensor signal is generated, the output sensor signal corresponding to one of the input sensor signals and obtained by subtracting a fraction of the other input sensor signal from its corresponding input sensor signal.
[0042] According to a fourth aspect of the present disclosure, there is provided a controller for use in a device comprising at least two force sensors, the controller being capable of operating based on input sensor signals obtained from the force sensors to perform positioning operations, wherein an output sensor signal is generated based on given weights, the given weights being associated with at least two of the input sensor signals and defining a position of interest relative to the positions of those force sensors, such that the output signal represents the position of interest.
[0043] According to a fifth aspect of the present disclosure, a controller for use in a device comprising at least two force sensors is provided, the controller being capable of operating based on input sensor signals obtained from the sensors to perform a positioning operation, wherein an output sensor signal is generated based on given weights, the given weights being associated with at least two of the input sensor signals and defining a position of interest relative to the positions of those sensors, so that the output signal represents the position of interest, wherein the output sensor signal is calculated as a function of a first ratio of the amplitudes of the input sensor signals involved to each other and a second ratio defining the weights involved, the function being optionally configured so that the output sensor signal indicates how close the first ratio is to the second ratio.
[0044] According to a sixth aspect of the present disclosure, a method for controlling a device comprising at least two force sensors in a given arrangement is provided, the method comprising performing arrangement-related operations based on input sensor signals obtained from the force sensors, wherein an output sensor signal is generated based on at least two of the input sensor signals and the arrangement of the force sensors in the device, such that the output sensor signal depends on the arrangement.
[0045] According to a seventh aspect of the present disclosure, a computer program is provided, which, when executed on a controller of a device comprising at least two force sensors in a given arrangement, causes the controller to perform arrangement-related operations based on input sensor signals obtained from the force sensors, wherein an output sensor signal is generated based on at least two of the input sensor signals and the arrangement of the force sensors in the device, such that the output sensor signal depends on the arrangement. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] Reference will now be made, by way of example only, to the accompanying drawings in which:
[0047] Figure 1 is a schematic diagram of an apparatus according to an embodiment;
[0048] Figure 2A is a schematic diagram that can be used to understand the operation of crosstalk suppression;
[0049] Figure 2B is a schematic diagram that can be used to understand the positioning operation;
[0050] FIG. 3A to FIG. 3D is a schematic diagram useful for understanding that a crosstalk suppression operation and a positioning operation may be employed individually or in combination;
[0051] Figure 4A , Figure 4B and Figure 4C presents graphs showing results obtained in conjunction with example crosstalk suppression operations;
[0052] Figure 5A , Figure 5B and Figure 5C presents a graph showing results obtained in conjunction with an example crosstalk suppression operation; and
[0053] Figure 6 Graphs showing results obtained in conjunction with example positioning operations are presented. DETAILED DESCRIPTION
[0054] Figure 11 is a schematic diagram of a device 100 (e.g., a mobile or portable electrical or electronic device) according to an embodiment. The example device 100 includes a portable and / or battery-powered host device such as a mobile phone, a smart phone, an audio player, a video player, a PDA, a mobile computing platform (such as a laptop or tablet), and / or a gaming device.
[0055] like Figure 1 As shown, the device 100 may include a housing 101 , a controller 110 , a memory 120 , a plurality of force sensors 130 , and an input and / or output unit (I / O unit) 140 .
[0056] Housing 101 may include any suitable case, box, or other housing for housing the various components of device 100. Housing 101 may be constructed of plastic, metal, and / or any other suitable material. Additionally, housing 101 may be adapted (e.g., sized and shaped) so that device 100 is easily transported by a user (i.e., a person).
[0057] The controller 110 may be housed within the housing 101 and may include any system, device, or apparatus configured to control the functionality of the device 100, including any or all of the memory 120, the force sensor 130, and / or the I / O unit 140. The controller 110 may be implemented as a digital or analog circuit, in hardware or in software running on a processor, or in any combination of these.
[0058] Thus, the controller 110 may include any system, device or apparatus configured to interpret and / or execute program instructions or codes and / or process data, and may include, but is not limited to, a processor, a microprocessor, a microcontroller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an FPGA (field programmable gate array), or any other digital or analog circuit configured to interpret and / or execute program instructions and / or process data. Thus, the code may include program code or microcode, or, for example, code for setting or controlling an ASIC or FPGA. The code may also include code for dynamically configuring a reconfigurable device, such as a reprogrammable logic gate array. Similarly, the code may include code for a hardware description language, such as Verilog TM or VHDL. Those skilled in the art will appreciate that the code may be distributed between multiple coupled components that communicate with each other. Where appropriate, these aspects may also be implemented using code running on a field (re)programmable analog array or similar device to configure analog hardware. Processor control code for execution by the controller 110 may be provided on a non-volatile carrier medium such as a disk, CD-ROM or DVD-ROM or on a data carrier such as an optical signal carrier or an electrical signal carrier. The controller 110 may be referred to as a control circuit and may be provided as an integrated circuit such as an IC chip or a portion thereof.
[0059] The memory 120 may be housed within the housing 101, communicatively coupled to the controller 110, and may include any system, device, or apparatus (e.g., a computer-readable medium) configured to retain program instructions and / or data over a period of time. In some embodiments, the controller 110 interprets and / or executes program instructions and / or processes data stored in the memory 120 and / or other computer-readable media accessible to the controller 110.
[0060] The force sensors 130 may be housed within, located on, or forming part of the housing 101 and may be communicatively coupled to the controller 110. Each force sensor 130 may include any suitable system, device, or apparatus for sensing force, pressure, or touch (e.g., interaction with a human finger) and generating an electrical or electronic signal in response to such force, pressure, or touch. Example force sensors 130 include or include capacitive displacement sensors, inductive force sensors, strain gauges, piezoelectric force sensors, force sensing resistors, piezoresistive force sensors, thin film force sensors, and force sensors based on quantum tunneling complexes. In some arrangements, other types of sensors may be used.
[0061] In some arrangements, the electrical or electronic signal generated by the force sensor 130 may vary with the magnitude of the force, pressure, or touch applied to the force sensor. The electronic or electrical signal may include a general purpose input / output signal (GPIO) associated with an input signal to which the controller 100 responds to control some functions of the device 100. The term "force" as used herein may refer not only to force, but also to a physical quantity indicating force or similar to force, such as, but not limited to, pressure and touch.
[0062] I / O unit 140 may be housed within housing 101, may be distributed across device 100 (ie, may represent a plurality of units), and may be communicatively coupled to controller 110. Figure 1 Although not explicitly shown, the I / O unit 140 may include any or all of a microphone, an LRA (or other device capable of outputting force (such as vibration)), a radio (or other electromagnetic) transmitter / receiver, a speaker, a display screen (optionally a touch screen), an indicator (such as an LED), a sensor (e.g., an accelerometer, a temperature sensor, a tilt sensor, an electronic compass, etc.), and one or more buttons or keys.
[0063] As a convenient example to keep in mind, the device 100 may be a haptically enabled device. As is well known, haptic technology recreates the sense of touch by applying force, vibration, or motion to a user. For example, the device 100 may be considered a haptically enabled device (a device enabled with haptic technology) in which the force sensor 130 (input transducer) of the device measures the force applied by the user on a user interface (such as a button or touch screen on a mobile phone or tablet computer), and the LRA or other output transducer of the I / O unit 140 directly or indirectly (e.g., via a touch screen) applies force to the user, for example to give tactile feedback. Some aspects of the present disclosure (e.g., the controller 110 and / or the force sensor 130) may be arranged as part of a tactile circuit, such as a tactile circuit that may be provided in the device 100. Circuits or circuit systems embodying aspects of the present disclosure (such as the controller 110) may be (at least partially) implemented as an integrated circuit (IC), such as on an IC chip. One or more input or output transducers (such as the force sensor 130 or LRA) may be connected to the integrated circuit in use.
[0064] Of course, this application of haptic technology is just one example application of a device 100 that includes a plurality of force sensors 130. The force sensors 130 may simply be used as general purpose input transducers to provide input (sensor) signals to control other aspects of the device 100, such as a GUI (graphical user interface) displayed on a touch screen of the I / O unit 140 or an operating state of the device 100 (such as waking a component from a low power "sleep" state).
[0065] The device 100 is shown as including four force sensors 130 labeled s1, s2, s3, and s4, and their signals are labeled S1, S2, S3, and S4, respectively. However, it should be understood that in conjunction with the techniques described herein, the device 100 generally only needs to include one pair (i.e., at least two) of force sensors 130, for example, any pair of sensors s1 to s4. Example pairs include s1 and s2, s1 and s3, s1 and s4, s2 and s4, s2 and s3, and s3 and s4. Four force sensors 130 s1 to s4 are shown to facilitate understanding of the specific arrangement described later. Of course, the device 100 may include more than four force sensors 130, such as additional sensors s5 to s8 arranged in a manner similar to sensors s1 to s4 but in another area of the device 100.
[0066] although Figure 1 1 is illustrative, but it should be understood that sensors s1 to s4 are positioned so that they can receive force input from a user, particularly a user's hands, during use of device 100. In this context, the user force input corresponds to the user touching, pushing, pressing, or swiping the device, optionally with one or both of their hands, near one or more of force sensors 130, so that in some cases, a force (e.g., a threshold amount of force) can be applied at multiple force sensors simultaneously or substantially simultaneously (concurrently or contemporaneously). Of course, in some cases, the user can apply the user force input at a single force sensor 130. For example, a change in the amount of force applied can be detected rather than detecting the absolute amount of force.
[0067] Thus, force sensors s1 to s4 may be located on the device according to the anthropometric measurements of a human hand. For example, where only a pair of force sensors 130 are present, they may be disposed on the same side of the device 100 (e.g., s1 and s2). It should be understood that force sensors 130 are disposed at different locations on the device, but may be in close proximity to each other.
[0068] For example, Figure 1 As shown schematically, force sensors s1-s4 may be arranged in a linear array or strip on one side of device 100 (another linear array of force sensors s5-s8 may be arranged on the opposite side of device 100), and may be in close proximity to one another. Thus, a given user force input (from touching device 100 in the area of force sensor 130) may result in forces being picked up at multiple of these sensors due in part to mechanical interactions between force sensors 130 (e.g., such as mechanical connections via housing 101).
[0069] In summary, the controller 110 may operate based on input sensor signals S1 to S4 originating from (or derived from or received from) corresponding force sensors s1 to s4 to perform arrangement-related operations, wherein an output sensor signal is generated based on at least two of the input sensor signals and the arrangement of the force sensor 130 in the device 100.
[0070] That is, the output sensor signal will depend to some extent on the arrangement of the force sensors 130 in the device 100, and can be considered to be characterized by or affected by the arrangement. Such an arrangement may include any of the positions of the force sensors 130 in the device 100, the physical or mechanical coupling of the force sensors to each other and to the external housing 101, the orientation of the force sensors relative to each other and to the housing 101, etc. In this regard, the arrangement of the force sensors 130 in the device 100 will (at least to some extent) determine or affect how a given (applied at a given position) user force input is represented in the output sensor signal. For example, the position of the force sensors 130 in the device 100 (including any mechanical interactions between them) will have an effect on the input sensor signal. Therefore, information related to or defining such an arrangement can be used to generate an output sensor signal that depends on the arrangement. Arrangement-related operations can be considered device arrangement operations, or adjustment operations or signal conditioning or analysis operations.
[0071] One example arrangement-related operation may be referred to as a crosstalk suppression operation. Consider Figure 1 , the mechanical interaction between force sensors s1 and s2 will cause mechanical crosstalk between them, so that, for example, an expected force applied to force sensor s2 will produce the expected input sensor signal S2, but also produce a related (and unintended) component in the input sensor signal S1 of force sensor s1. In this regard, such mechanical interaction and the associated mechanical crosstalk can be viewed as distorting at least one of the input force sensor signals, and it may be desirable to compensate for this distortion, at least to some extent.
[0072] Figure 2A is a schematic diagram of force sensors s1 to s4 being represented as being positioned in a linear array extending horizontally in the figure. Thus, if a user input force is applied to force sensor s2, as indicated, and as expected, this user input force is represented by amplitude X in input sensor signal S2, then mechanical crosstalk between force sensors 130 results in related components (fractions of amplitude X) being represented in input sensor signals S1, S3, and S4, as indicated.
[0073] In the current example, as in Figure 2AAs indicated in FIG. 1 , it is assumed that there is a mechanical coupling of a factor of 0.3 between each of force sensors s1 and s3 and force sensor s2, for example, because they are located at similar distances on either side of force sensor s2. It is assumed that there is a mechanical coupling of a factor of 0.05 between force sensor s4 and force sensor s2, with force sensor s4 being located further away from force sensor s2 than force sensor s3. Thus, input sensor signals S1, S3, and S4 include components 0.3*X, 0.3*X, and 0.05*X, respectively, as indicated.
[0074] In order to compensate for the distortion suffered by the input sensor signal S1, the compensated input sensor signal S1' may be calculated according to the following equation:
[0075] S1'=S1-0.3 * S2
[0076] Thus, if the factor 0.3 is correct, the effect of mechanical crosstalk is substantially cancelled in the compensated input sensor signal S1' (which corresponds to the input sensor signal S1), or at least suppressed if the factor 0.3 is not perfect or if simply applying this subtraction does not give perfect cancellation. The cancellation mechanism here is to subtract the relevant fraction or proportion or part of the input sensor signal causing the distortion (leakage source) from the pre-compensated input sensor signal (leakage target). Of course, similar examples can be given to produce compensated input sensor signals S3' and S4' corresponding to input sensor signals S3 and S4 respectively.
[0077] Another example placement-related operation may be referred to as a positioning operation. Consider again Figure 1 , the mechanical interaction between force sensors s1 and s2 (and surrounding locations) can enable their input sensor signals S1 and S2 to be mapped to input sensor signals of a virtual force sensor 130v (not shown) located at a location of interest other than at force sensors s1 and s2 (e.g., between force sensors s1 and s2), where force sensors s1 and s2 actually pick up the force applied. Similarly, such mapping can be used to determine whether an applied force (picked up at force sensors s1 and s2) is applied at the location of interest, and, for example, how close to the location of interest the force is applied.
[0078] For example, the virtual force sensor 130v may be equivalent to a virtual button disposed at the location of interest such that the force determined to be applied at the location is evaluated (eg, compared to a threshold) to determine whether a button press on the virtual button should be considered to have occurred.
[0079] Figure 2Bis a schematic diagram in which force sensors s1 and s2 are represented as being positioned in a linear array extending horizontally in the figure. Thus, if a user input force is applied to the device 100 at a location between force sensors s1 and s2 (as indicated, i.e., at the location of the virtual force sensor 130v labeled vs), the user force input may be picked up at force sensors s1 and s2 (and expressed as signals S1 and S2) due to the mechanical connection between that location and those force sensors 130. In this regard, such mechanical interaction may be viewed as enabling the input force sensor signals S1 and S2 to be used to evaluate the user force input at the virtual force sensor vs and indeed at other virtual force sensors 130v (locations of interest).
[0080] exist Figure 2B It is assumed in the example that the virtual force sensor vs is located between (e.g., equidistant from) the force sensors s1 and s2, such that the force sensors s1 and s2 equally pick up the user force input applied at the location of the virtual (i.e., imaginary) force sensor vs (assuming that the mechanical interaction supports this). Therefore, the virtual input sensor signal VS corresponding to the virtual force sensor vs (as the output sensor signal of the operation) can be obtained by applying equal factors or weights to the input sensor signals S1 and S2, such as according to the following equation:
[0081] VS=0.5 * S1+0.5 * S2
[0082] Of course, the virtual force sensor vs is not real, and thus may be defined as being located between force sensors s1 and s2 (e.g., closer to s1 than force sensor s2), such that the virtual input sensor signal VS has unequal contributions from the forces picked up at force sensors s1 and s2. In this case, the virtual input sensor signal VS corresponding to the virtual force sensor vs (as the output sensor signal of the operation) may be obtained by applying unequal weights to the input sensor signals S1 and S2, such as according to the following equation:
[0083] VS=0.7 * S1+0.3 * S2
[0084] For simplicity, it may be helpful to express those weights when generating the virtual input sensor signal VS by applying factors to multiple input sensor signals (i.e., two or more) so that their sum is 1 (e.g., 0.5+0.5=1 and 0.7+0.3=1) or as percentages (e.g., 50% / 50% or 70% / 30%).
[0085] These possible arrangement-dependent operations depend, at least to some extent, on the arrangement of the force sensors 130 in the device 100, and in particular on how the input sensor signals are processed based on the arrangement in the controller 110. The skilled person will accordingly recognize that aspects of the arrangement-dependent operations disclosed herein (and associated methods) may be embodied within the controller 110 itself based on the input sensor signals received by the controller. Thus, the controller 110 itself, as well as the methods it performs, may embody the present invention.
[0086] FIG. 3A to FIG. 3D is a schematic diagram useful for understanding that the crosstalk suppression CS operation and the positioning L operation can be used individually or in combination (eg, continuously). FIG. 3A to FIG. 3D In each of the , the functionality may be considered to be embodied in the controller 110 .
[0087] exist Figure 3A , a CS (crosstalk suppression) operation is shown as operating on input sensor signals S1 and S2 to generate corresponding compensated input sensor signals S1' and S2' (as output sensor signals of the operation). The CS operation may, for example, generate only one of the compensated input sensor signals S1' and S2'. As another example, the CS operation may operate on input sensor signals S1 to S4 to generate one or more of the corresponding compensated input sensor signals S1' to S4'. The or each compensated input sensor signal may be considered an output sensor signal of the CS operation.
[0088] The input sensor signals and compensated input sensor signals may generally be considered to be input sensor signals originating from the corresponding force sensors 130, i.e., based on or caused by the forces detected at those force sensors 130. For example, signals S1 and S1' may be considered to originate from force sensor s1, signals S2 and S2' may originate from force sensor s2, and so on.
[0089] exist Figure 3B , the L (positioning) operation is shown as operating on input sensor signals S1 and S2 to generate corresponding virtual input sensor signals VS (as the output sensor signal of the operation). The L operation may, for example, generate only one virtual input sensor signal VS, as shown, or multiple (different) virtual input sensor signals VS (representing signals originating from virtual force sensors in different positions and / or configurations). As an example, the L operation may operate on input sensor signals S1 to S4 (or any group thereof) to generate a virtual input sensor signal VS (or multiple different virtual input sensor signals, such as VS1 and VS2. The or each virtual input sensor signal may be considered as an output sensor signal of the L operation.
[0090] exist Figure 3CIn FIG. 1 , the CS (crosstalk suppression) operation is shown to be followed by the L (positioning) operation. Figure 3A , the CS operation is shown as operating on input sensor signals S1 and S2 to generate corresponding compensated input sensor signals S1' and S2'. These compensated input sensor signals S1' and S2' are the output sensor signals of the CS operation and the input sensor signals of the L operation. The L operation is shown as operating on its input sensor signals S1' and S2' to generate corresponding virtual input sensor signals VS. The virtual input sensor signal VS can be considered as the output sensor signal of the L operation and the combined CS and L operations.
[0091] exist Figure 3D In FIG. 1 , the L (positioning) operation is shown to be followed by the CS (crosstalk suppression) operation, and for ease of understanding, the L operation is indicated as consisting of multiple L operations. Figure 3B , the first L operation is shown as operating on input sensor signals S1 and S2 to generate a virtual input sensor signal VS1 (as the output sensor signal of the operation). The second L operation is shown as operating on input sensor signals S3 and S4 to generate a virtual input sensor signal VS2 (as the output sensor signal of the operation). These virtual input sensor signals VS1 and VS2 are the output sensor signals of the entire L operation and the input sensor signals of the CS operation. The CS operation is shown as operating on its input sensor signals VS1 and VS2 to generate corresponding compensated virtual input sensor signals VS1' and VS2' (as the output sensor signals of the CS operation). The compensated virtual input sensor signals VS1' and VS2' can be considered as the output sensor signals of the CS operation and the combined L and CS operations.
[0092] Thus, it will be appreciated that the input sensor signal of the CS operation may have a one-to-one relationship with the force sensor 130 (see Figure 3A ) or has a one-to-many relationship with force sensor 130 (see Figure 3D ). In situations where there are many force sensors 130 and fewer virtual buttons (and therefore virtual input sensor signals), it may be advantageous to perform an L (localization) operation followed by a CS (crosstalk suppression) operation, as in FIG. D, to reduce the number of calculations required in the CS operation (since it is performed on fewer signals).
[0093] FIG. 3A to FIG. 3CThe input sensor signals shown may represent internal signals of the controller 110, such as digital input sensor signals generated after analog-to-digital conversion of corresponding analog input sensor signals received (directly or indirectly) from the force sensor 130. The analog-to-digital conversion may be performed by a corresponding analog-to-digital converter (ADC, not shown), which may be provided within the force sensor 130, within the controller 110, or between the force sensor 130 and the controller 110. The force sensor 130 may be a digital force sensor that outputs a digital signal. This generally extends to the input sensor signals described herein, and thus the output sensor signals may similarly be digital signals. It should be understood that the sensor signals may be converted (e.g., analog-to-digital conversion), normalized, filtered (e.g., high-pass, low-pass, or band-pass frequency filtering), averaged (e.g., finding a running average), or other signal conditioning operations.
[0094] The crosstalk suppression operation and the positioning operation will now be considered in more detail.
[0095] Beginning with the crosstalk suppression operation and by way of review, the device 100 may be considered to include at least two force sensors 130, e.g. Figure 1 s1 and s2 in .
[0096] Let's look at the example Figure 2A and Figure 3A ,in particular Figure 2A In the example calculation of S1' in, the controller 110 can operate based on the input sensor signals S1 and S2 originating from the corresponding force sensors s1 and s2 to perform a crosstalk suppression operation, wherein an output sensor signal S1' (as an example one of S1' and S2') is generated, which corresponds to one of the input sensor signals (i.e., S1) and is obtained by subtracting a fraction (e.g., 0.3) of the other input sensor signal (i.e., S2) from its corresponding input sensor signal (i.e., S1).
[0097] In this context, the score can be considered to be associated with the pair of input sensor signals involved. Figure 2A In the example of FIG. 1 , the fraction 0.3 may be considered to be a correlation (crosstalk) factor c indicating crosstalk or signal leakage from force sensor s2 to s1. 21 A correlation factor c may be expected to indicate crosstalk or signal leakage from force sensor s1 to s2. 12 Due to symmetry, it is also 0.3.
[0098] Therefore, both of the following equations may be appropriate:
[0099] S1'=S1-0.3 * S2
[0100] S2'=S2-0.3 * S1
[0101] Considering that the input sensor signals for the crosstalk suppression operation may be the output signals for the positioning operation and this will be kept in mind, for simplicity the signal notations S1 , S2 (associated with the force sensors s1 , s2 ) will be used here.
[0102] For a given operation, using x for the input sensor signal and y for the output sensor signal, and assuming that the input sensor signal and the output sensor signal are digital signals comprising a series of samples, where n is the sample number, the above equation for S2' can be presented in the following form:
[0103] y2(n)=x2(n)-c12 * x1(n)
[0104] Here, y2(n) corresponds to S2', x2(n) corresponds to S2, and x1(n) corresponds to S1. Furthermore, y2 and x2 may be referred to as channel 2 signals because they originate from sensor s2, and x1 may similarly be referred to as channel 1 signal because it originates from sensor s1. Likewise, consider that channels may be associated with virtual buttons rather than individual sensors.
[0105] Here, c12 is a correlation factor defining the crosstalk from channel 1 to channel 2, and in the above example is 0.3. Similarly, c21 will be a correlation factor defining the crosstalk from channel 2 to channel 1. This notation and terminology will be carried forward.
[0106] A given correlation factor, such as c12, may differ between devices, depending on the arrangement of the force sensors 130. Even in devices 100 of apparently the same type, manufacturing tolerances may cause the correlation factor to differ between those devices 100. Indeed, it is apparent that a given correlation factor, such as c12, may vary over time in a given device 100, for example due to aging or temperature changes, or in an iterative process towards an improved value.
[0107] In the context of a crosstalk suppression operation that generates a plurality of output sensor signals corresponding to respective input sensor signals, those output sensor signals are thus Figure 3A The context can be expressed as:
[0108] y1(n)=x1(n)-c21 * x2(n)
[0109] y2(n)=x2(n)-c12 * x1(n)
[0110] Each output sensor signal is derived from its corresponding input sensor signal by subtracting a fraction (determined by the correlation factors involved) of the input sensor signal other than its corresponding input sensor signal, the fraction being associated with that pair of input sensor signals.
[0111] More generally, there may be more than two input sensor signals contributing to a single output sensor signal. For example, where there are three channels 1 to 3 (corresponding to force sensors s1 to s3, respectively), channel 2 may suffer from crosstalk from channels 1 and 3, and a crosstalk suppression operation may be used to address this situation, where the output sensor signal of channel 2 is represented as:
[0112] y2(n)=x2(n)-[c12 * x1(n)+c32 * x3(n)]
[0113] Thus, at least one output sensor signal may be derived from its corresponding input sensor signal by subtracting a respective fraction (determined by a respective correlation factor) of the respective input sensor signal excluding its respective input sensor signal, each respective fraction being associated with a pair of input sensor signals involved.
[0114] Therefore, the overall idea is to suppress the contribution (crosstalk) of one force sensor 130 to another (e.g., adjacent) force sensor 130 or one virtual button to another virtual button. This improves the quality or accuracy of the output sensor signal (i.e., where the crosstalk has been suppressed) compared to its corresponding input sensor signal (i.e., where the crosstalk has not been suppressed) and, in some cases, avoids false triggering of actions or events or states under the control of the controller 110.
[0115] Generalizing the crosstalk suppression operation for use in an apparatus 100 having N force sensors 130 producing N corresponding channels, the purpose of the crosstalk suppression operation can be summarized as obtaining a vector y(n) = [y1(n), y2(n) ... yN(n)] having crosstalk between (e.g., adjacent) force sensors suppressed in view of an input sensor signal x(n) = [x1(n), x2(n) ... xN(n)] in an N-channel configuration.
[0116] As described above, the correlation factors (scores) and their association with the input sensor signals are based on the arrangement of the force sensors 130 in the device 100. For example, each correlation factor may depend on the distance and / or mechanical interaction between the force sensors 130 that produce the associated pair of input sensor signals (or between virtual buttons that produce the associated pair of input sensor signals).
[0117] In practice, the correlation factor may have a value between a minimum score value greater than or equal to 0 and a maximum score value less than or equal to 1 and greater than the minimum score value. The minimum score value may be 0 (indicating no crosstalk), and the maximum score value may be between 0.2 and 0.6 (indicating the expected maximum leakage, i.e., the percentage of the signal transmitted to the adjacent force sensor). In a practical embodiment, a suitable maximum score value may be 0.3. That is, in practice, leakage will likely be limited.
[0118] It was mentioned previously that it may be necessary to update or change the correlation factors over time (as an alternative to maintaining fixed predetermined or set values), for example to take into account changing conditions (such as aging or temperature changes) or to iterate towards values that better or even best represent the true crosstalk.
[0119] This situation will now be considered further using the channel 2 output signal y2(n) as an example, where (as mentioned previously):
[0120] y2(n)=x2(n)-c12 * x1(n)
[0121] One approach considered is to use running values of the input and output sensor signals to determine the correlation factor c12 based on the following minimization:
[0122]
[0123] where E[] is the expected value, and the objective function E[y2(n) 2 ]The value of the independent variable c12 that is minimized.
[0124] Applying gradient descent to the minimization to find this minimum yields the following update expressions for the associated factors:
[0125]
[0126] Here, the symbol μ (mu) defines a learning rate for adapting the correlation factor c12. This adaptation of the correlation factor c12 may be applied, for example, only if the amplitude of the input sensor signal x2(n) is above a threshold TH, making it likely that the user force input is for the signal x2 (e.g., to avoid updating the correlation factor c12 based on noise).
[0127] Therefore, here the update is controlled based on an optimization (minimization) algorithm configured to find the minimum value of the error function. Here, y2(n) 2 can be considered as the error function for the example assumption that the user force input is applied only at sensor s1. The example optimization algorithm provided here is an iterative minimization algorithm, in particular a gradient descent algorithm.
[0128] A constraint may be imposed on this correlation factor c12 so that it does not exceed a given maximum fractional value (maxCorr) as previously mentioned, such as 0.3, since it is not expected that all energy will leak from one force sensor to another. A further constraint may be imposed so that it does not drop below a given minimum fractional value, such as 0, so that it does not become negative. Such constraints may be imposed to provide an update expression as follows:
[0129] c12(n+1)=min(maxCorr,c12(n+1))
[0130] c12(n+1)=max(0,c12(n+1))
[0131] Generalizing the previous example based on y2(n) to an N-channel configuration leads to the following set of equations expressed using matrices:
[0132] (1)
[0133]
[0134]
[0135] (2)
[0136] C(n+1)=max(0,min(maxCorr,C(n+1)))
[0137] where x, y, and 1 are 1×N matrices, and C, X, and M are N×N matrices, and and is the Hadamard (element-wise) product and division. Matrix C is a correlation matrix containing correlation factors for corresponding pairs of channels. Matrix M is a correlation mask matrix containing 0 or 1 to indicate pairs of channels where crosstalk is likely to occur. For example, element m12 in matrix M indicates whether it is desired to estimate crosstalk from channel 1 to channel 2 in an adaptive manner. Symbol ε is a bias value.
[0138] As with the y2(n) example above, equation (2) may be applied only to those channels from which the input sensor signal from which the crosstalk is to be removed is greater than a threshold value TH. For example, it may be possible to not apply crosstalk suppression on those channels from which the input sensor signal from which the crosstalk is to be removed is less than a threshold value TH.
[0139] As another option, when the input sensor signal from which the crosstalk is to be removed is below the threshold TH, then equation (2) may be replaced by:
[0140] (3) C(n+1)=C(n)-μ dC(n)=C(n)·(1-μ d )
[0141] The symbol μ d Defines another learning rate (or in this case, decay rate) for the correlation factor of the adaptation matrix C.
[0142] These two situations (above and below the threshold TH) generate the updated expression:
[0143] (4)
[0144] where the nth row of the N×N matrix W is equal to 1 if the magnitude of x(n) is > TH, and equal to 0 otherwise.
[0145] Therefore, each score (correlation factor) can be updated over time depending on the amplitude or loudness amplitude of an associated pair of input sensor signals. For example, each score can be adaptive at a first rate when the amplitude of one or both of its associated pair of input sensor signals is higher than a threshold value TH. It is also possible that crosstalk suppression is applied only when the amplitude of one or both of its associated pair of input sensor signals is higher than a threshold value. As another example, each score can be adaptive over time (e.g., drop to a minimum score value) at a second rate when the amplitude of one or both of its associated pair of input sensor signals is lower than a threshold value TH. It should be understood that the controller 110 can be configured to store the initial value and update value of each of the scores, such as in an internal register or memory 120.
[0146] It should be understood that the above equations can be implemented in software, for example, in an iterative manner (e.g., channel by channel) to avoid the complexity of processing matrices. For each sample of each channel, the equations can be applied separately in this way, that is, for each value of n, x1(n) is processed first, then x2(n), and so on. When the input sensor signal is below the threshold TH, one possible implementation may omit applying the learning rate μ d From adaptation related factors.
[0147] Figure 4A , Figure 4B and Figure 4C A graph showing results obtained using a device comprising 4 force sensors s1 to s4 (channels 1 to 4), ie N=4, is presented.
[0148] It is also assumed that the interaction between the force sensors is such that there is a corresponding mask matrix M:
[0149]
[0150] Therefore, the relevant correlation factors are c21, c12, c43 and c34.
[0151] The input sensor signals correspond to the following examples: first, a single press is performed on channel 2 (from samples 1800 to 3500), second, a single press is performed on channel 1 and channel 2 (from samples 5000 to 7520), and third, a single press is performed on channel 1, channel 2, and channel 3 (from samples 9400 to 13000).
[0152] for Figure 4A , the correlation factor is fixed at 0.3. Figure 4B , the correlation factor is updated according to the software implementation of the above equation (i.e., it is allowed to update at different rates when the input sensor signal is above and below the threshold TH). Figure 4C , the correlation factor is updated according to the software implementation of the above equation, but is only allowed to be updated when the input sensor signal is above the threshold TH.
[0153] In each case, the top curve shows the output sensor signals y1(n) to y4(n) as if no crosstalk suppression (AdSS) was performed so that the output sensor signals y1(n) to y4(n) were the same as the input sensor signals x1(n) to x4(n), respectively. The curves show the output sensor signals y1(n) to y4(n) as if crosstalk suppression (AdSS) was performed. The bottom curve shows the value of the correlation factor (element) used in conjunction with the middle curve.
[0154] Figure 5A , Figure 5B and Figure 5C A graph showing the results obtained using a device comprising 4 force sensors s1 to s4 (channels 1 to 4) (ie, N=4) is presented, similar to FIG. 4A to FIG. 4C Here, it is assumed that the force sensors 130 are in the same strip array or linear array, and there is leakage (crosstalk) between adjacent force sensors, so that there is a corresponding mask matrix M:
[0155]
[0156] Therefore, the relevant correlation factors are therefore c21, c12, c32, c23, c43 and c34.
[0157] for FIG. 5A to FIG. 5C , forces are artificially generated based solely on channels 4 and 2. Therefore, in channels 1 and 3, only leakage from channels 2 and 4 is experienced, and this situation is simulated by creating the channel 1 input sensor signal equal to 0.1 times the channel 2 input sensor signal and creating the channel 3 input sensor signal as an increasing signal ramping from 0 to approximately 80% of the amplitude of the channel 2 input sensor signal according to samples 500 to 600.
[0158] for Figure 5A , the correlation factor is fixed at 0.3. Figure 5B , the correlation factor is updated according to the software implementation of the above equation (i.e., it is allowed to update at different rates when the input sensor signal is above and below the threshold TH). Figure 5C , the correlation factor is updated according to the software implementation of the above equation, but is only allowed to be updated when the input sensor signal is above the threshold TH.
[0159] In each case, the top curve shows the output sensor signals y1(n) to y4(n) as if no crosstalk suppression (AdSS) was performed so that the output sensor signals y1(n) to y4(n) were the same as the input sensor signals x1(n) to x4(n), respectively. The middle curve shows the output sensor signals y1(n) to y4(n) as if crosstalk suppression (AdSS) was performed. The bottom curve shows the value of the correlation factor (element) used in conjunction with the middle curve.
[0160] exist FIG. 4A to FIG. 4C and FIG. 5A to FIG. 5C In each of the above curves, the comparison between the upper curve and the middle curve shows that crosstalk suppression is achieved. Figure 4B , Figure 4C , Figure 5B and Figure 5C In Figure 1, the effect of adaptively updating the correlation factor can be seen.
[0161] Turning now to the positioning operation and by way of review, the apparatus 100 may be considered to include at least two force sensors 130, e.g. Figure 1 Let's look at s1 and s2 together. Figure 2B and Figure 3B ,in particular Figure 2B In the example calculation of the virtual input sensor signal VS in FIG. 1 , the controller 110 may be based on the input sensor signals S1 and S2 (or Figure 3C The output sensor signal VS is generated based on a given weight associated with at least two of the input sensor signals. The signals S1 and S2 ( Figure 3B ) and S1' and S2'( Figure 3C ) can be called the input sensor signal for the positioning operation.
[0162] Here, the weight actually defines the position of interest (i.e., the position of the virtual sensor vs) relative to the positions of the force sensors s1 and s2, so that the output signal of the positioning operation represents the position of interest. Obviously, the output signal of the positioning operation may represent the force applied at the position of interest, i.e., may correspond to Figure 2B, or a virtual input sensor signal VS in . Another possibility described later is that this (or another) output signal of the positioning operation represents whether the applied force is applied at the location of interest or how close the location of the applied force is to the location of interest. Of course, one or both of these types of output sensor signals may be generated by the positioning operation, and the controller 110 may be controlled based on one or both of them. For example, it may be determined whether a virtual button (located at the location of interest, i.e., the location of the virtual force sensor) has been pressed or touched (enough to be determined as a "touch event", e.g., based on one or more thresholds). The following disclosure will be understood accordingly.
[0163] As in Figure 2B , a virtual force sensor signal VS (as an output sensor signal for the positioning operation) corresponding to the virtual force sensor signal S1 and S2 may be obtained by applying equal factors or weights to the input sensor signals S1 and S2, such as according to the following equation:
[0164] VS=0.5 * S1+0.5 * S2
[0165] This virtual force sensor signal VS may correspond to a virtual force sensor vs (position of interest) positioned equidistantly between force sensors s1 and s2, or at least such that the user force input involved has the same effect at force sensors s1 and s2, so the weights applied are 0.5 and 0.5, as described above. Here, a given weight may be expressed as, for example, 0.5:0.5 or 50%:50%, whereby the weights are actually fractions that sum to 1.
[0166] Of course, the positioning operation can be configured to generate multiple output sensor signals, each of which is generated based on a given weight associated with at least two input sensor signals of the positioning operation. For example, the first virtual input sensor signal VS1 and the second virtual input sensor signal VS2 can be generated according to the following equation:
[0167] VS1=0.5 * S1+0.5 * S2
[0168] VS2=0.7 * S1+0.3 * S2
[0169] These virtual input sensor signals VS1 and VS2 may correspond to virtual force sensors vs1 and vs2 (locations of interest) located at different places relative to force sensors s1 and s2 , as indicated by the different weights 0.5:0.5 and 0.7:0.3.
[0170] As another example, there may be more than two force sensors 130 with corresponding input sensor signals, such as force sensors s1 to s3 or as in Figure 1 s1 to s4 in . The positioning operation can be configured to generate a plurality of output sensor signals, each output sensor signal being generated based on a given weight associated with at least two input sensor signals of the positioning operation. For example, the first to third virtual input sensor signals VS1, VS2, VS3 can be generated according to the following equations:
[0171] VS1=0.5 * S1+0.5 * S2
[0172] VS2=0.7 * S2+0.3 * S3
[0173] VS3=0.5 * S2+0.5 * S3
[0174] These virtual input sensor signals (as output sensor signals of the operation) may correspond to virtual force sensors vs1 , vs2 and vs3 located at different places (locations of interest), as indicated by the different weights used and / or different input sensor signals.
[0175] As another example, the positioning operation may be configured to generate at least one output sensor signal based on a given weight associated with three or more input sensor signals of the positioning operation. For example, the fourth virtual input sensor signal VS4 may be generated according to the following equation:
[0176] VS4=0.5 * S1+0.3 * S2+0.2 * S3
[0177] This virtual input sensor signal VS4 may correspond to a virtual force sensor vs4 (position of interest) positioned relative to force sensors s1 , s2 , and s3 . Here, the ratio defining the ratio may be expressed as, for example, 0.5:0.3:0.2.
[0178] The above virtual input sensor signal (output sensor signal of the positioning operation) is obtained from the weighted combination of at least two input sensor signals of the positioning operation involved, and the weighted combination is weighted according to the given weights involved. The weighted combination can be considered as a weighted average or weighted sum (taking the weights as fractions whose sum is 1 enables the weighted average to be conveniently expressed as a weighted sum). As can be seen above, each weighted average or weighted sum includes the sum of products, and the products correspond to the input sensor signals of the sum respectively. Each product is the product of the input sensor signal of the product and the corresponding weight defined by the weights involved.
[0179] For a given operation, using x for the input sensor signal and y for the output sensor signal (as previously described), and assuming that the input sensor signal and the output sensor signal are digital signals comprising a series of samples, where n is the sample number, the above equation for VS1 can be presented in the following form:
[0180] y1(n)=w11 * x1(n)+w21 * x2(n)
[0181] Here, y1(n) corresponds to VS1, x1(n) corresponds to S1, and x2(n) corresponds to S2. Furthermore, x1 and x2 may be referred to as channel 1 and 2 signals, since they originate from force sensors s1 and s2, respectively. Here, w11 is a weight defining the contribution of channel 1 to output signal 1, and is 0.5 in the VS1 example above. Similarly, w21 is a weight defining the contribution of channel 2 to output signal 1, and is also 0.5 in the VS1 example above. This notation and terminology will be carried forward.
[0182] Generalizing the previous example based on y1(n) to an N-channel configuration leads to the following set of equations expressed using matrices:
[0183] y(n)=x(n)×S2B
[0184] Where the matrix y(n) is a 1xM matrix and corresponds to the M output sensor signals, the matrix x(n) is a 1xN matrix and corresponds to the N input sensor signals or channels, and the S2B matrix is an NxM matrix and provides a weight mapping from the N input sensor signals to the M output sensor signals. Therefore, these matrices can be defined as:
[0185] y(n)=[y1(n) ... yM(n)]
[0186] x(n)=[x1(n) ... xN(n)]
[0187]
[0188] In an example mapping of 4 force sensors (N=4) to 2 virtual force sensors (M=2), the mapping matrix S2B may look like:
[0189]
[0190] Considering that the virtual force sensor (location of interest) can be equivalent to a virtual button, S2B can be interpreted as "sensor to button." Here, in the absence of uneven mechanical interaction between force sensors s1 to s4, the weights appear to position the first virtual button halfway between force sensors s1 and s2, and the second virtual button halfway between force sensors s3 and s4.
[0191] Thus, the position of the virtual button (virtual force sensor) can be easily controlled by controlling the weights, as expressed in the S2B matrix. The weights applied in calculating the weighted average or sum of the output sensor signals y(n) for a given virtual button can be controlled to guide the virtual button (position of interest) closer to a given (actual) force sensor 130 by increasing the corresponding weight applied to its input sensor signal (e.g., assuming the total weight in the weights remains the same). For example, a subsequent S2B matrix will guide the first virtual button (position of interest) closer to the position of force sensor s1 than force sensor s2 compared to the previous one.
[0192]
[0193] As mentioned previously, an alternative or additional type of output sensor signal for the positioning operation may represent whether the applied force is applied at the location of interest in question or how close the location of the applied force is to the location of interest in question. This output sensor signal may be referred to as a confidence metric output sensor signal, while the output sensor signals of the positioning operation described so far (representing the force applied at the location of interest in question) may be considered as weighted combined output sensor signals.
[0194] This confidence metric output sensor signal (or simply confidence metric) may also be based on given weights associated with at least two of the input sensor signals, similar to the weighted combination output sensor signal. However, the confidence metric output sensor signal may more easily provide an indication of how close (in terms of position) a given user force input is to the maximum sensitivity (position) through the weight mapping involved.
[0195] This confidence metric output sensor signal may be based on a function of a first ratio of the magnitudes of the involved input sensor signals to each other and a second ratio defining the weights involved. For example, for a given virtual force sensor or virtual button (defined by the weights and associated input sensor signals), the involved first and second ratios may be compared to each other to generate a confidence metric output sensor signal. The confidence metric output sensor signal may then indicate how close the involved first ratio and second ratio are to each other.
[0196] In one possible embodiment, the first ratio and the second ratio may be logarithmic ratios. In addition, the calculation of the confidence metric output sensor signal may include using a Gaussian function to calculate a value constrained between a defined upper and lower limit value (such as 1 and 0), the input parameters of the Gaussian function including the first ratio and the second ratio involved.
[0197] Now we will consider an example where the Gaussian function is a non-normalized Gaussian radial basis function. This example includes two main steps and will consider the following example weight mapping matrix S2B between the input sensor signals x1(n) to x4(n) and the output sensor signals y1(n) and y2(n) (generated by a weighted average or sum), as previously described, i.e., where two input sensor signals are used to generate one output sensor signal.
[0198]
[0199] In the first step, the logarithmic ratio γ(n) is calculated as follows:
[0200]
[0201] Where s1(n) and s2(n) are the first and second source signals for the mapping in question. In the current mapping, for y1(n), s1(n) = x1(n) and s2(n) = x2(n), and for y2(n), s1(n) = x3(n) and s2(n) = x4(n). The parameter eps(ε) is the bias value.
[0202] In the second step, the logarithmic ratio α(n) is mapped to a constraint (confidence) value from 0 to 1 using a non-normalized Gaussian radial basis function:
[0203]
[0204] Where μ and σ are the mean and standard deviation of the non-normalized Gaussian radial basis functions. The parameter μ can be a user-defined parameter. However, for a given column (corresponding to the output sensor signal in question), the parameter σ is derived from the active row of the S2B matrix (corresponding to the input sensor signal in question). For example, in the current S2B matrix example:
[0205] For y1(n):
[0206] μ=log10(S2B(1,1) / S2B(2,1))=log10(0.5 / 0.5)=0
[0207] For y2(n):
[0208] μ=log10(S2B(3,2) / S2B(4,2))=log10(0.5 / 0.5)=0
[0209] Using logarithmic ratios rather than simple ratios helps enforce symmetry about the maximum sensitivity (location) of the weight map, i.e., so that the ratios on each side of that point map to the same confidence value.
[0210] Figure 6 A graph showing the results obtained from an example of recording 500ms (fs=1kHz) of data from two force sensors is presented. The resulting input sensor signal is shown on the top curve. Four different mappings are then applied, and the corresponding output sensor signals (derived from weighted sums or averages) are shown in the middle curve. The bottom curve shows the corresponding confidence metric output sensor signal for the same mapping as applied to the middle curve. The confidence metric output sensor signal, which exhibits a characteristic non-normalized Gaussian radial basis function shape, is a good measure of the area where the user input force is applied, and therefore may enable more refined force localization.
[0211] Of course, a combination (or either) of the signals of the middle and bottom curves may be used to control the controller 110, as previously mentioned, for example, to determine whether a touch event has occurred. It should be understood that either a weighted average / sum output sensor signal and a confidence metric output sensor signal may be generated, depending on the application.
[0212] It should be understood that the above arrangement-related operations are example operations that rely to some extent on the arrangement of the force sensors 130 in the device 100. In order to perform the operations, the controller 110 may be configured to store (e.g., in an internal register) or access (e.g., from the memory 120) arrangement information defining the arrangement of the force sensors in the device 100 (such as the relative positions of the force sensors) so as to perform the arrangement-related operations based on the arrangement information. For example, this arrangement information may include the various correlation factors, weights, weights and / or mappings described above, any of which may be dynamically updated.
[0213] Based on the output sensor signal generated in one of the arrangement-related operations, the controller 110 may be configured to determine that a user touch event has occurred (such as a user swiping, touching, or pressing the device 100 proximate to the associated force sensor 130 ).
[0214] In practice, the controller 110 may be configured to control the operation of the device 100 based on the output sensor signal generated in one of the arrangement-related operations. For example, the controller 110 may be configured to control the operation of at least one of itself or the input / output components of the I / O unit 140. In the context of haptic functions, the controller 110 may be configured to control the LRA within the I / O unit 140 based on the output sensor signal generated in one of the arrangement-related operations.
[0215] As another example, the output sensor signal generated in one of the arrangement-related operations may be considered as a user input related to a GUI (Graphical User Interface) displayed on a touch screen of the device 100. Of course, the skilled person will appreciate many other examples where the output sensor signal generated in one of the arrangement-related operations simply serves as a general user input that may be advantageously utilized in any manner.
[0216] As from Figure 1 Obviously, it should be understood that the controller 110 alone as well as the device 100 including the controller 110 may embody the present invention. The corresponding methods and computer programs may also embody the present invention.
[0217] It should be noted that the above-mentioned embodiments are illustrative rather than restrictive of the present invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word "comprising" does not exclude the presence of elements or steps other than those listed in the claims, "a" or "an" does not exclude a plurality, and a single feature or other unit may perform the functions of several units recited in the claims. Any reference numerals or labels in the claims should not be construed as limiting the scope of the claims.
Claims
1. A controller for use in an apparatus comprising at least two force sensors in a given arrangement, said controller being operable based on input sensor signals derived from said force sensors to perform an arrangement-dependent operation, wherein an output sensor signal is generated based on at least two of said input sensor signals and said arrangement of said force sensors in said apparatus, such that said output sensor signal is dependent on said arrangement, The arrangement-related operation is a positioning operation, wherein the output sensor signal is generated based on predetermined weights, the predetermined weights are associated with at least two of the input sensor signals and define a predetermined position of interest relative to the position of the force sensor, so that the output sensor signal of the positioning operation represents the force applied at the predetermined position of interest, and the input sensor signal is the input sensor signal of the positioning operation.
2. A controller as described in claim 1, wherein the positioning operation is configured to generate multiple output sensor signals, each output sensor signal of the positioning operation is generated based on a predetermined weight, the predetermined weight is associated with at least two of the input sensor signals of the positioning operation and defines a predetermined position of interest relative to the position of the force sensor, so that the output sensor signal of the positioning operation involved represents the predetermined position of interest involved.
3. The controller of claim 2, wherein at least two output sensor signals of the positioning operation are generated based on different predetermined weights and / or different input sensor signals of the positioning operation such that those output sensor signals are different from each other.
4. A controller as claimed in any one of claims 1 to 3, wherein each of the output sensor signals of the positioning operation is obtained from a weighted combination of at least two of the input sensor signals of the positioning operation involved, and the weighted combination is weighted according to the predetermined weight involved.
5. The controller of claim 4, wherein: The weighted combination is a weighted average or a weighted sum; and / or Each of the output sensor signals of the positioning operation is representative of a force applied at the predetermined location of interest concerned.
6. A controller as claimed in claim 5, wherein each weighted average or weighted sum comprises a sum of products, the products respectively corresponding to the input sensor signals of the weighted sums, and each product is the product of the input sensor signal of the product and the corresponding weight value defined by the weight involved.
7. A controller as claimed in any one of claims 1 to 3, wherein the positioning operation includes, in association with at least one of its output sensor signals, calculating another output sensor signal as a function of a first ratio of the input sensor signals involved to each other and a second ratio defining the predetermined weights involved.
8. A controller as claimed in any one of claims 1 to 3, wherein each of the output sensor signals of the positioning operation is calculated as a function of a first ratio of the amplitudes of the input sensor signals involved to each other and a second ratio defining the predetermined weights involved.
9. The controller of claim 7, wherein: The calculation comprises comparing the first ratio in question with the second ratio in question; and / or Each of the output sensor signals of the positioning operation calculated as a function of the first ratio in question and the second ratio in question indicates whether the applied force is applied at the predetermined location of interest in question or how close to the predetermined location of interest in question the applied force is applied.
10. The controller of claim 7, wherein the calculating includes determining how close the first ratio in question is to the second ratio in question.
11. The controller of claim 7, wherein the first ratio and the second ratio are logarithmic ratios.
12. The controller of claim 7, wherein the calculating comprises calculating a value constrained between defined upper and lower values using a Gaussian function, the input parameters of the Gaussian function comprising the first ratio and the second ratio involved.
13. The controller of claim 12, wherein the Gaussian function is a non-normalized Gaussian radial basis function.
14. The controller according to any one of claims 1 to 3, wherein each predetermined weight comprises a series of weight values corresponding to the input sensor signals involved in the positioning operation, respectively.
15. The controller of claim 14, wherein for each predetermined weight, its weight is a fraction whose sum is 1.
16. A controller as claimed in any one of claims 1 to 3, wherein: Each of the predetermined weights is based on the arrangement of the force sensors in the device and the predetermined location of interest involved; and / or Each of the predetermined weights depends on the position of the force sensor in the device and the predetermined location of interest involved.
17. A controller as claimed in any one of claims 1 to 3, wherein the controller is operable to perform at least a first and a second different arrangement-related operation, the first arrangement-related operation being a crosstalk suppression operation and the second arrangement-related operation being the positioning operation, an output sensor signal of the crosstalk suppression operation corresponding to one of the input sensor signals of the crosstalk suppression operation and derived from a fraction of the other input sensor signal of the crosstalk suppression operation subtracted from its corresponding input sensor signal, the fraction being associated with the pair of input sensor signals of the crosstalk suppression operation, in: the input sensor signal of the positioning operation is an output sensor signal of the crosstalk suppression operation, wherein the crosstalk suppression operation is configured to generate a plurality of output sensor signals corresponding to respective input sensor signals of the crosstalk suppression operation; or The input sensor signal of the crosstalk suppression operation is an output sensor signal of the positioning operation, wherein the positioning operation is configured to generate a plurality of output sensor signals, each output sensor signal being based on a given weight associated with at least two input sensor signals of the positioning operation.
18. The controller of claim 17, wherein: The crosstalk suppression operation is configured to generate a plurality of output sensor signals of the crosstalk suppression operation, the plurality of output sensor signals corresponding to respective input sensor signals of the crosstalk suppression operation; and Each of the output sensor signals of the crosstalk suppression operation is derived from its corresponding input sensor signal of the crosstalk suppression operation minus a fraction of the input sensor signals of the crosstalk suppression operation other than its corresponding input sensor signal, the fraction being associated with the pair of input sensor signals.
19. The controller of claim 17, wherein: At least one of the output sensor signals of the crosstalk suppression operation is derived by subtracting from its corresponding input sensor signal corresponding fractions of the corresponding input sensor signals of the crosstalk suppression operation other than its corresponding input sensor signal, each corresponding fraction being associated with a pair of those input sensor signals involved.
20. The controller of claim 17, wherein: Each score and its association with an input sensor signal for the crosstalk suppression operation is based on the arrangement of the force sensors in the device; and / or each score being dependent upon the distance and / or mechanical interaction between the force sensors of a pair of input sensor signals associated with each score producing the crosstalk suppression operation; and / or For each of the fractions of the input sensor signal from which the crosstalk suppression operation is subtracted, the amount subtracted is the product of the fraction and the input sensor signal.
21. The controller of claim 17, wherein each score has a value between a minimum score value greater than or equal to 0 and a maximum score value less than 1 and greater than the minimum score.
22. The controller of claim 17, wherein: with respect to a given output sensor signal of the crosstalk suppression operation, applying the crosstalk suppression operation in dependence on the amplitude of the input sensor signal corresponding to the given output sensor signal exceeding a given threshold; or The crosstalk suppression operation is configured with respect to a given output sensor signal of the crosstalk suppression operation to replace each fraction involved with a zero-valued fraction when the magnitude of the input sensor signal corresponding to the given output sensor signal does not exceed the given threshold.
23. The controller of claim 17, the controller configured to update the score over time in dependence upon the magnitude or relative magnitude of a pair of input sensor signals associated with the score.
24. The controller of claim 23, wherein: When the magnitude of one or both of the associated pair of input sensor signals is above a threshold, the updating is at a rate defined by an above threshold rate parameter; and / or When the magnitude of one or both of the associated pair of input sensor signals is below a threshold, the updating is at a rate defined by a below threshold rate parameter.
25. The controller of claim 23, wherein: The updating is controlled based on an optimization algorithm configured to find a minimum value of an error function, wherein the error function defines the output sensor signal of the crosstalk suppression operation for the score involved based on an input sensor signal of the crosstalk suppression operation corresponding to the output sensor signal, the score and another input sensor signal of the crosstalk suppression operation involved.
26. The controller of claim 23, wherein the controller is configured to store an initial value and an updated value of the score and / or to estimate a value of the score.
27. The controller of claim 17, wherein the fraction has a constant value.
28. A controller as claimed in any one of claims 1 to 3, the controller being configured to store or access arrangement information defining the arrangement of the force sensors in the device, The sensor is configured to perform the arrangement-related operation based on the arrangement information.
29. The controller of claim 28, wherein the controller is configured to calculate each of the output sensor signals using matrix calculations based on the input sensor signals involved and the arrangement information.
30. The controller of any one of claims 1 to 3, configured to determine a user touch event based on the output sensor signal or based on a combination of two or more of the output sensor signals.
31. The controller of claim 21, wherein the minimum score value is 0 and the maximum score value is between 0.2 and 0.
6.
32. The controller of claim 21, wherein the minimum score value is 0 and the maximum score value is 0.
3.
33. The controller of claim 23, the controller configured to update the score over time at a rate defined by a rate parameter in dependence upon the magnitude or relative magnitude of a pair of input sensor signals associated with the score.
34. The controller of claim 25, wherein the optimization algorithm is an iterative minimization algorithm.
35. The controller of claim 25, wherein the optimization algorithm is a gradient descent algorithm.
36. The controller of claim 28, wherein the controller is configured to store or access arrangement information defining relative positions of the force sensors in the device.
37. A device comprising at least two force sensors in a given arrangement, the device further comprising: A controller as claimed in any one of claims 1 to 3, wherein the input sensor signal originates from a corresponding force sensor of the device.
38. The device of claim 37, wherein the force sensors are disposed at different locations on the device.
39. The apparatus of claim 37, wherein each of the force sensors comprises one or more of: Capacitive displacement sensor; Inductive force sensor; Strain gauges; Piezoelectric force sensor; force sensing resistor; Piezoresistive force sensor; Thin film force sensor; as well as Force sensors based on quantum tunneling complexes.
40. The apparatus of claim 37, the apparatus comprising one or more input / output components, wherein the controller is configured to control operation of at least one of the input / output components based on the output sensor signal.
41. The device of claim 37, which is a portable electrical or electronic device.
42. The device of claim 37, wherein the device is a portable phone or a computer.
43. A method of controlling a device comprising at least two force sensors in a given arrangement, the method comprising performing an arrangement-dependent operation based on input sensor signals obtained from the force sensors, wherein an output sensor signal is generated based on at least two of the input sensor signals and the arrangement of the force sensors in the device, such that the output sensor signal is dependent on the arrangement, The arrangement-related operation is a positioning operation, wherein the output sensor signal is generated based on predetermined weights, the predetermined weights are associated with at least two of the input sensor signals and define a predetermined position of interest relative to the position of the force sensor, so that the output sensor signal of the positioning operation represents the force applied at the predetermined position of interest, and the input sensor signal is the input sensor signal of the positioning operation.
44. A computer program which, when executed on a controller of a device comprising at least two force sensors in a given arrangement, causes the controller to perform an arrangement-dependent operation based on input sensor signals derived from the force sensors, wherein an output sensor signal is generated based on at least two of the input sensor signals and the arrangement of the force sensors in the device, such that the output sensor signal is dependent on the arrangement, The arrangement-related operation is a positioning operation, wherein the output sensor signal is generated based on predetermined weights, the predetermined weights are associated with at least two of the input sensor signals and define a predetermined position of interest relative to the position of the force sensor, so that the output sensor signal of the positioning operation represents the force applied at the predetermined position of interest, and the input sensor signal is the input sensor signal of the positioning operation.
