Virtual fixture

A virtual fixture is an overlay of augmented sensory information upon a user's perception of a real environment in order to improve human performance in both direct and remotely manipulated tasks. Developed in the early 1990s by Louis Rosenberg at the U.S. Air Force Research Laboratory (AFRL), Virtual Fixtures was a pioneering platform in virtual reality and augmented reality technologies.
History.
Virtual Fixtures was first developed by Louis Rosenberg in 1992 at the USAF Armstrong Labs, resulting in the first immersive augmented reality system ever built. Because 3D graphics were too slow in the early 1990s to present a photorealistic and spatially-registered augmented reality, Virtual Fixtures used two real physical robots, controlled by a full upper-body exoskeleton worn by the user. To create the immersive experience for the user, a unique optics configuration was employed that involved a pair of binocular magnifiers aligned so that the user's view of the robot arms were brought forward so as to appear registered in the exact location of the user's real physical arms. The result was a spatially-registered immersive experience in which the user moved his or her arms, while seeing robot arms in the place where his or her arms should be. The system also employed computer-generated virtual overlays in the form of simulated physical barriers, fields, and guides, designed to assist in the user while performing real physical tasks.
Fitts Law performance testing was conducted on batteries of human test subjects, demonstrating for the first time, that a significant enhancement in human performance of real-world dexterous tasks could be achieved by providing immersive augmented reality overlays to users.
Concept.
The concept of virtual fixtures was first introduced by Rosenberg (1992) as an overlay of virtual sensory information on a workspace in order to improve human performance in direct and remotely manipulated tasks. The virtual sensory overlays can be presented as physically realistic structures, registered in space such that they are perceived by the user to be fully present in the real workspace environment. The virtual sensory overlays can also be abstractions that have properties not possible of real physical structures. The concept of sensory overlays is difficult to visualize and talk about, as a consequence the virtual fixture metaphor was introduced. To understand what a virtual fixture is an analogy with a real physical fixture such as a ruler is often used. A simple task such as drawing a straight line on a piece of paper free-hand is a task that most humans are unable to perform with good accuracy and high speed. However, the use of a simple device such as a ruler allows the task to be carried out quickly and with good accuracy. The use of a ruler helps the user by guiding the pen along the ruler reducing the tremor and mental load of the user, thus increasing the quality of the results.
When the Virtual Fixture concept was proposed by Rosenberg to the U.S. Air Force in 1991, augmented surgery was an example use case, expanding the idea from a virtual ruler guiding a real pencil, to a virtual medical fixture guiding a real physical scalpel manipulated by a real surgeon. The objective was to overlay virtual content upon the surgeon's direct perception of the real workspace with sufficient realism that it would be perceived as authentic additions to the surgical environment and thereby enhance surgical skill, dexterity, and performance. A proposed benefit of virtual medical fixtures as compared to real hardware was that because they were virtual additions to the ambient reality, they could be partially submerged within real patients, providing guidance and/or barriers within unexposed tissues.
The definition of virtual fixtures by Rosenberg is much broader than simply providing guidance of the end-effector. For example, auditory virtual fixtures are used to increase the user awareness by providing audio clues that helps the user by providing multi modal cues for localization of the end-effector. Rosenberg argues that the success of virtual fixtures is not only because the user is guided by the fixture, but that the user experiences a greater presence and better localization in the remote workspace. However, in the context of human-machine collaborative systems, the term virtual fixtures is often used to refer to a task dependent virtual aid that is overlaid upon a real environment and guides the user's motion along desired directions while preventing motion in undesired directions or regions of the workspace. This is the type of virtual fixtures that is described in detail in the next section of this article.
Virtual fixtures can be either "guiding virtual fixtures" or "forbidden regions virtual fixtures". A forbidden regions virtual fixture could be used, for example, in a teleoperated setting where the operator has to drive a vehicle at a remote site to accomplish an objective. If there are pits at the remote site which would be harmful for the vehicle to fall into forbidden regions could be defined at the various pits locations, thus preventing the operator from issuing commands that would result in the vehicle ending up in such a pit.
Such illegal commands could easily be sent by an operator because of, for instance, delays in the teleoperation loop, poor telepresence or a number of other reasons.
An example of a guiding virtual fixture could be when the vehicle must follow a certain trajectory,
The operator is then able to control the progress along the "preferred direction" while motion along the "non-preferred direction" is constrained.
With both forbidden regions and guiding virtual fixtures the "stiffness", or its inverse the "compliance", of the fixture can be adjusted. If the compliance is high (low stiffness) the fixture is "soft". On the other hand, when the compliance is zero (maximum stiffness) the fixture is "hard".
Virtual fixture control law.
This section describes how a control law that implements virtual fixtures can be derived. It is assumed that the robot is a purely kinematic device with end-effector position formula_1 and end-effector orientation formula_2 expressed in the robot's base frame formula_3. The input control signal formula_4 to the robot is assumed to be a desired end-effector velocity formula_5. In a tele-operated system it is often useful to scale the input velocity from the operator, formula_6 before feeding it to the robot controller. If the input from the user is of another form such as a force or position it must first be transformed to an input velocity, by for example scaling or differentiating.
Thus the control signal formula_4 would be computed from the operator's input velocity formula_6 as:
 formula_9
If formula_10 there exists a one-to-one mapping between the operator and the slave robot.
If the constant formula_11 is replaced by a diagonal matrix formula_12 it is possible to adjust the compliance independently for different dimensions of formula_13. For example, setting the first three elements on the diagonal of formula_12 to formula_11 and all other elements to zero would result in a system that only permits translational motion and not rotation. This would be an example of a hard virtual fixture that constrains the motion from formula_16 to 
formula_17. If the rest of the elements on the diagonal were set to a small value, instead of zero, the fixture would be soft, allowing some motion in the rotational directions.
To express more general constraints assume a time-varying matrix formula_18 which represents the preferred direction at time formula_19. Thus if formula_20 the preferred direction is along a curve in formula_21. Likewise, formula_22 would give preferred directions that span a surface. From formula_23 two
projection operators can be defined, the span and kernel of the column space:
 formula_24
If formula_23 does not have full column rank the span can not be computed, consequently it is better to compute the span by using the pseudo-inverse, thus in practice the span is computed as:
 formula_26
where formula_27 denotes the pseudo-inverse of formula_23.
If the input velocity is split into two components as:
 formula_29
it is possible to rewrite the control law as:
 formula_30
Next introduce a new compliance that affects only the non-preferred
component of the velocity input and write the final control law as:
 formula_31