Claims
- 1. A method of determining a depth of penetration of a first object and a second object, the method comprising acts of:
constructing a first representation of the first object and a second representation of the second object, the second representation defining at least a surface of the second object; determining at least an original Voronoi diagram of the second representation; detecting at least one intersection between the first representation and the second representation; and determining a distance from the at least one point of intersection to the surface of the second object based on a location of the at least one point of intersection within the original Voronoi diagram.
- 2. The method of claim 1, wherein the act of determining the distance includes an act of determining a penetration direction from the at least one intersection to the surface of the second object.
- 3. The method of claim 2, wherein the penetration direction is in a direction of least distance to the surface of the second object.
- 4. The method of claim 2, wherein the act of determining the distance and the direction includes an act of determining a penetration vector having a magnitude related to the extent of the intersection and a direction related to a direction that reduces the extent of the intersection.
- 5. The method of claim 1, further comprising an act of identifying a portion of the surface of the second object nearest the at least one intersection based on the location of the at least one intersection within the original Voronoi diagram.
- 6. The method of claim 5, wherein the act of identifying the portion of the surface includes an act of identifying the portion of the surface by verifying that the at least one intersection is within a Voronoi region associated with the portion of the surface of the second object.
- 7. The method of claim 5, wherein the act of identifying the portion of the surface of the second object includes identifying for each intersection of the at least one intersection a portion of the surface of the second object nearest the intersection based on the location of the intersection within the original Voronoi diagram.
- 8. The method of claim 7, further comprising an act of computing for each intersection of the at least one intersection at least one penetration vector having a magnitude related to a distance between the intersection and the portion of the surface of the second object nearest the intersection and a direction that tends to reduce the magnitude.
- 9. The method of claim 8, further comprising an act of computing at least one synthesized vector from the at least one penetration vector.
- 10. The method of claim 9, wherein the synthesized vector includes at least one translational force component and at least one rotational force component.
- 11. The method of claim 10, wherein the synthesized vector includes three translational force components and three rotational force components.
- 12. The method of claim 9, wherein the act of computing the at least one synthesized vector includes an act of computing the at least one synthesized vector based on a penetration vector of the penetration vectors having a greatest magnitude.
- 13. The method of claim 9, wherein the act of computing the at least one synthesized vector includes an act of computing the at least one synthesized vector based on a weighted sum of the at least one penetration vector.
- 14. The method of claim 1, wherein the act of constructing the first and second representations includes an act of representing at least one of the first object and the second object as a set of primitives.
- 15. The method of claim 14, wherein the set of primitives includes a point cloud.
- 16. The method of claim 14, wherein the set of primitives includes a bounding volume hierarchy.
- 17. The method of claim 14, wherein the set of primitives includes a polygonal surface.
- 18. The method of claim 2, wherein the act of constructing the representation of the first and second objects includes an act of representing the first object as a first set of primitives and the second object as a second set of primitives.
- 19. The method of claim 18, wherein the first set of primitives includes a first core representation and the second set of primitives includes a second core representation.
- 20. The method of claim 19, wherein the first set of primitives includes a first bounding volume hierarchy associated with the first core representation and the second set of primitives includes a second bounding volume hierarchy associated with the second core representation; and
wherein the act of detecting at least one intersection includes an act of determining whether each primitive of the first core representation is an intersecting primitive of the second core representation by traversing the first and second bounding volume hierarchies.
- 21. The method of claim 20, further comprising an act of identifying for each intersecting primitive a nearest primitive of the second core representation by determining where the intersecting primitive lies with the original Voronoi diagram.
- 22. The method of claim 21, wherein the act of determining the original Voronoi diagram includes an act of computing at least the original Voronoi diagram of the second core representation and wherein the act identifying the nearest primitive includes an act of verifying whether each intersecting primitive lies within the Voronoi region associated with a primitive of the second core representation.
- 23. The method of claim 19, wherein the second core representation includes a progenitor surface and an offset surface.
- 24. The method of claim 22, wherein the first core representation includes a point cloud and the second core representation is a polygonal surface.
- 25. The method of claim 24, further comprising identifying a nearest facet of the polygonal surface to each intersecting point of the point cloud by determining which Voronoi region of the original Voronoi diagram the intersecting point is occupied.
- 26. The method of claim 25, further comprising an act of computing for each intersecting point a penetration vector having a magnitude related to the distance between the intersecting point and the nearest facet and a direction that tends to reduce the magnitude.
- 27. The method of claim 22, further comprising an act of computing for each intersecting point at least one penetration vector having a magnitude related to the distance between the intersecting point and the nearest facet and a direction that tends to reduce the magnitude.
- 28. The method of claim 27, further comprising an act of computing at least one synthesized vector from the at least one penetration vector, the at least one synthesize vector including at least one translational force component and at least one rotational force component.
- 29. The method of claim 28, wherein the synthesized vector includes three translational force components and three rotational force components.
- 30. In a virtual environment including a haptic interface device having a controlled portion moveable with six degrees of freedom, a method of simulating an interaction between a controlled object and an independent object with six degrees of freedom, the method comprising acts of:
receiving control signals from the interface device, the control signals including pose information with six degrees of freedom; updating a first representation of the controlled object according to the pose information; determining a presence or an absence of intersection between the first representation of the controlled object and a second representation of the independent object; and computing at least one haptic rendering signal related to the presence or absence of intersection between the first representation and the second representation.
- 31. The method of claim 30, wherein the at least one rendering signal includes at least one force vector and a location of application of the at least one force vector.
- 32. The method of claim 30, wherein the at least one rendering signal includes at least one vector having at least one translational force component and at least one rotational force component.
- 33. The method of claim 30, wherein the first representation includes a first set of primitives and the second representation includes a second set of primitives.
- 34. The method of claim 33, wherein the act of determining a presence or an absence of intersection includes determining whether each primitive of the first set of primitives is an intersecting primitive of the second representation.
- 35. The method of claim 34, further comprising an act of computing at least one penetration vector for each intersecting primitive having a magnitude related to a distance between the intersecting primitive a nearest primitive of the second set of primitives and a direction that tends to reduce the magnitude.
- 36. The method of claim 35, wherein the at least one rendering signal includes at least one force vector synthesized from the at least one penetration vector.
- 37. The method of claim 36, wherein the at least one rendering signal includes at least one synthesized vector including at least one translational force component and at least one rotational force component.
- 38. The method of claim 37, wherein the synthesized vector includes three translational force components and three rotational force components.
- 39. The method of claim 35, wherein at least one synthesized vector is generated from the at least one penetration vector based on at least one of a weighted sum of the penetration vectors and a penetration vector of the at least one penetration vector having the greatest magnitude.
- 40. The method of claim 39, further comprising an act of computing a location of application on the first object to apply the synthesized vector.
- 41. The method of claim 40, wherein the at least one rendering signal includes the synthesized vector and the location of application.
- 42. A method of providing full-body contact between a first object and a second object, the method including acts of:
representing a first object by a first representation including a first set of primitives and a second object by a second representation including a second set of primitives; detecting a presence or an absence of an intersection between each of the first set of primitives and the second set of primitives; determining at least one penetration vector for each present intersection; and computing at least one synthesized vector from the at least one penetration vector, the at least one synthesized vector having at least one translational force component and at least one rotational force component.
- 43. The method of claim 42, wherein the synthesized vector includes three translational force components and three rotational force components.
- 44. The method of claim 42, wherein the act of representing a first and a second object includes representing an act of representing a first object by a first core representation and an associated first bounding volume hierarchy and a second object by a second core representation and an associated second bounding volume hierarchy.
- 45. The method of claim 44, wherein the act of determining a presence or an absence of an intersection includes an act of determining whether each primitive of the first core representation is an intersecting primitive of the second core representation by traversing the first and second bounding volume hierarchies.
- 46. The method of claim 45, further comprising an act of determining for each intersecting primitive a nearest primitive of the second core representation.
- 47. The method of claim 46, wherein each penetration vector of the at least one penetration vector is computed having a magnitude related to the distance between the intersecting primitive and the nearest primitive and a direction that tends to reduce the magnitude.
- 48. The method of claim 47, wherein the act of synthesizing the at least one force vector includes an act of computing at least one of a weighted average of the penetration vectors and a maximum magnitude penetration vector of the at least one penetration vector.
- 49. The method of the claim 48, wherein the act of computing a location of application includes computing a location of application based on a weighted average of locations of the intersecting primitives.
- 50. The method of claim 46, further comprising an act of computing at least an original Voronoi diagram of the second core representation.
- 51. The method of claim 50, wherein the act of determining the nearest primitive includes determining for each intersecting primitive a nearest primitive of the second representation by determining a location of each intersecting primitive within the original Voronoi diagram.
- 52. A computer readable medium encoded with a program for execution on at least one processor, the program, when executed on the at least one processor, performs a method for determining an extent of an intersection between a first object and a second object, the method comprising acts of:
constructing a first representation of the first object and a second representation of the second object, the second representation defining at least a surface of the second object; determining at least an original Voronoi diagram of the second representation; detecting at least one intersection between the first representation and the second representation; determining a distance from the at least one point of intersection to the surface of the second object based on a location of the at least one point of intersection within the original Voronoi diagram.
- 53. The computer readable medium of claim 52, wherein the act of determining the distance includes an act of determining a penetration direction from the at least one intersection to the surface of the second object.
- 54. The computer readable medium of claim 53, wherein the penetration direction is in a direction of least distance to the surface of the second object.
- 55. The computer readable medium of claim 53, wherein the act of determining the distance and the direction includes an act of determining a penetration vector having a magnitude related to the extent of the intersection and a direction related to a direction that reduces the extent of the intersection.
- 56. The computer readable medium of claim 52, further comprising an act of identifying a portion of the surface of the second object nearest the at least one intersection based on the location of the at least one intersection within the original Voronoi diagram.
- 57. The computer readable medium of claim 56, wherein the act of identifying the portion of the surface includes an act of identifying the portion of the surface by verifying that the at least one intersection is within a Voronoi region associated with the portion of the surface of the second object.
- 58. The computer readable medium of claim 56, wherein the act of identifying the portion of the surface of the second object includes identifying for each intersection of the at least one intersection a portion of the surface of the second object nearest the intersection based on the location of the intersection within the original Voronoi diagram.
- 59. The computer readable medium of claim 58, further comprising an act of computing for each intersection of the at least one intersection at least one penetration vector having a magnitude related to a distance between the intersection and the portion of the surface of the second object nearest the intersection and a direction that tends to reduce the magnitude.
- 60. The method of claim 59, further comprising an act of computing at least one synthesized vector from the at least one penetration vector.
- 61. The method of claim 60, wherein the synthesized vector includes at least one translational force component and at least one rotational force component.
- 62. The method of claim 61, wherein the synthesized vector includes three translational force components and three rotational force components.
- 63. The computer readable medium of claim 60, wherein the act of computing the at least one synthesized vector includes an act of computing the at least one synthesized vector based on a penetration vector of the penetration vectors having a greatest magnitude.
- 64. The computer readable medium of claim 60, wherein the act of computing the at least one synthesized vector includes an act of computing the at least one synthesized vector based on a weighted sum of the at least one penetration vector.
- 65. The computer readable medium of claim 52, wherein the act of constructing the first and second representations includes an act of representing at least one of the first object and the second object as a set of primitives.
- 66. The computer readable medium of claim 65, wherein the set of primitives includes a point cloud.
- 67. The computer readable medium of claim 65, wherein the set of primitives includes a bounding volume hierarchy.
- 68. The computer readable medium of claim 65, wherein the set of primitives includes a polygonal surface.
- 69. The computer readable medium of claim 52, wherein the act of constructing the representation of the first and second objects includes an act of representing the first object as a first set of primitives and the second object as a second set of primitives.
- 70. The computer readable medium of claim 69, wherein the first set of primitives includes a first core representation and the second set of primitives includes a second core representation.
- 71. The computer readable medium of claim 70, wherein the first set of primitives includes a first bounding volume hierarchy associated with the first core representation and the second set of primitives includes a second bounding volume hierarchy associated with the second core representation; and
wherein the act of detecting at least one intersection includes an act of determining whether each primitive of the first core representation is an intersecting primitive of the second core representation by traversing the first and second bounding volume hierarchies.
- 72. The computer readable medium of claim 71, further comprising an act of identifying for each intersecting primitive a nearest primitive of the second core representation by determining where the intersecting primitive lies with the original Voronoi diagram.
- 73. The computer readable medium of claim 72, wherein the act of determining the original Voronoi diagram includes an act of computing at least the original Voronoi diagram of the second core representation and wherein the act identifying the nearest primitive includes an act of verifying whether each intersecting primitive lies within the Voronoi region associated with a primitive of the second core representation.
- 74. The computer readable medium of claim 70, wherein the second core representation includes a progenitor surface and an offset surface.
- 75. The computer readable medium of claim 73, wherein the first core representation includes a point cloud and the second core representation is a polygonal surface.
- 76. The computer readable medium of claim 75, further comprising identifying a nearest facet of the polygonal surface to each intersecting point of the point cloud by determining which Voronoi region of the original Voronoi diagram the intersecting point is occupied.
- 77. The computer readable medium of claim 76, further comprising an act of computing for each intersecting point a penetration vector having a magnitude related to the distance between the intersecting point and the nearest facet and a direction that tends to reduce the magnitude.
- 78. The computer readable medium of claim 73, further comprising an act of computing for each intersecting point at least one penetration vector having a magnitude related to the distance between the intersecting point and the nearest facet and a direction that tends to reduce the magnitude.
- 79. The method of claim 78, further comprising an act of computing at least one synthesized vector ,from the at least one penetration vector, the at least one synthesize vector including at least one translational force component and at least one rotational force component.
- 80. The method of claim 79, wherein the synthesized vector includes three translational force components and three rotational force components.
- 81. The computer readable medium of claim 52 in combination with an interface device.
- 82. The combination of claim 81, wherein the interface device is capable of providing control signals related to a pose of the interface device.
- 83. The combination of claim 82, further comprising an act of receiving the control signals from the interface device and updating a pose of the first object according to the control signals.
- 84. The combination of claim 83, wherein the interface device has a moveable portion capable of variation over six degrees of freedom and wherein the control signals contain a component related to variation of the moveable portion in each of the six degrees of freedom.
- 85. The combination of claim 84, wherein the interface device is a haptic interface device.
- 86. The combination of claim 84, further comprising an act of providing haptic rendering signals to the haptic interface device.
- 87. The combination of claim 86, further comprising an act of computing at least one penetration vector from the at least one intersection, the at least one penetration vector having a magnitude related to the distance to the surface of the second object of the at least one intersection and a direction that tends to reduce the magnitude.
- 88. The combination of claim 87, wherein the haptic rendering signals are computed based on the at least one penetration vector.
- 89. The combination of claim 88, wherein the haptic rendering signals include at least one force vector synthesized from the at least one penetration vector and a location of application for the at least one force vector, the location of application related to at least one of a location on the first object and a location on the moveable portion of the haptic interface device.
- 90. A computer readable medium encoded with a program for execution on at least one processor, the program, when executed on the at least one processor, performing, in a virtual environment including a haptic interface device having a controlled portion moveable with six degrees of freedom, a method of simulating an interaction between a controlled object and an independent object with six degrees of freedom, the method comprising acts of:
receiving control signals from the interface device, the control signals including pose information with six degrees of freedom; updating a first representation of the controlled object according to the pose information; determining a presence or an absence of intersection between the first representation of the controlled object and a second representation of the independent object; computing at least one rendering signal related to the presence or absence of intersection between the first representation and the second representation.
- 91. The computer readable medium of claim 90, wherein the at least one rendering signal includes at least one force vector and a location of application of the at least one force vector.
- 92. The computer readable medium of claim 90, wherein the at least one rendering signal includes at least one force vector including at least one translational force component and at least one rotational force component.
- 93. The computer readable medium of claim 90, wherein the first representation includes a first set of primitives and the second representation includes a second set of primitives.
- 94. The computer readable medium of claim 93, wherein the act of determining a presence or an absence of intersection includes determining whether each primitive of the first set of primitives is an intersecting primitive of the second representation.
- 95. The computer readable medium of claim 94, further comprising an act of computing at least one penetration vector for each intersecting primitive having a magnitude related to a distance between the intersecting primitive a nearest primitive of the second set of primitives and a direction that tends to reduce the magnitude.
- 96. The computer readable medium of claim 95, wherein the at least one rendering signal includes at least one force vector synthesized from the at least one penetration vector.
- 97. The method of claim 96, wherein the at least one rendering signal includes at least one synthesized vector including at least one translational force component and at least one rotational force component.
- 98. The computer readable medium of claim 95, wherein at least one synthesized vector is generated from the at least one penetration vector based on at least one of a weighted sum of the penetration vectors and a penetration vector of the at least one penetration vector having the greatest magnitude.
- 99. The computer readable medium of claim 98, further comprising an act of computing a location of application on the first object to apply the synthesized vector.
- 100. The computer readable medium of claim 99, wherein the at least one rendering signal includes the synthesized vector and the location of application.
- 101. The computer readable medium of claim 90 in combination with the haptic interface device.
- 102. The combination of claim 101, wherein the at least one rendering signal is applied to the controlled portion of the haptic interface device.
- 103. The combination of claim 102, wherein the at least one rendering signal includes at least one force vector and a location of application of the force vector.
- 104. The combination of claim 103, wherein the at least one force vector is applied to the controlled portion of the haptic interface device at a location on the controlled portion according to the location of application.
- 105. A computer readable medium encoded with a program for execution on at least one processor, the program, when executed on the at least one processor, performing a method of providing full-body contact between a first object and a second object, the method comprising acts of:
representing a first object by a first representation including a first set of primitives and a second object by a second representation including a second set of primitives; detecting a presence or an absence of an intersection between each of the first set of primitives and the second set of primitives; determining at least one penetration vector for each present intersection; and computing at least one synthesized vector from the at least one penetration vector, the at least one synthesized vector having at least one translational force component and at least one rotational force component.
- 106. The computer readable medium of claim 105, wherein the act of representing a first and a second object includes representing an act of representing a first object by a first core representation and an associated first bounding volume hierarchy and a second object by a second core representation and an associated second bounding volume hierarchy.
- 107. The computer readable medium of claim 106, wherein the act of determining a presence or an absence of an intersection includes an act of determining whether each primitive of the first core representation is an intersecting primitive of the second core representation by traversing the first and second bounding volume hierarchies.
- 108. The computer readable medium of claim 107, further comprising an act of determining for each intersecting primitive a nearest primitive of the second core representation.
- 109. The computer readable medium of claim 108, wherein each penetration vector of the at least one penetration vector is computed having a magnitude related to the distance between the intersecting primitive and the nearest primitive and a direction that tends to reduce the magnitude.
- 110. The computer readable medium of claim 109, wherein the act of synthesizing the at least one force vector includes an act of computing at least one of a weighted average of the penetration vectors and a maximum magnitude penetration vector of the at least one penetration vector.
- 111. The computer readable medium of the claim 110, wherein the act of computing a location of application includes computing a location of application based on a weighted average of locations of the intersecting primitives.
- 112. The method of claim 108, further comprising an act of computing at least an original Voronoi diagram of the second core representation.
- 113. The method of claim 112, wherein the act of determining the nearest primitive includes determining for each intersecting primitive a nearest primitive of the second representation by determining a location of each intersecting primitive within the original Voronoi diagram.
- 114. The computer readable medium of claim 105 in combination with a haptic interface device.
- 115. The combination of claim 114, further comprising an act of providing rendering signals to the haptic interface device including the at least one force vector and the location of application.
- 116. The combination of claim 115, wherein the haptic interface device includes a controlled portion capable of movement with six degrees of freedom and the interface device provides control signals having components in each of the six dimensions over which the controlled portion is free to vary.
- 117. The combination of claim 116, further comprising an act of the receiving the control signals from the haptic interface device and updating a pose of the representation of the first object according to the control signals.
RELATED APPLICATIONS
[0001] This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application 60/327,940 filed Oct. 9, 2001, entitled “METHOD AND APPARATUS FOR DETECTING AND CORRECTING PENETRATION BETWEEN TWO OBJECTS,” by Krishnan Sriram, et al., and is a continuation-in-part of U.S. patent application Ser. No. 09/542,942, filed Mar. 31, 2000, entitled “HAPTIC INTERFACE SYSTEM FOR COLLISION DETECTION AND APPLICATION THEREFOR,” by Ho, et al. The entirety of the aforementioned applications are hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60327940 |
Oct 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09542942 |
Mar 2000 |
US |
Child |
10267907 |
Oct 2002 |
US |