Claims
- 1. In a virtual-reality system comprising a haptic interface between a user and a virtual environment, a method for stabilizing said interface comprising:
(a) determining the force being applied by a user to an actual element at the haptic interface at a current time increment; or determining movement of a user's body in contact with an actual element at the haptic interface over a current time increment; (b) when force was determined in step (a), calculating the apparent velocity of the movement which should be displayed by a virtual object in response to said force; and when movement was determined in step (a), calculating a force which should be applied back to the user through an actual element at the haptic interface in contact with the user in order to simulate resistance by a virtual object in the virtual environment to the movement of the user; (c) computing a Passivity Observer which is a measure of a positive amount of energy dissipated or a negative amount of energy produced by a virtual object at the haptic interface and/or between the haptic interface and the user; (d) determining for each case in paragraph (c) whether net energy is produced by the virtual object (i.e. whether the Passivity Observer is negative) or is dissipated by the virtual object (i.e. whether the Passivity Observer is positive); (e) when said determination shows that the virtual object is producing energy, computing a Passivity Controller to determine the amount of damping required to absorb the net energy computed as the Passivity Observer; (f) when force was determined in step (a), modifying the apparent velocity of the virtual object of step (b) and displaying said velocity such that the net energy computed as the Passivity Controller is absorbed; and when movement was determined in step (a), modifying the force of step (b) and applying said modified force back to the user such that the net energy computed as the Passivity Controller is absorbed; and (g) repeating the foregoing steps over successive time increments.
- 2. The method of claim 1 wherein in step (a), movement of the user's body is determined.
- 3. The method of claim 1 wherein in step (a) force is determined.
- 4. The method of claim 1 wherein in step (a) both movement and force are determined;
- 5. The method of claim 2 wherein movement is determined by detecting the position of the actual system element and comparing it with the position of the actual system element at the end of the previous time increment, and calculating the estimated velocity of the user's body.
- 6. The method of claim 5 also comprising applying a filter to the estimated velocity so as to remove noise in the velocity estimate.
- 7. The method of claim 6 wherein the filter is a threshold function which returns zero velocity if the computed estimated velocity is less than a small predetermined value.
- 8. The method of claim 2 wherein in step (f) current being supplied to a motor which powers the actual element applying force back to the user is modified in accordance with the amount of damping computed in step (e).
- 9. The method of claim 1 wherein the Passivity Observer is reset to zero according to a heuristic rule which determines when the Passivity Observer is no longer relevant to the state of contact between the virtual environment and the user.
- 10. The method of claim 9 wherein the heuristic rule is one that detects a state of lack of contact between the user and objects in the virtual environment.
- 11. The method of claim 10 wherein the state of lack of contact is detected when the amount of force being applied by the user exceeds a predetermined limit ε for a predetermined period of time τ.
- 12. The method of claim 11 wherein ε is between about 10−1 and about 10−7 times the maximum amount of force the system is capable of exerting.
- 13. The method of claim 12 wherein ε is about 10−3 times the maximum amount of force the system is capable of exerting.
- 14. The method of claim 12 wherein T is between the time increments being used for successive iterations of steps (a) through (f) and about 100 times said time increment.
- 15. The method of claim 14 wherein τ is about ten times said time increment.
- 16. In a teleoperation system comprising a computerized control system, a robot, and a haptic interface between a user and the control system, a method for stabilizing said teleoperation system, said method comprising:
(a) determining the movement of the user and/or of a robot end effector over a current time increment; or determining the force being applied by a user and/or by a robot end effector to a real environment at a current time increment; or determining the movement of one of the user and/or the robot end effector and determining the force being applied by the other of the user and/or the robot end effector over a current time increment; (b) when movement was determined in step (a), calculating the corresponding force which should be applied by an actual element at the haptic interface to the user, or by the robot end effector to the real environment, or both, in order to synchronize motion of the robot and the user and to transmit appropriate force information back to the user to simulate resistance to movement of the robot end effector; and when force being applied by a user or a robot end effector was determined in step (a), calculating the apparent velocity of the movement which should be applied to the user at the haptic interface and/or applied to the real environment via the robot end effector, in response to either or both of said forces; (c) computing a Passivity Observer which is a measure of a positive amount of energy dissipated or a negative amount of energy produced by the control system between the haptic interface and the robot; (d) determining for each case in paragraph (c) whether net energy is produced by the control system (i.e. whether the Passivity Observer is negative) or is dissipated by the control system (i.e. whether the Passivity Observer is positive); (e) when said determination shows that the control system is producing energy, computing a Passivity Controller to determine the amount of damping required to absorb the net energy computed as the Passivity Observer; (f) when movement of the user was determined in step (a), modifying the force of step (b) and applying a modified force back to the user from the haptic interface; when movement by the robot end effector was determined in step (a) modifying the force applied to the real environment by the robot end effector; when force applied by the robot end effector was determined in step (a), modifying the velocity of the robot end effector and displaying said velocity; said modifications being calculated so as to reduce the net energy of the virtual environment by the amount computed as the Passivity Controller; and (g) repeating the foregoing steps over successive time increments.
- 17. The method of claim 16 wherein force being exerted by the user is determined in step (a).
- 18. The method of claim 16 wherein force being exerted by the robot end effector is determined in step (a).
- 19. The method of claim 17 wherein movement of the robot end effector is determined in step (a).
- 20. The method of claim 17 wherein force being exerted by the robot end effector is determined in step (a).
- 21. The method of claim 18 wherein force being exerted by the user is determined in step
- 22. The method of claim 18 wherein movement of the user is determined in step (a).
- 23. The method of claim 13 wherein in step (a), the movements of the user's body and/or of the robot end effector are determined by detecting the positions of the actual system element and of the robot end effector and comparing them with the positions of the actual system element and/or robot end effector, respectively, at the end of the previous time increment, and calculating the estimated velocity of the user's body and/or of the robot end effector.
- 24. The method of claim 23 also comprising applying filters to the estimated velocities so as to remove noise in the velocity estimates.
- 25. The method of claim 24 wherein the filters are threshold functions which return zero velocity if the computed estimated velocity is less than a small predetermined value.
- 26. The method of claim 16 wherein the Passivity Observer is reset to zero according to a heuristic rule which determines when the Passivity Observer is no longer relevant to the state of contact between the virtual environment and the user or the virtual environment and the robot end effector.
- 27. The method of claim 26 wherein the heuristic rule is one that detects a state of lack of contact between the user and objects in the virtual environment.
- 28. The method of claim 27 wherein the state of lack of contact is detected when the amount of force being applied by the user or to the virtual environment by the robot end effector exceeds a predetermined limit ε for a predetermined period of time τ.
- 29. The method of claim 28 wherein ε is between about 10−1 and about 10−7 times the maximum amount of force the system is capable of exerting.
- 30. The method of claim 29 wherein ε is about 10−3 times the maximum amount of force the system is capable of exerting.
- 31. The method of claim 29 wherein τ is between the time increments being used for successive iterations of steps (a) through (f) and about 100 times said time increment.
- 32. The method of claim 31 wherein τ is about ten times said time increment.
- 33. A virtual-reality system comprising a haptic interface device providing a stabilized haptic interface, said system comprising: a processor operatively connected to said haptic interface device, input/output devices for transmitting signals from said digital computer to said haptic interface device, said haptic interface device being programmed with virtual reality modeling software capable of computing forces of interaction between actual components of said device and virtual objects in a virtual environment produced by said device; said system also comprising:
(a) computer-controlled force/torque sensors operatively connected to an actual element at the haptic interface to which a user applies force for determining the force being applied thereto by the user at a current time increment; and/or computer-controlled position sensors connected to said actual element for determining movement of a user's body in contact with said actual element over a current time increment; (b) a digital processor programmed as follows:
(i) when force was determined in paragraph (a), to receive a signal from said force/torque sensors and to calculate the apparent velocity of the movement which should be displayed by a virtual object in response to said force; and when movement was determined in paragraph (a), to receive a signal from said position sensors and to calculate a force which should be applied back to the user through an actual element at the haptic interface in contact with the user in order to simulate resistance by a virtual object in the virtual environment to the movement of the user; (ii) to compute a Passivity Observer which is a measure of a positive amount of energy dissipated or a negative amount of energy produced by a virtual object at the haptic interface; and (iii) to determine whether net energy is produced by the virtual object (i.e. whether the Passivity Observer is negative) or is dissipated by the virtual object (i.e. whether the Passivity Observer is positive); (iv) when said determination shows that the virtual object is producing energy, to compute a Passivity Controller to determine the amount of damping required to absorb the net energy computed as the Passivity Observer; (v) when force/torque sensors were used to determine force applied by the user, to modify the apparent velocity of the virtual object of paragraph (b) and display said velocity such that the net energy computed as the Passivity Controller is absorbed; and when position sensors were used to determine movement of the user, to produce a signal modifying the force of paragraph (b); (c) hydraulically or electrically powered means for receiving the signal of paragraph (v) and applying said modified force back to the user such that the net energy computed as the Passivity Controller is absorbed; (d) said processor also being programmed to repeatedly activate the sensors of paragraph (a) at successive time increments.
- 34. The system of claim 33 comprising position sensors used to determine movement of the user's body.
- 35. The system of claim 33 comprising force/torque sensors to determine force exerted by the user.
- 36. The system of claim 33 comprising both position and force/torque sensors.
- 37. The system of claim 34 wherein said processor is programmed to apply a filter to the estimated velocity so as to remove noise in the velocity estimate.
- 38. The system of claim 37 wherein the filter is a threshold function which returns zero velocity if the computed estimated velocity is less than a small predetermined value.
- 39. The system of claim 34 wherein said processor is programmed to provide a signal to modify current being supplied to a motor powering the actual element applying force back to the user in accordance with the amount of damping computed by said processor.
- 40. The system of claim I wherein said processor is programmed to reset the Passivity Observer to zero according to a heuristic rule which determines when the Passivity Observer is no longer relevant to the state of contact between the virtual environment and the user.
- 41. The system of claim 40 wherein the heuristic rule is one that detects a state of lack of contact between the user and objects in the virtual environment.
- 42. The system of claim 41 wherein the processor is programmed to register a state of lack of contact when the amount of force being applied by the user is less than a predetermined limit ε for a predetermined period of time τ.
- 43. The system of claim 42 wherein ε is between about 10−1 and about 10−7 times the maximum amount of force the system is capable of exerting.
- 44. The system of claim 43 wherein ε is about 10−3 times the maximum amount of force the system is capable of exerting.
- 45. The system of claim 43 wherein τ is between the time increments being used for successive iterations of paragraphs (a) through (f) and about 100 times said time increment.
- 46. The system of claim 14 wherein τ is about ten times said time increment.
- 47. A teleoperation system comprising:
(a) position sensors for determining the movement of the user and/or of a robot end effector over a current time increment; and/or force/torque sensors for determining the force being applied by a user and/or a robot end effector to a real environment at a current time increment; (b) a digital processor programmed as follows:
(i) when movement was determined in paragraph (a), to receive a signal from said position sensors and to calculate the corresponding force which should be applied by an actual element at the haptic interface to the user, or by the robot end effector to the real environment, or both, in order to synchronize motion of the robot and the user and to transmit appropriate force information back to the user to simulate resistance to movement of the robot end effector; and when force being applied by a user or a robot end effector was determined in paragraph (a), to receive a signal from said force/torque sensors and to calculate the velocity of the movement which should be applied to the user at the haptic interface and/or applied to the real environment via the robot end effector in response to either or both of said forces; (ii) to compute a Passivity Observer which is a measure of a positive amount of energy dissipated or a negative amount of energy produced by the control system between the haptic interface and the robot; (iii) to determine whether net energy is produced by the control system (i.e. whether the Passivity Observer is negative) or is dissipated by the control system (i.e. whether the Passivity Observer is positive); (iv) when said determination shows that the control system is producing energy, to compute a Passivity Controller to determine the amount of damping required to absorb the net energy computed by the Passivity Observer; (v) when position sensors were used to determine movement of the user in paragraph (a), producing a signal to modify the force back to the user from the virtual environment; and/or when position sensors were used to determine movement by the robot end effector in paragraph (a) producing a signal to modify the force applied to the real environment by the robot end effector; when force/torque sensors were used to determine force applied by the robot end effector in paragraph (a), to produce a signal modifying the velocity of the robot end effector of paragraph (b) and display said velocity; said modifications being calculated so as to reduce the net energy by the amount computed as the Passivity Controller; and (vi) to activate said sensors of paragraph (a) at successive time increments; and (c) hydraulically or electrically powered means for moving said actual element and/or said robot end effector in response to signals from said processor.
- 48. The system of claim 47 comprising force/torque sensors to determine force being exerted by the user in paragraph (a).
- 49. The system of claim 47 comprising force/torque sensors to determine force being exerted by the robot end effector in paragraph (a).
- 50. The system of claim 48 also comprising position sensors to determine movement of the robot end effector in paragraph (a).
- 51. The system of claim 48 also comprising force/torque sensors to determine force being exerted by the robot end effector in paragraph (a).
- 52. The system of claim 49 also comprising force/torque sensors to determine force being exerted by the user in paragraph (a).
- 53. The system of claim 49 comprising position sensors to determine movement of the user in paragraph (a).
- 54. The system of claim 47 comprising in paragraph (a), position sensors to determine the position of the user's body and/or of the robot end effector by detecting the positions of objects in the real environment and of the robot end effector and a processor programmed to compare them with the positions at the previous time increment, and with each other to determine their velocity both individually and relative to each other.
- 55. The system of claim 47 wherein said processor is also programmed to apply filters to the estimated velocities so as to remove noise in the velocity estimates.
- 56. The system of claim 55 wherein the filters are threshold functions which return zero velocity if the computed estimated velocity is less than a small predetermined value.
- 57. The system of claim 47 wherein the Passivity Observer is reset to zero according to a heuristic rule which determines when the Passivity Observer is no longer relevant to the state of contact between the control system and the user or the control system and the robot end effector.
- 58. The system of claim 57 wherein the heuristic rule is one that detects a state of lack of contact between the robot end effector and objects in the real environment.
- 59. The system of claim 58 wherein the state of lack of contact is detected when the amount of force being applied by the user by the robot end effector exceeds a predetermined limit ε for a predetermined period of time τ.
- 60. The system of claim 59 wherein ε is between about 10−1 and about 10−7 times the maximum amount of force the system is capable of exerting.
- 61. The system of claim 60 wherein ε is about 10−3 times the maximum amount of force the system is capable of exerting.
- 62. The system of claim 60 wherein τ is between the time increments being used for successive iterations of paragraphs (a) through (f) and about 100 times said time increment.
- 63. The system of claim 62 wherein τ is about ten times said time increment.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. patent application Ser. No. 60/232,134 filed Sep. 13, 2000 and U.S. patent application Ser. No. 60/292,135 filed May 18, 2001, both of which are incorporated herein by reference to the extent not inconsistent herewith.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60232134 |
Sep 2000 |
US |
|
60292135 |
May 2001 |
US |