Device and method for measuring contact information
The contact information measuring device rapidly detects contact points on irregular surfaces by dividing the surface into elements and using force and torque measurements, addressing integration challenges of existing tactile sensors in robots and enhancing industrial applications.
Patent Information
- Application Number
- PCT/KR2024/020861
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-29
- Filing Date
- 2024-12-20
- Publication Date
- 2025-07-03
AI Technical Summary
Existing tactile sensors for robots are difficult to integrate into commercial systems due to the need for numerous sensors and complex wiring, and methods for identifying contact points are limited by the ability to express complex surface geometries as equations.
A contact information measuring device that uses a sensor attached to a surface and a controller to define the surface as a plurality of surface elements, allowing rapid detection of contact points by selecting and searching within these elements based on force and torque measurements.
Enables rapid detection of contact information on both regular and complex irregular surfaces in real time, facilitating integration into various industrial applications such as robots and vehicles.
Smart Images

Figure KR2024020861_03072025_PF_FP_ABST
Abstract
Description
Contact information measuring device and method
[0001] The present disclosure relates to a contact information measuring device and method.
[0002] Advances in robotics have led to active research on robots capable of interacting with humans, such as collaborative and conversational robots. Consequently, the importance of human-robot interaction (HRI) is growing. To develop robots capable of interacting with humans, the ability for the robot to sense its surroundings is essential to ensure human safety and the protection of the environment. One method for achieving this is to measure physical contact information between the robot and the human.
[0003] To enhance robots' sensing capabilities, various research projects are underway on tactile sensors that measure contact information. For example, sophisticated skin sensors are being developed to enable robots to detect the force generated by contact, and flexible artificial skin that mimics human tactile abilities is being developed. However, integrating these tactile sensors into robotic systems requires a large number of sensors, and the complex wiring required to connect them hinders their application to commercial robots.
[0004] Furthermore, existing methods that use force / torque sensors to calculate geometric relationships between internal torques to identify contact points are only applicable when the robot surface can be expressed as an equation that includes geometric relationships. While simple shapes are relatively easy to express in equations, complex surfaces face mathematical limitations in expressing such geometric information in equations.
[0005] The above-described information disclosed in the background technology of this invention is only intended to improve understanding of the background of the present invention, and therefore may include information that does not constitute prior art.
[0006] The contact information measuring device and method according to embodiments of the present disclosure can quickly detect surface contact information, thereby obtaining shape information of not only a structured surface but also a complex, irregular surface in real time, and can be applied to various industrial fields such as robots including an irregular surface.
[0007] However, the technical problems to be solved by the embodiments of the present disclosure are not limited to the problems described above, and other problems not mentioned can be clearly understood by those skilled in the art from the description of the invention described below.
[0008] A contact information measuring device according to embodiments of the present disclosure includes a sensor attached to a surface included in an object and a controller connected to the sensor, wherein the controller defines a shape of the surface of the object as a plurality of surface elements having kinematic information, and when contact is made with the surface, selects any one of the plurality of surface elements to determine whether a contact point is within the selected surface element, and searches for a contact point within the selected surface element with which contact was made based on information about the surface element and a force and torque detected by the sensor.
[0009] The above controller can set a virtual line parallel to the direction of the force detected by the sensor to select a surface element for searching a contact point, and select a surface element having the shortest distance between the virtual line and the center of gravity of the surface element.
[0010] The controller determines that the contact point is within the selected surface element if the intersection of the selected surface element satisfies the boundary conditions of three edges, and searches for the location of the contact point within the surface element; and determines that the contact point is outside the selected surface element if the intersection of the virtual line and the selected surface element does not satisfy the boundary conditions of one or more of the three edges, and searches for a new surface element.
[0011] The above controller may select a surface element as a new surface element that includes one edge that does not satisfy the boundary condition and does not include a vertex between two edges that do not satisfy the boundary condition, if the intersection does not satisfy the boundary condition of one edge among three edges but satisfies the boundary condition of two edges.
[0012] The above controller can select a surface element that does not include two edges that do not satisfy the boundary conditions and includes a vertex located between two edges that do not satisfy the boundary conditions as a new surface element, if the above intersection does not satisfy the boundary conditions of two edges among three edges but satisfies the boundary conditions of one edge.
[0013] A method for measuring contact information according to embodiments of the present disclosure may include a step in which a controller defines a shape of a surface of an object as a plurality of surface elements having kinematic information, a step in which a sensor detects contact with the object, a step in which the controller selects one of the plurality of surface elements, a step in which the controller determines whether a contact point is within the selected surface element, and a step in which the controller searches for a contact point within the selected surface element where contact has been made based on information about the surface element and a force and torque detected by the sensor.
[0014] The step of selecting the surface element may include the controller setting a virtual line parallel to the direction of the force detected by the sensor and selecting the surface element having the shortest distance between the centers of gravity of the surface elements.
[0015] The step of determining whether the contact point is within the selected surface element may further include a step of determining that the contact point is within the selected surface element if the intersection of the virtual line and the selected surface element satisfies the boundary conditions of three edges, and searching for the position of the contact point within the surface element; and a step of determining that the contact point is within the selected surface element if the intersection of the virtual line and the selected surface element does not satisfy the boundary conditions of at least one of the three edges, and searching for a new surface element.
[0016] In the step of determining whether the contact point is within the selected surface element, if the intersection does not satisfy the boundary condition of one edge among three edges but satisfies the boundary conditions of two edges, the step of searching for the new surface element may further include a step of selecting a surface element that does not include a vertex between two edges that do not satisfy the boundary conditions as the new surface element.
[0017] In the step of determining whether the above contact point is within the selected surface element, if the above intersection does not satisfy the boundary conditions of two of the three edges but satisfies the boundary condition of one edge, in the step of searching for the new surface element, the controller may select a surface element that does not include two edges that do not satisfy the boundary conditions and includes a vertex located between two edges that do not satisfy the boundary conditions as the new surface element.
[0018] However, the effects that can be obtained through the present invention are not limited to the effects described above, and other technical effects that are not mentioned can be clearly understood by those skilled in the art from the description of the invention described below.
[0019] The contact information measuring device and method according to embodiments of the present disclosure can rapidly detect contact information not only on standardized surface shapes but also on irregular surfaces with non-standardized surface shapes by dividing the surface into a plurality of surface elements each having known kinematic information. Accordingly, the device and method for measuring contact information on irregular surfaces according to embodiments of the present disclosure can be applied to platforms including various shapes, such as robots or vehicles, to rapidly detect contact information in real time.
[0020] The following drawings, attached to this specification, illustrate embodiments of the present invention and, together with the description of the invention described below, serve to facilitate understanding of the technical concepts of the present invention. The present invention is not limited to the matters described in the drawings.
[0021] Figure 1 illustrates a measuring device according to embodiments of the present disclosure.
[0022] Figure 2 schematically illustrates a controller according to embodiments of the present disclosure.
[0023] FIG. 3 illustrates an example of an amorphous surface according to embodiments of the present disclosure and an enlarged view thereof.
[0024] FIG. 4 shows a state in which a surface element of an amorphous surface is in contact with an embodiment of the present disclosure.
[0025] Figure 5 shows the case where the contact point is inside the surface element.
[0026] Figure 6 shows a case where the contact point is outside the surface element.
[0027] Figures 7 and 8 illustrate a case where a contact point is inside a surface element, and a virtual line is set to select an initial surface element.
[0028] Figures 9 and 10 illustrate a case where the contact point is outside the surface element, and a virtual line is set to select the initial surface element.
[0029] Figures 11 and 12 illustrate a case where the contact point is outside the surface element, and a virtual line is set to select the initial surface element.
[0030] FIG. 13 illustrates a method for measuring contact information according to embodiments of the present disclosure.
[0031] FIG. 14 illustrates a method for selecting surface elements according to embodiments of the present disclosure.
[0032] FIG. 15 illustrates a method for determining whether a contact point is located within a selected surface element according to embodiments of the present disclosure.
[0033] FIG. 16 illustrates a measurement device according to embodiments of the present disclosure visualizing the location of a contact point in real time.
[0034] A device for measuring contact information of an irregular surface according to embodiments of the present disclosure includes a sensor attached to a surface included in an object and a controller connected to the sensor, wherein the controller defines a shape of the surface of the object as a plurality of surface elements having kinematic information, and when contact is made with the surface, selects any one of the plurality of surface elements to determine whether a contact point is within the selected surface element, and searches for a contact point within the selected surface element with which contact was made based on information about the surface element and a force and torque detected by the sensor.
[0035] Embodiments of the present disclosure can be understood by referring to the description and drawings of the invention. The described embodiments may have various modifications and be implemented in different forms, and are not limited to the embodiments described herein. Furthermore, each feature of the various embodiments of the present disclosure may be combined in part or in whole with each other. Each embodiment may be implemented independently or in relation to each other. The described embodiments are provided as examples so that the present disclosure may be thorough and complete, and are intended to fully convey the spirit of the present disclosure to those skilled in the art. The present disclosure is intended to cover all modifications, equivalents, and substitutions within the spirit and technical scope of the present disclosure. Therefore, processes, elements, and techniques that are not necessary for a person skilled in the art to fully understand the embodiments of the present disclosure may not be described.
[0036] Unless otherwise specified, throughout the attached drawings and specifications, the same reference numerals, letters, or combinations thereof indicate the same components, and thus, redundant descriptions are omitted. Furthermore, to clearly explain the present invention, parts irrelevant to the description have been omitted.
[0037] The relative sizes of elements, layers, and areas in the drawings may be exaggerated for clarity. The use of hatching and / or shading in the attached drawings is generally provided to clarify boundaries between adjacent elements. Therefore, the presence or absence of hatching or shading does not imply a desirable form or requirement for any particular material, material property, dimension, proportion, commonality between drawing elements, and / or any other characteristic, property, or attribute of an element unless otherwise specified.
[0038] Various embodiments are described herein with reference to cross-sectional examples that are schematic illustrations of embodiments and / or intermediate structures. Therefore, the shapes of the drawings may vary, for example, as a result of manufacturing techniques and / or tolerances. Furthermore, the specific structural or functional descriptions disclosed herein are merely examples for illustrating embodiments according to the concepts of the present invention. Therefore, the embodiments disclosed herein should not be construed as limited to the shapes of the illustrated regions, and include, for example, variations in shape due to manufacturing processes.
[0039] The areas depicted in the drawings are schematic in nature and their shapes are not intended to be limiting and are not intended to be illustrative of the actual shape of the device area. Furthermore, as those skilled in the art will recognize, the described embodiments may be modified in various ways without departing from the spirit or scope of the present disclosure.
[0040] Numerous specific details are set forth in the specification to provide a thorough understanding of various embodiments. However, various embodiments may be practiced without these specific details or with one or more of these details. In other instances, well-known structures and devices are shown in block diagram form to avoid unnecessarily obscuring the various embodiments.
[0041] To facilitate discussion herein, spatially relative terms such as "below," "above," "lower," "top," and the like may be used to describe the relationship of one element or feature to another, as illustrated in the drawings. Spatially relative terms are intended to encompass various orientations of the device in use or operation in addition to the orientations depicted in the drawings. For example, if the device in the drawings were flipped over, another element or feature described as "below" or "lower" would face "above" the other element or feature. Thus, as exemplary terms, "below" and "lower" can encompass both the above and below orientations. The device can be oriented in other directions (e.g., rotated 90 degrees or in other directions), and the spatially relative descriptions used herein should be interpreted accordingly. Similarly, if a first part is described as being disposed "above" a second part, this means that the first part is disposed above or below the second part.
[0042] Also, the expression "in plan view" means when an object is viewed from above, and the expression "in schematic cross-section" means when a schematic cross-section is taken by cutting the object vertically. The term "in side view" means that the first object can be above, below, or to the side of the second object, and vice versa. Additionally, the term "overlapping" or "superimposing" can include layer, laminate, plane, extension, covering, or partially covering, or any other suitable term that a person of ordinary skill in the art would understand and understand. The expression "does not overlap" can include meanings such as "away from" or "spaced from", and any other suitable equivalents that a person of ordinary skill in the art would recognize and understand. The terms "plane" and "surface" can mean that a first object can directly or indirectly face a second object. When a third object is between a first object and a second object, the first object and the second object can be understood as facing each other but indirectly opposing each other.
[0043] When an element, layer, region, or component is referred to as being "formed by," "connected to," or "coupled to," another element, layer, region, or component, it may be directly formed by, connected to, or coupled to, another element, layer, region, or component, or indirectly formed by, connected to, or coupled to another element, layer, region, or component. Furthermore, "formed by," "connected to," or "coupled to" may collectively refer to direct or indirect combinations or connections of elements, layers, regions, or components, and integral or non-integral combinations or connections, such that one or more elements, layers, regions, or components may be present. For example, when an element, layer, region, or component is referred to as being "electrically connected to" or "electrically coupled to" another element, layer, region, or component, it may be directly electrically connected to or coupled to, or may be electrically coupled to, another element, layer, region, or component. However, "direct connection" or "direct bonding" means that one component is directly connected or bonded to another component without an intermediate component, or is on another component. In addition, in the present specification, when a part of a layer, film, region, guide plate, etc. is formed on another part, the direction of formation is not limited to the upper direction, and includes that the part is formed on the side or bottom. Conversely, when a part of a layer, film, region, guide plate, etc. is formed "under" another part, it includes not only the case where the part is "directly under" the other part, but also the case where another part is between the part and the other part. Meanwhile, other expressions that describe the relationship between components, such as "between," "directly between," or "adjacent to" and "directly adjacent to", can be interpreted similarly.Additionally, when an element or layer is referred to as being "between" two elements or layers, it may be the only element between the two elements or layers, or there may be other elements between them.
[0044] For the purposes of this specification, phrases such as "at least one or more" or "either" do not limit the order of the individual elements. For example, phrases such as "at least one of X, Y, and Z," "at least one of X, Y, or Z," or "at least one selected from the group consisting of X, Y, and Z" can include X alone, Y alone, Z alone, or any combination of two or more of X, Y, and Z. Similarly, phrases such as "at least one of A and B" and "at least one of A or B" can include A, B, or A and B. The term "and / or" as used herein generally includes any combination of one or more associated list items. For example, phrases such as "A and / or B" can include A, B, or A and B.
[0045] Although the terms "first," "second," "third," and the like may be used herein to describe various elements, components, regions, layers, and / or cross-sections, such elements, components, regions, layers, and / or cross-sections are not limited by such terms. These terms are used to distinguish one element, component, region, layer, or cross-section from another element, component, region, layer, or cross-section. Thus, a first element, component, region, layer, or cross-section described below may be referred to as a second element, component, region, layer, or cross-section without departing from the spirit and scope of the present invention. Describing an element as a "first" element does not require or imply the presence of a second element or other elements. The terms "first," "second," and the like may also be used herein to distinguish different categories or sets of elements. For clarity, the terms "first," "second," and the like may each represent a "first category (or first set)," a "second category (or second set)," etc.
[0046] The terminology used in this application is for the purpose of describing specific embodiments only and is not intended to be limiting of the present invention. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms, and the plural forms are intended to include the singular forms as well, unless the context clearly dictates otherwise. The terms "comprise," "include," and "have," when used herein, are meant to specify the presence of specified features, integers, and steps. These expressions do not exclude the presence or addition of one or more other functions, steps, operations, components, and / or groups thereof.
[0047] If one or more embodiments can be implemented differently, a particular process sequence may be performed differently from the order described. For example, two processes described in succession may be performed substantially simultaneously or in the reverse order from the described order.
[0048] The terms "substantially," "about," "approximately," and similar terms are used as terms of approximation, not degree, and imply that the measured or calculated value satisfies the inherent range of variation (e.g., variation due to limitations of the measurement system). For example, "about" could mean within one or more standard deviations, or within ±30%, ±20%, ±10%, or ±5% of the stated value.
[0049] Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. Terms defined in commonly used dictionaries, for example, should be interpreted as having a meaning consistent with their meaning in the relevant art and / or the context of this specification, and will not be interpreted in an idealized or overly formal sense unless explicitly defined herein.
[0050] FIG. 1 shows a measuring device (10) according to embodiments of the present disclosure, FIG. 2 schematically shows a controller (200) according to embodiments of the present disclosure, FIG. 3 shows an example of an irregular surface (S) according to embodiments of the present disclosure and an enlarged view thereof, FIG. 4 shows a state in which an irregular surface (S) is in contact with a surface element (E) according to embodiments of the present disclosure, FIG. 5 shows a case in which a contact point is inside a surface element (E), FIG. 6 shows a case in which a contact point (C) is outside a surface element (E), FIGS. 7 and 8 show a state in which a virtual line is set to select an initial surface element (E) when the contact point (C) is inside a surface element (E), FIGS. 9 and 10 show a state in which a virtual line is set to select an initial surface element (E) when the contact point (C) is outside a surface element (E), and FIGS. 11 and 12 show a state in which a contact point (C) is outside a surface element (E), when the initial surface A state in which a virtual line is set to select an element (E) is shown, FIG. 13 shows a method for measuring contact information according to embodiments of the present disclosure, FIG. 14 shows a method for selecting a surface element (E) according to embodiments of the present disclosure, FIG. 15 shows a method for determining whether a contact point (C) is located within a selected surface element (E) according to embodiments of the present disclosure, and FIG. 16 shows a state in which a measuring device (10) according to embodiments of the present disclosure visualizes the location of a contact point in real time.
[0051] A measuring device (10) according to embodiments of the present disclosure may be a device capable of measuring contact information (e.g., contact location, force, torque, etc.) of an object (O). The measuring device (10) may include a sensor (100) and a controller (200). The measuring device (10) may measure a force and torque applied to the object (O) with the sensor (100), and the controller (200) may determine where contact was made on the object (O) based on the force and torque measured by the sensor (100). For example, the object (O) may include a surface (e.g., an upper surface) on which contact is made, a surface having a regular shape or an amorphous surface (S) having an uneven or irregular shape. Here, the amorphous surface (S) may mean a surface whose shape cannot be expressed by a single or simple formula. The object (O) may be an arm, a gripper, a finger, an external frame, a display panel, etc. of a robot. The irregular surface (S) may be a surface on which the robot comes into contact with surrounding objects or people, or a touch surface of a display. Alternatively, the object (O) may include various types of vehicles or platforms, such as vehicles, ships, and aircraft, in addition to the robot.
[0052] The sensor (100) is in contact with the object (O) and can measure the force and torque applied to the object (O). For example, as shown in FIG. 1, the sensor (100) can be positioned below the object (O) on the opposite side of the irregular surface (S). The sensor (100) is placed on the base (B) and can measure the force and torque applied to the irregular surface (S) of the object (O). For example, the sensor (100) can be a 6-axis force / torque sensor. The sensor (100) can include a capacitive sensor, a strain gauge sensor, a piezoelectric sensor, an optical sensor, a potentiometer, etc.
[0053] In Fig. 1, the sensor (100) is shown as a flat disk shape, but the shape of the sensor (100) is not limited thereto. The sensor (100) is connected to the controller (200) with or without wires, and can transmit information about the detected force and torque to the controller (200). Here, the force f and torque m measured by the sensor (100) may be the same as or different from the force p and torque q actually applied to the contact point (C). For example, the force f may be the same as the force p, and the torque m may be the same as or different from the torque q depending on the position of the contact point (C).
[0054] The controller (200) receives information about the force and torque measured by the sensor (100) from the sensor (100), and based on the received information and the information about the irregular surface (S) known in advance, can determine in real time where on the irregular surface (S) contact was made and how much force and torque were applied and in what direction. The controller (200) can visually express the force and torque measured by the sensor (100). The controller (200) can define the irregular surface (S) of the object (O) as a plurality of surface elements (E) having a predetermined shape (i.e., having known kinematic information).
[0055] The controller (200) may utilize a direct circuit structure that executes each control function through one or more microprocessors or other control devices, such as memory, processors, logic circuits, and look-up tables. The controller (200) may be implemented as a part of a module, program, or code that includes one or more executable instructions for executing a specific logic function. The controller (200) may include or be implemented by a processor, such as a central processing unit, that executes each function or a microprocessor, etc. The controller (200) is a communication device that can transmit and receive data with an external device, etc., and may include one or more combinations of a digital modem, an RF modem, an antenna circuit, a Wi-Fi chip, and related software and / or firmware. For example, the controller (200) may be implemented in a user terminal such as a desktop, laptop, tablet PC, or smartphone, or a server, etc.
[0056] The controller (200) can define the irregular surface (S) of the object (O) as a plurality of surface elements (E) through modeling. Here, each surface element (E) is a two-dimensional element that knows kinematic information, and may be a circle, an ellipse, or a polygon such as a triangle, a square, or a pentagon. For example, the controller (200) can define the irregular surface (S) of the object (O) as a plurality of surface elements (E) using a triangle mesh structure technique. Each surface element (E) may be a triangle having the same or different size and / or shape. The irregular surface (S) may have a mesh structure composed of a plurality of surface elements (E). For convenience of explanation, the following description will focus on the case where the surface element (E) is a triangle. The method of defining the irregular surface (S) as a plurality of surface elements (E) is not particularly limited, and a known algorithm may be used. For example, the controller (200) may utilize a known algorithm for defining an irregular surface (S) as a plurality of triangular mesh structures. The controller (200) may pre-store a plane equation including each surface element (E) or calculate a plane equation including each surface element (E) during the modeling process.
[0057] When the surface elements (E) are triangles, each surface element (E) has three vertices (or vertices) and may include three edges (or corners) connecting two vertices. And, it may include one surface (or face) including three edges. The controller (200) may include information about the vertices, edges, surfaces, and normal vectors for the surfaces as kinematic information of each surface element (E).
[0058] When the sensor (100) detects contact, the controller (200) may select one surface element (E) among a plurality of surface elements (E) forming an irregular surface (S) and perform a step for measuring contact information. For example, the controller (200) selects one surface element (E) among the plurality of surface elements (E). Here, the process of selecting the selected surface element (E) may be performed randomly or according to predetermined conditions. For example, the controller (200) may set a virtual line based on the force and torque measured by the sensor (100) and select the surface element (E) closest to the virtual line among the plurality of surface elements (E). The selected surface element (E) may be the initial surface element (E). Here, the virtual line is parallel to the direction of the force detected by the sensor (100) and may pass through an arbitrary point r0. The point r0 may be a point calculated from the force f and torque m measured by the sensor (100).
[0059] The controller (200) can determine whether a contact point (C) is located within the selected surface element (E). For example, the controller (200) sets a virtual line passing through the selected surface element (E) and calculates the intersection of the virtual line and the surface element (E). Then, the controller (200) can determine whether the intersection is within three corners of the selected surface element (E), i.e., whether the boundary conditions of the three corners are satisfied. As described above, since the controller (200) already knows the kinematic information of each surface element (E), it can set the boundary conditions (corner equations) of the corners of the selected surface element (E). If the intersection is within the three corners of the selected surface element (E), it can be determined that the intersection is the actual contact point (C) where contact is made, and it can be determined that the contact point (C) is within the selected surface element (E). If the contact point (C) is outside the three edges of the selected surface element (E), the controller (200) can determine that the contact point (C) is outside the selected surface element (E).
[0060] The controller (200) can determine that the intersection is inside the selected surface element (E) if the intersection satisfies the boundary conditions of all three edges. In addition, the controller (300) can determine the intersection of the selected surface element (E) and the virtual line as the contact point (C). If the controller (200) determines that the intersection is outside the selected surface element (E), it can determine that the contact point (C) is not in the initial surface element (E) and select a new surface element (E) in which the contact point (C) is expected to exist. For example, if the contact point (C) satisfies the boundary conditions of two edges of the selected surface element (E) and does not satisfy the boundary condition of one edge (i.e., if the contact point (C) is inside two edges of the selected surface element (E) and outside one edge), the controller (200) can select, as the new surface element (E), a surface element (E) included in a plane that includes edges that do not satisfy the boundary conditions but does not include a vertex between the remaining two edges. For example, if the intersection does not satisfy the boundary conditions of two edges of the selected surface element (E) but satisfies the boundary condition of one edge (i.e., the contact point (C) is outside the two edges of the selected surface element (E) and inside the one edge), the controller (200) may select as a new surface element (E) a surface element (E) that is included in a plane that includes the vertices of the two edges without including the two edges that do not satisfy the boundary conditions. For example, if the intersection does not satisfy the boundary conditions of all three edges (i.e., the contact point (C) is outside the three edges of the selected surface element (E)), the controller (200) may select a new surface element (E). For example, the controller (200) may set a virtual line again and select the surface element (E) closest to the virtual line among the remaining surface elements (E) excluding the initially selected surface element (E).
[0061] The controller (200) can determine whether the intersection of the virtual line and the selected surface element (E) with respect to the newly selected surface element (E) is outside the selected surface element (E). If the intersection is outside the selected surface element (E), the controller (200) can repeat the process of selecting a new surface element (E) as described above. If the intersection is inside the selected surface element (E), the controller (200) can search for the location of the contact point (C) within the selected surface element (E) as described above.
[0062] The controller (200) may include a modeling unit (210), a memory unit (220), a calculation unit (230), a communication unit (240), and a display unit (250).
[0063] The modeling unit (210) can preprocess the irregular surface (S) of the object (O) and model it as a plurality of surface elements (E) having known kinematic information. For example, the modeling unit (210) can model the irregular surface (S) of the object (O) as a mesh structure composed of a plurality of triangles having the same or different sizes and / or shapes using the triangle mesh structure modeling technique described above. The modeling unit (210) can model the irregular surface (S) as a triangle mesh structure using a known modeling technique. The number, size, and shape of the surface elements (E) modeled by the modeling unit (210) are not particularly limited. The modeling unit (210) can set the number, size, and shape of the surface elements (E) differently depending on the size and shape of the irregular surface (S). For example, the modeling unit (210) can model the irregular surface (S) as 1,000 or more and 100,000 or less surface elements (E). As shown in Fig. 3, the irregular surface (S) can be defined by the modeling unit (210) as a mesh structure including a plurality of triangular surface elements (E). In Fig. 3, the surface elements (E) are shown to have the same size and shape, but the surface elements (E) may have different sizes and shapes depending on the size and shape of the irregular surface (S).
[0064] For example, as shown in FIG. 4, the surface element (E) defined by the modeling unit (210) is a triangle and can be located on a plane including three vertices (or vertexes) and three edges (or edges). When the surface element (E) is represented by Si, the three vertices can be represented as vSi1, vSi2, and vSi3, respectively, and the three edges can be represented as eSi1, eSi2, and eSi3, respectively. Here, the vertex and edge of each surface element (E) can be expressed as a vector whose origin is the measurement point P0 of the sensor (100). In addition, the plane including the surface element (E) can be represented as {Si}. The modeling unit (210) can store the kinematic information of each defined surface element (E) in the memory unit (220).
[0065] The modeling unit (210) may be implemented in the form of a program, application or other algorithm for modeling a mesh structure, or may be implemented as a device including these programs, applications or other algorithms.
[0066] The memory unit (220) can store information for searching for a contact point (C). For example, the memory unit (220) can store kinematic information of a plurality of surface elements (E) defined by the modeling unit (210). The memory unit (220) can store the vertices, edges, planes, and normal vectors of each surface element (E). In addition, the memory unit (220) can store information regarding the force and torque detected by the sensor (100).
[0067] The operation unit (230) can search for contact information (e.g., the location of the contact point (C)) of the irregular surface (S) based on the force and torque detected by the sensor (100). The operation unit (230) can select one surface element (E) among a plurality of surface elements (E) defined by the modeling unit (210) and determine whether the contact point (C) is located within the selected surface element (E).
[0068] The operation unit (230) can select one surface element (E) among a plurality of surface elements (E) to search for a contact point (C). For example, when a sensor (100) detects contact and measures force or torque and transmits it to the controller (200), the operation unit (230) can select a surface element (E) where a contact point (C) is expected to exist.
[0069] For example, as shown in FIG. 1, an external object or a human body can apply a force p and a torque q to a contact point (C) on an irregular surface (S) of an object (O). Here, the irregular surface (S) may be defined by a plurality of surface elements (E) by the modeling unit (210). The sensor (100) measures the applied force and torque and transmits them to the controller (200), and the calculation unit (230) can select a surface element (E) expected to have a contact point (C). For example, as shown in the enlarged view of FIG. 3, after selecting one surface element (Ei), it is determined whether there is a contact point (C). If the contact point (C) is not present in the surface element (Ei), the process of sequentially selecting other surface elements (Ei+1, Ei+2, Ei+3) and determining whether there is a contact point inside can be repeated.
[0070] The operation unit (230) can search for the location of the contact point (C) based on the information about the force and torque detected by the sensor (100) and the kinematic information about the surface element (E) defined by the modeling unit (210). For example, as shown in FIG. 4, when force p and torque q are applied to the contact point (C) of the irregular surface (S), the force f and force p measured by the sensor (100) have the same magnitude and direction, and the torque m and torque q measured by the sensor (100) have the following relationship.
[0071] m = q + cХp
[0072] Here, c is a vector of the contact point (C), and when the surface element (E) selected by the operation unit (230) is an arbitrary ith surface element (E), it can be represented as cSi, and the plane of the corresponding surface element (E) can be represented as Si. That is, the torque m measured by the sensor (100) can be the sum of the cross product of the torque q applied to the contact point (C) and the force p applied to the contact point (C).
[0073] In addition, the operation unit (230) can search for the location of the contact point (C) from the information about the surface elements (E) defined by the modeling unit (210) and stored in the memory unit (220), including three vertices (or vertices), three edges (or edges) of each surface element (E), and the plane and normal vector including these vertices and edges.
[0074] FIG. 5 illustrates a case where a contact point (C) is located within a surface element (E) selected by the operation unit (230). For example, the operation unit (230) selects an initial surface element (E) to search for the location of the contact point (C). Kinematic information regarding the corresponding surface element (E) may have already been calculated by the modeling unit (210) and stored in the memory unit (220). The operation unit (230) may load the kinematic information corresponding to the corresponding surface element (E) from the memory unit (220). For example, when the selected surface element (E) is an arbitrary ith surface element (E), each vertex may be vSi1, vSi2, vSi3, and each edge may be eSi1, eSi2, eSi3. In addition, the surface element (E) including each vertex and edge may be Si. In addition, the inner region of the surface element (E) corresponds to the inner region of each edge, i.e., it may be a region satisfying the boundary conditions B1(Si) > 0, B2(Si) > 0, B3(Si) > 0. As mentioned above, the calculation unit (230) can search for a contact point (C) satisfying B1(Si) > 0, B2(Si) > 0, B3(Si) > 0 based on the relationship between the force f and torque m measured by the sensor (100) and the force p and torque q applied to the contact point (C).
[0075] Fig. 6 illustrates a case where a contact point (C) is located outside a surface element (E) selected by the calculation unit (230). If the contact point csi does not satisfy the boundary conditions, the calculation unit (230) may select another surface element (E). For example, as shown in Fig. 6, the contact point csi may not satisfy the boundary conditions B1(Si) > 0, B2(Si) > 0, B3(Si) > 0 of the selected surface element (E). In Fig. 6, B3(Si) < 0, and thus the boundary conditions of the surface element (E) are not satisfied (if the boundary conditions of two of the three edges of the surface element (E) are not satisfied). In this case, the calculation unit (230) may determine that the contact point csi is not within the selected surface element (E) and select a new surface element (E).
[0076] When the sensor (100) detects contact and measures force and torque and transmits them to the controller (200), the operation unit (230) can select an initial surface element (E) among a plurality of surface elements (E) to search for a contact point (C). The operation unit (230) can randomly select one surface element (E) or select the surface element (E) according to predetermined conditions for selecting the surface element (E).
[0077] The calculation unit (230) can select an initial surface element (E) according to predetermined conditions in order to reduce the time and calculation for searching for a contact point (C). For example, the calculation unit (230) can set a virtual line parallel to the force f detected by the sensor (100). Here, the virtual line passes through the point r0, and the point r0 can be a point calculated from the force f and torque m measured by the sensor (100). In addition, the calculation unit (230) can select the surface element (E) having the shortest distance between the virtual line and the surface element (E) as the initial surface element (E). The calculation unit (230) can select the surface element (E) having the shortest distance between the point r0 and the center of gravity of the surface element (E) as the initial surface element (E). That is, the calculation unit (230) can set the virtual line established based on information about the force and torque measured by the sensor (100) and the distance between the virtual line and the surface element (E) (center of gravity of the surface element (E)) as conditions for selecting the surface element (E). Accordingly, the calculation unit (230) can effectively reduce the time and calculation for searching for the contact point (C) by selecting the initial surface element (E) so that the selected initial surface element (E) is adjacent to the surface element (E) having the actual contact point (C).
[0078] The steps for selecting the initial surface element (E) by the operation unit (230) may be as follows. First, the operation unit (230) calculates the virtual line c as follows.
[0079] c = r0 + λf
[0080] As mentioned before, m = q + cХf and can be expressed as r0 = (fХm) / (||f||2). That is, the virtual line c can be a line passing through the point r0 and parallel to the force f. Here, λ = nT(v - r0) / nTf is satisfied, where v represents a vertex of the surface element (E), n represents a normal vector of the surface element (E), and T represents a transpose matrix.
[0081] The next operation unit (230) can perform an operation to select the surface element (E) with the shortest distance between r0 and the center of gravity of the surface element (E) as the initial surface element (E), as shown below.
[0082]
[0083] Here, gi denotes the center of gravity of the surface element (E). The calculation unit (230) can select a surface element (E) satisfying the above conditions as an initial surface element (E) for searching for a contact point (C). That is, the calculation unit (230) sets a virtual line passing through the point r0 based on information about the force f and torque m measured by the sensor (100), and selects the surface element (E) having the shortest distance between the virtual line and the surface element (E), thereby selecting a surface element (E) close to the surface element (E) where the actual contact point (C) is located as the initial surface element (E).
[0084] After selecting the initial surface element, the operation unit (230) can search for the location of the contact point (C) based on information about the force and torque detected by the sensor (100) and information about the surface element (E) defined by the modeling unit (210), as described above.
[0085] Figures 7 and 8 illustrate a case where there is a contact point (C) within a selected surface element (E).
[0086] As previously explained, the computation unit (230) can select an initial surface element (E). Here, if the surface element (E) is an arbitrary ith surface element, it can be represented as Si, and a plane including Si can be represented as {Si}. In addition, a virtual line can be represented as cSi. As previously explained, the virtual line cSi can be a virtual line passing through the point r0 and parallel to the force f.
[0087] The following calculation unit (230) can calculate the intersection of the virtual line cSi and the selected surface element (E) based on the kinematic information of the selected surface element (E), and determine whether the intersection is within the selected surface element (E), i.e., whether it satisfies the boundary conditions of the selected surface element (E). For example, the calculation unit (230) can determine whether the intersection satisfies the boundary conditions of the selected surface element (E) based on the vertices, edges, planes, and normal vectors of the selected surface element (E) as the kinematic information of the selected surface element (E). As shown in FIGS. 7 and 8, if the intersection satisfies the boundary conditions of the selected surface element (E), i.e., if the intersection is within three edges of the selected surface element (E), it can be determined that the contact point (C) is within the selected surface element (E), and the intersection can be determined as the contact point (C).
[0088] Figures 9 and 10 illustrate a case where a contact point (C) exists outside a selected surface element (E). For example, Figures 9 and 10 illustrate a case where a boundary condition of one of three edges of the selected surface element (E) is not satisfied.
[0089] As previously explained, the computation unit (230) can select an initial surface element (E). Here, if the surface element (E) is an arbitrary ith surface element, it can be represented as Si, and a plane including Si can be represented as {Si}. In addition, a virtual line can be represented as cSi. As previously explained, the virtual line cSi can be a virtual line passing through the point r0 and parallel to the force f.
[0090] The following calculation unit (230) can calculate the intersection of the virtual line cSi and the selected surface element (E) based on the kinematic information of the selected surface element (E), and determine whether the intersection is within the selected surface element (E), i.e., whether it satisfies the boundary conditions of the selected surface element (E). For example, the calculation unit (230) can determine whether the intersection satisfies the boundary conditions of the selected surface element (E) based on the vertices, edges, planes, and normal vectors of the selected surface element (E) as the kinematic information of the selected surface element (E). As shown in FIGS. 9 and 10, if the intersection does not satisfy the boundary conditions of the selected surface element (E), i.e., if the intersection does not satisfy the boundary conditions of one of the three edges of the selected surface element (E), it can be determined that the contact point (C) is not within the selected surface element (E).
[0091] In this case, the calculation unit (230) can select a new surface element (E) for searching for a contact point (C). For example, as illustrated in FIG. 10, the calculation unit (230) can select a new surface element (E) that includes one edge that satisfies the boundary condition and does not include a vertex between two edges that do not satisfy the boundary condition. The calculation unit (230) can calculate the intersection of the virtual line cSi and the selected surface element (E) again in the surface element (E), and determine whether the intersection is within the selected surface element (E), i.e., whether the boundary condition of the selected surface element (E) is satisfied. In the same manner, the calculation unit (230) can determine the intersection as the contact point (C) if the intersection is within the selected surface element (E), and can repeat the process of selecting a new surface element (E) if the intersection is outside the selected surface element (E).
[0092] Figures 11 and 12 illustrate a case where a contact point (C) is outside a selected surface element (E). For example, Figures 11 and 12 illustrate a case where boundary conditions of any two of the three edges of the selected surface element (E) are not satisfied.
[0093] As previously explained, the computation unit (230) can select an initial surface element (E). Here, if the surface element (E) is an arbitrary ith surface element, it can be represented as Si, and a plane including Si can be represented as {Si}. In addition, a virtual line can be represented as cSi. As previously explained, the virtual line cSi can be a virtual line passing through the point r0 and parallel to the force f.
[0094] The following calculation unit (230) can calculate the intersection of the virtual line cSi and the selected surface element (E) based on the kinematic information of the selected surface element (E), and determine whether the intersection is within the selected surface element (E), i.e., whether it satisfies the boundary conditions of the selected surface element (E). For example, the calculation unit (230) can determine whether the intersection satisfies the boundary conditions of the selected surface element (E) based on the vertices, edges, planes, and normal vectors of the selected surface element (E) as the kinematic information of the selected surface element (E). As shown in FIGS. 11 and 12, if the intersection does not satisfy the boundary conditions of the selected surface element (E), i.e., if the intersection does not satisfy the boundary conditions of two of the three edges of the selected surface element (E), it can be determined that the contact point (C) is not within the selected surface element (E).
[0095] In this case, the calculation unit (230) can select a new surface element (E) for searching the contact point (C). For example, as illustrated in FIG. 12, the calculation unit (230) can select a new surface element (E) that includes a vertex between two edges that satisfy the boundary condition and does not include one edge that does not satisfy the boundary condition. The calculation unit (230) can calculate the intersection of the virtual line cSi and the selected surface element (E) again in the surface element (E), and determine whether the intersection is within the selected surface element (E), i.e., whether the boundary condition of the selected surface element (E) is satisfied. In the same manner, the calculation unit (230) can determine the intersection as the contact point (C) if the intersection is within the selected surface element (E), and can repeat the process of selecting a new surface element (E) if the intersection is outside the selected surface element (E).
[0096] The step of determining whether the intersection of the selected surface element (E) and the virtual line satisfies the boundary condition may include the following.
[0097] First, the calculation unit (230) calculates the virtual line cSi passing through the selected surface element (E) as follows.
[0098] cSi = r0 + λSif
[0099] Here, λSi = niT(vSi - r0) / niTf is satisfied, where ni is a normal vector of the plane {Si} containing the plane Si of the surface element (E), T represents a transpose matrix, and vSi represents a vertex included in the surface element (E).
[0100] The next operation unit (230) sets the boundary conditions of each edge included in the surface element (E) as follows.
[0101] Bj(Si) = (cSi - vSij) × eSij, j ∈ 1, 2, 3}
[0102] Here, vSij represents each vertex included in the surface element (E), and eSij represents each edge included in the surface element (E), and can be expressed as follows.
[0103] eSi1 = vSi2 - vSi1, eSi2 = vSi3 - vSi2, eSi3 = vSi1 - vSi3
[0104] If csi is within an edge of the surface element (E), the boundary condition has a non-negative value. The calculation unit (230) can determine whether csi satisfies the boundary condition of the surface element (E) for each edge (e.g., three edges). For example, the calculation unit (230) can count the number of boundary conditions where the boundary condition has a non-negative value, and if the number is three, it can determine that the contact point (C) is within the selected surface element (E). If the number is two, the calculation unit (230) can determine that the contact point (C) is outside the selected surface element (E) and is outside one edge of the surface element (E). If the number is one, the calculation unit (230) can determine that the contact point (C) is outside the selected surface element (E) and is outside two edges of the surface element (E). If the number is zero, the calculation unit (230) can select a new surface element (E).
[0105] When the number of boundary conditions having non-negative values is two, the calculation unit (230) can select a new surface element (E) having a plane Si that includes one edge that does not satisfy the boundary condition and does not include a vertex between two edges that satisfy the boundary condition.
[0106] When the number of boundary conditions having non-negative values is 1, the operation unit (230) can select a new surface element (E) having a plane Si that includes a vertex between two edges that do not satisfy the boundary conditions and does not include two edges that do not satisfy the boundary conditions.
[0107] The communication unit (240) can enable the sensor (100) or other external devices and the controller (200) to transmit and receive data. For example, the communication unit (240) can be connected to the sensor (100) via wired or wireless means, receive information on force and torque measured by the sensor (100), and transmit the information to the memory unit (220) and the operation unit (230). Alternatively, the communication unit (240) can transmit contact information of the measured irregular surface (S) to an external device, etc.
[0108] The display unit (250) can indicate the position of the contact point (C) searched by the operation unit (230). For example, the display unit (250) is a display device included in the controller (200) and can indicate the position of the contact point (C) searched by the operation unit (230) in real time. The display unit (250) can visualize the surface element (E) of the irregular surface (S) defined by the modeling unit (210) based on the information, and can indicate the position of the contact point (C) on the visualized irregular surface (S) in real time.
[0109] A method for measuring contact information of an irregular surface (S) is described. The method for measuring contact information of an irregular surface (S) may include a step of defining a surface shape of an object (O) as a plurality of surface elements (E), a step of detecting contact of the surface, a step of selecting one of the plurality of surface elements (E), a step of determining whether a contact point (C) is located within the selected surface element (E), a step of searching for a location of the contact point (C) within the selected surface element (E), and a step of selecting a new surface element (E). The method for measuring contact information may utilize a measuring device (10).
[0110] First, the surface of the object (O) whose surface information is to be measured is modeled. For example, the controller (200) (e.g., the modeling unit (210)) can define the irregular surface (S) of the object (O) as a plurality of surface elements (E). The controller (200) can model the irregular surface (S) of the object (O) as a plurality of surface elements (E) so as to have a triangular mesh structure, and can store information about each surface element (E) (e.g., the position of a vertex, an edge, the equation of the surface element (E) and the plane including the surface element (E), etc.).
[0111] The following sensor (100) is positioned on the object (O). The sensor (100) is positioned on the surface of the object (O), for example, on the opposite side of the irregular surface (S), and on a flat base (B). The sensor (100) may be positioned at the center of the object (O). In addition, the sensor (100) may be connected to the controller (200) either wired or wirelessly.
[0112] The following sensor (100) detects contact applied to an irregular surface (S). For example, when a force p and a torque q are applied to a contact point (C) of the irregular surface (S), the sensor (100) can detect a force f and a torque m. Here, the force p and the force f may have the same magnitude as the force. The sensor (100) can transmit information about the measured force and torque to the controller (200).
[0113] The controller (200) (operating unit (230)) searches for the location of the contact point (C) based on information about the force and torque measured by the sensor (100) and information about the irregular surface (S) known in advance. For example, the controller (200) first selects one surface element (E) from among a plurality of surface elements (E). In order to reduce the computation required to search for the contact point (C), the controller (200) may use an algorithm for selecting the initial surface element (E). For example, the controller (200) may set a virtual line parallel to the force measured by the sensor (100), and select the surface element (E) having the shortest distance between the virtual line and the center of gravity of the surface element (E) as the initial surface element (E).
[0114] The next controller (200) determines whether there is a contact point (C) within the selected surface element (E). The controller (200) can set a virtual line parallel to the force measured by the sensor (100) and determine whether the intersection of the virtual line and the selected surface element (E) is within the selected surface element (E). If the intersection is within the selected surface element (E), the controller (200) can determine the intersection as a contact point (C).
[0115] If there is no contact point (C) within the selected surface element (E), the controller (200) can select a new surface element (E). The controller (200) can select the new surface element (E) based on whether the intersection satisfies the boundary conditions of the selected surface element (E) (e.g., the number of edges that satisfy the boundary conditions).
[0116] Figure 16 illustrates how a measurement device actually detects a contact point on an irregular surface in real time. As shown in Figure 16, when contact is made with an object having an irregular surface (e.g., a robotic arm), the sensor detects this in real time and transmits it to the controller, which then proceeds to detect the contact point in real time through a series of steps described above. Furthermore, the controller can visualize and display the detected contact point in real time. Furthermore, the force and torque applied to the object can be visualized in real time as a continuous line (Continuous Path, Arrow Sign, Smile Sign in Figure 16) without interruption.
[0117] While the present invention has been described with reference to the embodiments illustrated in the drawings, these are merely examples. Those skilled in the art will readily appreciate that various modifications and equivalent alternative embodiments are possible based on the embodiments described herein. Therefore, the true scope of technical protection of the present invention should be determined based on the appended claims.
[0118] The present invention can be used in the industry for a device and method for measuring contact information of an irregular surface.
Claims
1. A sensor attached to a surface included in the target; and A controller connected to the above sensor; The above controller A contact information measuring device that defines the shape of the surface of the above target object as a plurality of surface elements that know kinematic information, selects one of the plurality of surface elements when contact is made with the surface, determines whether the contact point is within the selected surface element, and searches for the contact point within the selected surface element with which contact was made based on information about the surface element and the force and torque detected by the sensor.
2. In paragraph 1, The above controller is a contact information measuring device that sets a virtual line parallel to the direction of the force detected by the sensor to select a surface element for searching for a contact point, and selects a surface element having the shortest distance between the virtual line and the center of gravity of the surface element.
3. In paragraph 2, The above controller If the intersection of the selected surface element and the virtual line satisfies the boundary conditions of the three edges, the contact point is judged to be within the selected surface element, and the location of the contact point within the surface element is searched for. A contact information measuring device that determines that the contact point is outside the selected surface element and searches for a new surface element if the intersection of the above virtual line and the selected surface element does not satisfy the boundary conditions of at least one of the three edges.
4. In paragraph 3, The above controller, A contact information measuring device that selects a surface element as a new surface element, which includes one edge that does not satisfy the boundary condition and does not include a vertex between two edges that do not satisfy the boundary condition, when the above intersection does not satisfy the boundary condition of one edge among three edges but satisfies the boundary condition of two edges.
5. In paragraph 3, The above controller, A contact information measuring device that selects a surface element that does not include the two edges that do not satisfy the boundary conditions and includes a vertex located between the two edges that do not satisfy the boundary conditions as a new surface element when the above intersection does not satisfy the boundary conditions of two edges out of three edges and satisfies the boundary conditions of one edge.
6. A step in which the controller defines the shape of the surface of the target object as a plurality of surface elements that know kinematic information; A step in which a sensor detects contact with an object; A step of the above controller selecting one surface element among a plurality of surface elements; a step of the controller determining whether the contact point is within the selected surface element; and A method for measuring contact information, comprising: a step of the controller searching for a contact point within a selected surface element where contact has been made based on information about the surface element and the force and torque detected by the sensor; 7. In paragraph 6, The step of selecting the surface element is a method for measuring contact information, wherein the controller sets a virtual line parallel to the direction of the force detected by the sensor, and selects the surface element having the shortest distance between the centers of gravity of the surface elements.
8. In paragraph 7, The step of determining whether the above contact point is within the selected surface element comprises: if the controller determines that the contact point is within the selected surface element if the intersection of the virtual line and the selected surface element satisfies the boundary conditions of three edges, the controller searches for the location of the contact point within the surface element; A method for measuring contact information, further comprising the step of determining whether the contact point is within the selected surface element, if the intersection of the virtual line and the selected surface element does not satisfy the boundary condition of at least one of the three edges, determining that the contact point is outside the selected surface element and searching for a new surface element.
9. In paragraph 8, A method for measuring contact information, wherein, in the step of determining whether the contact point is within the selected surface element, if the intersection does not satisfy the boundary condition of one edge among three edges but satisfies the boundary conditions of two edges, the controller further comprises, in the step of searching for the new surface element, a step of selecting, as a new surface element, a surface element that does not include a vertex between two edges that do not satisfy the boundary conditions.
10. In paragraph 8, A method for measuring contact information, wherein, in the step of determining whether the contact point is within the selected surface element, if the intersection does not satisfy the boundary conditions of two of three edges but satisfies the boundary condition of one edge, in the step of searching for the new surface element, the controller selects, as a new surface element, a surface element that does not include two edges that do not satisfy the boundary conditions and includes a vertex between two edges that do not satisfy the boundary conditions.
Citation Information
Patent Citations
Robot system
JP2023073764A
Off-center sensor target region
KR101952342B1
Systems and methods for assessing locations of multiple touch inputs
KR1020110015585A
Enhanced pointing interface
US20120188285A1
Method and apparatus for providing haptic feedback utilizing multi-actuated waveform phasing
US20140071079A1