Known systems for multi-level control, e.g. volume control or screen/light brightness control in consumer electronics products, use circular touch-pads or capacitive linear sliders (frequently mounted above the keyboard in notebooks), or they are using the touch information from a generic notebook touchpad when the finger is moving in a dedicated slider area, for example, on the right border of the touchpad. These sensors provide absolute position information (possibly ambiguous position information as in the case of many circular touch pads) about the finger tip, and hence the finger tip's angle on the circular touchpad or the position on the slider—information that can be mapped directly or differentially to a control level in a straight forward way. In particular for the touch wheel it is important that the fingertip and the wheel's geometric center build an angle with a reference point on the wheel, and this angle can be evaluated.
When it comes to the recognition of circle gestures without fix reference position, determining an angle in the circle movement is no longer straight forward. This is the case, for example, for a generic non-circular touchpad, with two-dimensional/three dimensional (2D/3D) free-air gestures using near-field capacitive sensor systems, or with mid/far field sensor systems like video or infrared camera systems.
Considering a circle or circular movement, which can either be clockwise or counter-clockwise, and not limiting it to have a fix start or stop position, at each time during the circle movement, for real-time application one can only evaluate data acquired up to the presence, i.e. only partial gesture patterns. Without knowing the drawn circle's center, in the beginning of the movement the detection unit cannot tell the direction of the circle: For example, a left-right movement appears in the top of a clockwise circle but also in the bottom of a counter-clockwise circle. A circle gesture is to be understood in this disclosure to mean any type of circular movement. It does not require to have a constant radius but the radius and center point may vary over time as typical for any free movement of a hand or finger describing a circle without having a reference point or a prescribed path to follow.
There are several known methods to map a 2D circular movement onto one-dimensional (1D) data.
Circular Touch-Pad: A 1D capacitive slider 100, as for example shown in FIG. 1, comprises a plurality of linearly arranged sensor elements 110, 120. Such a sensor can also be arranged in a circle as shown with sensor 200 in FIG. 1, in order to detect circular movement, certain MP3 music players use this technology.
Fix Center Position: Any point in 2D Cartesian coordinates can be bijectively mapped to a distance from a fixed reference position (center point) and the angle between a line through this point and the reference position and a reference direction vector, e.g. the direction of the positive x-axis, yielding the point in polar coordinates. Here, the named angle is the desired 1D data. Provided an input position pnew on a circle C and a fix center position pc of C, as shown in FIG. 3, with x and y component of pnew being p(new,x) and p(new,y), respectively, the angle α of pnew relative to the positive x-axis can be uniquely determined by computing the four quadrant inverse tangent function a tan 2 of vector connecting pnew and pc, i.e. α=a tan 2(p(new,y)−p(c,y), p(new,x)−p(c,x)). Compared to the single-argument inverse tangent function whose output is periodic with π, a tan 2 additionally evaluates the signs of p(new,x)−p(c,x) and p(new,y)−p(c,y) and hence can map α to one of the four quadrants. Clearly, this method is not restricted to input positions on a circle, but can take any 2D position as input and will output an angle. Naturally, in addition to this absolute angle output, given two input position vectors pold and pnew, two output angles can be computed, their difference being a measure for the movement of the input position.
According to co-pending U.S. patent application Ser. No. 14/503,883, entitled “Continuous circle gesture detection for a sensor system”, filed by Applicant and hereby incorporated by reference in its entirety, a method is proposed where angles (or approximations therefrom) between successive velocity vectors are accumulated over time, hence performing differential updates of an accumulator, where a velocity vector is defined as the difference between two position vectors being successive in time. This is illustrated in FIG. 4. Depending on the rotating direction between an old and a new velocity vector (it is assumed that that amount of rotation is less than π/2), the 1D accumulator is either increased or decreased. The amount by which the accumulator is changed is the angle between the two velocity vectors or an approximation thereof. This approach is tolerant to translation and scaling, i.e. for example when the 2D input positions are acquired with a touch pad, it does not matter in what area of the touchpad a certain pattern is drawn, e.g. in the bottom left or top right, or how big it is drawn—the effect on the 1D output measure is the same. However, this approach does not provide the angle of a position moving smoothly on a circle. While theoretically it is possible to integrate differential angles between successive velocity vectors, there would still lack the constant of integration. Further, with approximations and filtering/smoothening, a (small) error is introduced at each differential update of the angle estimate which would accumulate as well. Neither can a be computed from the angle of an input velocity vector, as this would be ambiguous mapping, cf. FIG. 5: A velocity vector at angle φ to the top right can either origin from a position in quadrant II rotating clockwise—corresponding to angle α1 of this position—or it can origin from a position rotating counter-clockwise in quadrant IV, corresponding to angle α2, where α1 and α2 differ by π. Even when the rotating direction would be known, e.g. from the history of velocity vectors, a map from φ to α would imply jumps by π whenever the rotating direction changes—which is certainly not a smooth measure. This is illustrated in FIG. 6 which shows the trajectory of an upward movement, first rotating clockwise and then changing the rotating direction.
According to U.S. Pat. No. 8,330,731, which discloses a “Method and apparatus for initiating one-dimensional signals with a two-dimensional pointing device”, the sign of the angle between two successive motion vectors determines the sign/polarity of the (differential) update value of the 1D data. The amount of 2D movement scales the magnitude of the update value. The polarity of the 1D data is changed with delay to the angle sign change, or upon abrupt stop. Start detection: Detection of finger motion within a defined target zone, e.g. right edge of a touchpad. This approach does not provide absolute angle information.
Above solutions provide for a mapping of a 2D (circular) movement to 1D data, but they do not account for an estimate of the absolute angle of the point/finger's position on a virtual circle.