Virtual fixture

From Wikipedia, the free encyclopedia
Jump to: navigation, search

A virtual fixture is an overlay of augmented sensory information on a workspace in order to improve human performance in direct and remotely manipulated tasks. Developed in the early 1990s, Virtual Fixtures was a pioneering platform in Virtual Reality and Augmented Reality technologies.

History[edit]

Louis Rosenberg testing Virtual Fixtures, one of the first Augmented Reality systems ever developed (1992).

Virtual Fixtures was first developed by Louis Rosenberg in 1992 at the USAF Armstrong Labs, resulting in the first fully immersive Augmented Reality system ever built.[1][2] 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.[2][3][4] 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.[5][6] 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.[7]

Concept[edit]

The concept of virtual fixtures was first introduced in (Rosenberg, 1993) as an overlay of abstract sensory information on a workspace in order to improve human performance in direct and remotely manipulated tasks.. The concept of abstract 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 on 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 fast 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 task.

The definition of virtual fixtures in (Rosenberg, 1993) 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 most often used to refer to a task dependent aid that 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 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.

Example of a forbidden regions virtual fixture

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,

Example of a guiding virtual fixture

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 ishard.

The stiffness of a virtual fixture can be soft or hard. A hard fixture completely constrains the motion to the fixture while a softer fixture allows some deviations from the fixture.

Virtual Fixture Control Law[edit]

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 \mathbf{p} = \left[ x,y,z \right] and end-effector orientation \mathbf{r} = \left[ r_\textrm{x}, r_\textrm{y}, r_\textrm{z} \right] expressed in the robot's base frame F_\textrm{r}. The input control signal \mathbf{u} to the robot is assumed to be a desired end-effector velocity \mathbf{v} = \dot{\mathbf{x}} = \left[ \dot{\mathbf{p}}, \dot{\mathbf{r}} \right]. In a tele-operated system it is often useful to scale the input velocity from the operator, \mathbf{v}_\textrm{op} 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 \mathbf{u} would be computed from the operator's input velocity \mathbf{v}_\textrm{op} as:

\mathbf{u} = c \cdot \mathbf{v}_\textrm{op}

If c=1 there exists a one-to-one mapping between the operator and the slave robot.

If the constant c is replaced by a diagonal matrix \mathbf{C} it is possible to adjust the compliance independently for different dimensions of \dot{\mathbf{x}}. For example, setting the first three elements on the diagonal of \mathbf{C} to c 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 \mathbf{x} \in \mathbb{R}^6 to \mathbf{p} \in \mathbb{R}^3. 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 \mathbf{D}(t) \in \mathbb{R}^{6 \times n},~ n \in [1..6] which represents the preferred direction at time t. Thus if n=1 the preferred direction is along a curve in \mathbb{R}^{6}. Likewise, n=2 would give preferred directions that span a surface. From \mathbf{D} two projection operators can be defined (Marayong et al., 2003), the span and kernel of the column space:


\begin{align}
\textrm{Span}(\mathbf{D}) & \equiv \left[ \mathbf{D} \right] = 
\mathbf{D}(\mathbf{D}^T\mathbf{D})^{-1}\mathbf{D}^T \\
\textrm{Kernel}(\mathbf{D}) & \equiv \langle \mathbf{D} \rangle = \mathbf{I} - \left[ \mathbf{D} \right]
\end{align}

If \mathbf{D} 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 (Marayong et al., 2003), thus in practice the span is computed as:


\textrm{Span}(\mathbf{D}) \equiv \left[ \mathbf{D} \right] = \mathbf{D}(\mathbf{D}^T\mathbf{D})^{\dagger}\mathbf{D}^T

where \mathbf{D}^\dagger denotes the pseudo-inverse of \mathbf{D}.

If the input velocity is split into two components as:

\mathbf{v}_\textrm{D} \equiv \left[ \mathbf{D} \right]
\mathbf{v}_\textrm{op} \textrm{~and~} \mathbf{v}_\tau \equiv
\mathbf{v}_\textrm{op} -  \mathbf{v}_\textrm{D} = \langle \mathbf{D} \rangle
\mathbf{v}_\textrm{op}

it is possible to rewrite the control law as:

\mathbf{v} = c \cdot \mathbf{v}_\textrm{op} = c \left( \mathbf{v}_\textrm{D} +
\mathbf{v}_\tau \right)

Next introduce a new compliance that affects only the non-preferred component of the velocity input and write the final control law as:


\mathbf{v} = c \left( \mathbf{v}_\textrm{D} +
c_\tau \cdot \mathbf{v}_\tau \right) = 
c \left( \left[ \mathbf{D} \right] + c_\tau \langle \mathbf{D} \rangle \right)
\mathbf{v}_\textrm{op}

References[edit]

  1. ^ Noer, Michael (1998-09-21). "Desktop fingerprints". Forbes. Retrieved 22 April 2014. 
  2. ^ a b L. B. Rosenberg. The Use of Virtual Fixtures As Perceptual Overlays to Enhance Operator Performance in Remote Environments. Technical Report AL-TR-0089, USAF Armstrong Laboratory, Wright-Patterson AFB OH, 1992.
  3. ^ Rosenberg, L., "Virtual fixtures as tools to enhance operator performance in telepresence environments," SPIE Manipulator Technology, 1993.
  4. ^ Rosenberg, Louis B. (March 1993). The use of Virtual Fixtures to Enhance Operator Performance in Time Delayed Teleoperation. 
  5. ^ Rosenberg, "Virtual Haptic Overlays Enhance Performance in Telepresence Tasks," Dept. of Mech. Eng., Stanford Univ., 1994.
  6. ^ Rosenberg, Louis B. (18–22 Sep 1993). Virtual Reality Annual International Symposium, 1993. (Seattle, WA: IEEE): 76–82. doi:10.1109/VRAIS.1993.380795. 
  7. ^ Rosenberg, Louis (March 1993). The use of Virtual Fixtures to Enhance Operator Performance in Time Delayed Teleoperation.. 
  • L. B. Rosenberg. Virtual fixtures: Perceptual tools for telerobotic manipulation, In Proc. of the IEEE Annual Int. Symposium on Virtual Reality, pp. 76–82, 1993.
  • P. Marayong, M. Li, A. M. Okamura, and G. D. Hager. Spatial Motion Constraints: Theory and Demonstrations for Robot Guidance Using Virtual Fixtures, In Proc. of the IEEE Int. Conf. on Robotics and Automation, pp. 1270–1275, 2003.