Methods and systems for haptic rendering and creating virtual fixtures from point clouds
First Claim
Patent Images
1. A method, comprising:
- receiving first depth data about an environment at a computing device;
generating a first point cloud from the first depth data using the computing device;
determining a haptic interface point (HIP) using the computing device;
determining, using the computing device, a first force vector between the HIP and the first point cloud utilizing a proxy, wherein the proxy is configured to select zero or more points near the proxy, wherein the proxy comprises a center of the proxy and at least three scale radii r1, r2, and r3 with r1<
r2≦
r3, and wherein determining the first force vector comprises;
determining a closest point within the first point cloud to the center of the proxy, and a closest distance between the closest point and the center of the proxy;
selecting one or more movement states based on at least one comparison between the closest distance and at least one radius of the three radii;
determining a surface-normal set of points based on points within the first point cloud and within the radius r3 of the center of the proxy;
determining a sum of a number of surface-normal estimates, wherein each surface-normal estimate in the number of surface-normal estimates comprises an estimate of a surface normal between a surface-normal point in the set of surface-normal points and the proxy; and
determining an estimated surface normal n between the proxy and the first point cloud based on the sum of the number of surface-normal estimates;
determining a HIP vector u between the HIP and the center of the proxy, and a negated HIP vector −
u;
determining an angle θ
between −
u and n;
determining whether the angle θ
exceeds a predetermined angle θ
threshold and that the HIP is not at the center of the proxy; and
in response to determining that the angle θ
exceeds the predetermined angle θ
threshold and that the HIP is not at the center of the proxy, moving the proxy;
sending, from the computing device, a first indication of haptic feedback based on the first force vector;
receiving second depth data about the environment at the computing device, wherein the second depth data differs from the first depth data;
generating a second point cloud from the second depth data using the computing device;
determining a second force vector between the HIP and the second point cloud using the computing device; and
sending, from the computing device, a second indication of haptic feedback based on the second force vector.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, articles of manufacture, and devices related to generating haptic feedback for point clouds are provided. A computing device receives depth data about an In-Contact environment. The computing device generates a point cloud from the depth data. The computing device determines a haptic interface point (HIP). The computing device determines a haptic interface point (HIP). The computing device determines a force vector between the HIP and point cloud. The computing device sends an indication of haptic feedback based on the force vector.
43 Citations
17 Claims
-
1. A method, comprising:
-
receiving first depth data about an environment at a computing device; generating a first point cloud from the first depth data using the computing device; determining a haptic interface point (HIP) using the computing device; determining, using the computing device, a first force vector between the HIP and the first point cloud utilizing a proxy, wherein the proxy is configured to select zero or more points near the proxy, wherein the proxy comprises a center of the proxy and at least three scale radii r1, r2, and r3 with r1<
r2≦
r3, and wherein determining the first force vector comprises;determining a closest point within the first point cloud to the center of the proxy, and a closest distance between the closest point and the center of the proxy; selecting one or more movement states based on at least one comparison between the closest distance and at least one radius of the three radii; determining a surface-normal set of points based on points within the first point cloud and within the radius r3 of the center of the proxy; determining a sum of a number of surface-normal estimates, wherein each surface-normal estimate in the number of surface-normal estimates comprises an estimate of a surface normal between a surface-normal point in the set of surface-normal points and the proxy; and determining an estimated surface normal n between the proxy and the first point cloud based on the sum of the number of surface-normal estimates; determining a HIP vector u between the HIP and the center of the proxy, and a negated HIP vector −
u;determining an angle θ
between −
u and n;determining whether the angle θ
exceeds a predetermined angle θ
threshold and that the HIP is not at the center of the proxy; andin response to determining that the angle θ
exceeds the predetermined angle θ
threshold and that the HIP is not at the center of the proxy, moving the proxy;sending, from the computing device, a first indication of haptic feedback based on the first force vector; receiving second depth data about the environment at the computing device, wherein the second depth data differs from the first depth data; generating a second point cloud from the second depth data using the computing device; determining a second force vector between the HIP and the second point cloud using the computing device; and sending, from the computing device, a second indication of haptic feedback based on the second force vector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An article of manufacture, comprising a physical computer-readable storage medium storing instructions that, upon execution by a processor, cause the processor to perform functions comprising:
-
receiving first depth data about an environment; generating a first point cloud from the first depth data; determining a haptic interface point (HIP); determining a first force vector between the HIP and the first point cloud utilizing a proxy, wherein the proxy is configured to select zero or more points near the proxy, wherein the proxy comprises a center of the proxy and at least three scale radii r1, r2, and r3 with r1<
r2≦
r3, and wherein determining the first force vector comprises;determining a closest point within the first point cloud to the center of the proxy, and a closest distance between the closest point and the center of the proxy; selecting one or more movement states based on at least one comparison between the closest distance and at least one radius of the three radii; determining a surface-normal set of points based on points within the first point cloud and within the radius r3 of the center of the proxy; determining a sum of a number of surface-normal estimates, wherein each surface-normal estimate in the number of surface-normal estimates comprises an estimate of a surface normal between a surface-normal point in the set of surface-normal points and the proxy; and determining an estimated surface normal n between the proxy and the first point cloud based on the sum of the number of surface-normal estimates; determining a HIP vector u between the HIP and the center of the proxy, and a negated HIP vector −
u;determining an angle θ
between −
u and n;determining whether the angle θ
exceeds a predetermined angle θ
_threshold and that the HIP is not at the center of the proxy; andin response to determining that the angle θ
exceeds the predetermined angle θ
_threshold and that the HIP is not at the center of the proxy, moving the proxy;sending a first indication of haptic feedback based on the first force vector; receiving second depth data about the environment, wherein the second depth data differs from the first depth data; generating a second point cloud from the second depth data; determining a second force vector between the HIP and the second point cloud; and sending a second indication of haptic feedback based on the second force vector.
-
-
17. A computing device, comprising:
-
a processor; and data storage, storing instructions that, upon execution by the processor, cause the computing device to perform functions comprising; receiving first depth data about an environment; generating a first point cloud from the first depth data; determining a haptic interface point (HIP); determining a first force vector between the HIP and the first point cloud utilizing a proxy, wherein the proxy is configured to select zero or more points near the proxy, wherein the proxy comprises a center of the proxy and at least three scale radii r1, r2, and r3 with r1<
r2≦
r3, and wherein determining the first force vector comprises;determining a closest point within the first point cloud to the center of the proxy, and a closest distance between the closest point and the center of the proxy; selecting one or more movement states based on at least one comparison between the closest distance and at least one radius of the three radii; determining a surface-normal set of points based on points within the first point cloud and within the radius r3 of the center of the proxy; determining a sum of a number of surface-normal estimates, wherein each surface-normal estimate in the number of surface-normal estimates comprises an estimate of a surface normal between a surface-normal point in the set of surface-normal points and the proxy; and determining an estimated surface normal n between the proxy and the first point cloud based on the sum of the number of surface-normal estimates; determining a HIP vector u between the HIP and the center of the proxy, and a negated HIP vector −
u;determining an angle θ
between −
u and n;determining whether the angle θ
exceeds a predetermined angle θ
_threshold and that the HIP is not at the center of the proxy; andin response to determining that the angle θ
exceeds the predetermined angle θ
_threshold and that the HIP is not at the center of the proxy, moving the proxy;sending a first indication of haptic feedback based on the first force vector; receiving second depth data about the environment, wherein the second depth data differs from the first depth data; generating a second point cloud from the second depth data; determining a second force vector between the HIP and the second point cloud; and sending a second indication of haptic feedback based on the second force vector.
-
Specification