<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Tree_homomorphism</id>
	<title>Tree homomorphism - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Tree_homomorphism"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Tree_homomorphism&amp;action=history"/>
	<updated>2026-06-02T17:04:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Tree_homomorphism&amp;diff=252540&amp;oldid=prev</id>
		<title>en&gt;Yobot: WP:CHECKWIKI error fixes + other fixes using AWB (10065)</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Tree_homomorphism&amp;diff=252540&amp;oldid=prev"/>
		<updated>2014-03-28T23:25:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=WP:CHECKWIKI&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:CHECKWIKI (page does not exist)&quot;&gt;WP:CHECKWIKI&lt;/a&gt; error fixes + other fixes using &lt;a href=&quot;/index.php?title=Testwiki:AWB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Testwiki:AWB (page does not exist)&quot;&gt;AWB&lt;/a&gt; (10065)&lt;/p&gt;
&lt;a href=&quot;https://en.formulasearchengine.com/index.php?title=Tree_homomorphism&amp;amp;diff=252540&amp;amp;oldid=16094&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>en&gt;Yobot</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Tree_homomorphism&amp;diff=16094&amp;oldid=prev</id>
		<title>en&gt;Cydebot: Robot - Moving category Trees (structure) to :Category:Trees (data structures) per CFD at Wikipedia:Categories for discussion/Log/2012 January 12.</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Tree_homomorphism&amp;diff=16094&amp;oldid=prev"/>
		<updated>2012-01-17T01:05:35Z</updated>

		<summary type="html">&lt;p&gt;Robot - Moving category Trees (structure) to &lt;a href=&quot;/index.php?title=Category:Trees_(data_structures)&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:Trees (data structures) (page does not exist)&quot;&gt;Category:Trees (data structures)&lt;/a&gt; per &lt;a href=&quot;/index.php?title=WP:CFD&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:CFD (page does not exist)&quot;&gt;CFD&lt;/a&gt; at &lt;a href=&quot;https://en.wikipedia.org/wiki/Categories_for_discussion/Log/2012_January_12&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Categories for discussion/Log/2012 January 12&quot;&gt;Wikipedia:Categories for discussion/Log/2012 January 12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Lead rewrite|date=August 2009}}&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;&amp;#039;virtual fixture&amp;#039;&amp;#039;&amp;#039; is an overlay of abstract sensory information on a workspace in order to improve the [[telepresence]] of a [[telerobotics|remotely manipulated]] task.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The concept of virtual fixtures was first introduced in (Rosenberg, 1993) as an overlay of&lt;br /&gt;
abstract sensory information on a workspace in order to improve the&lt;br /&gt;
[[telepresence]] in a [[telerobotics|telemanipulation]] task. The concept of abstract&lt;br /&gt;
sensory overlays is difficult to visualize and talk about, as a&lt;br /&gt;
consequence the virtual fixture metaphor was introduced. To understand&lt;br /&gt;
what a virtual fixture is an analogy with a real physical fixture such&lt;br /&gt;
as a ruler is often used. A simple task such as drawing a straight&lt;br /&gt;
line on a piece of paper on free-hand is a task that most humans are&lt;br /&gt;
unable to perform with good accuracy and high speed. However, the use&lt;br /&gt;
of a simple device such as a ruler allows the task to be carried out&lt;br /&gt;
fast and with good accuracy. The use of a ruler helps the user by&lt;br /&gt;
guiding the pen along the ruler reducing the tremor and mental load of&lt;br /&gt;
the user, thus increasing the quality of the task. &lt;br /&gt;
&lt;br /&gt;
The definition of virtual fixtures in&lt;br /&gt;
(Rosenberg, 1993) is much broader than simply providing&lt;br /&gt;
guidance of the end-effector. For example, auditory virtual fixtures&lt;br /&gt;
are used to increase the user awareness by providing audio clues that&lt;br /&gt;
helps the user by providing multi modal cues for localization of the&lt;br /&gt;
end-effector. Rosenberg argues that the success of virtual fixtures is&lt;br /&gt;
not only because the user is guided by the fixture, but&lt;br /&gt;
that the user experiences a greater presence and better localization&lt;br /&gt;
in the remote workspace. However, in the context of &lt;br /&gt;
human-machine collaborative systems, the term&lt;br /&gt;
virtual fixtures is most often used to refer to a task dependent aid&lt;br /&gt;
that guides the user&amp;#039;s motion along desired directions while&lt;br /&gt;
preventing motion in undesired directions or regions of the&lt;br /&gt;
workspace. This is the type of virtual fixtures that is described in this article.&lt;br /&gt;
&lt;br /&gt;
Virtual fixtures can be either &amp;#039;&amp;#039;guiding virtual fixtures&amp;#039;&amp;#039; or &lt;br /&gt;
&amp;#039;&amp;#039;forbidden regions virtual fixtures&amp;#039;&amp;#039;. A forbidden regions virtual fixture could be used, for&lt;br /&gt;
example, in a [[teleoperation|teleoperated]] setting where the operator has to drive a&lt;br /&gt;
vehicle at a remote site to accomplish an objective. If there are pits&lt;br /&gt;
at the remote site which would be harmful for the vehicle to fall into&lt;br /&gt;
forbidden regions could be defined at the various pits locations, thus&lt;br /&gt;
preventing the operator from issuing commands that would result in the&lt;br /&gt;
vehicle ending up in such a pit.&lt;br /&gt;
&lt;br /&gt;
[[Image:Forbidden regions virtual fixture.png|frame|center|Example of a forbidden regions virtual fixture]]&lt;br /&gt;
&lt;br /&gt;
Such illegal commands could easily be sent by an operator because of,&lt;br /&gt;
for instance, delays in the [[teleoperation]] loop, poor [[telepresence]] or&lt;br /&gt;
a number of other reasons.&lt;br /&gt;
&lt;br /&gt;
An example of a guiding virtual fixture could be when the vehicle must&lt;br /&gt;
follow a certain trajectory,&lt;br /&gt;
&lt;br /&gt;
[[Image:Guiding virtual fixture.png|frame|center|Example of a guiding virtual fixture]]&lt;br /&gt;
&lt;br /&gt;
The operator is then able to control the progress along the &lt;br /&gt;
&amp;#039;&amp;#039;preferred direction&amp;#039;&amp;#039; while motion along the &lt;br /&gt;
&amp;#039;&amp;#039;non-preferred direction&amp;#039;&amp;#039; is constrained. &lt;br /&gt;
&lt;br /&gt;
With both forbidden regions and guiding virtual fixtures the&lt;br /&gt;
&amp;#039;&amp;#039;stiffness&amp;#039;&amp;#039;, or its inverse the &amp;#039;&amp;#039;compliance&amp;#039;&amp;#039;, of the fixture can be adjusted. If the&lt;br /&gt;
compliance is high (low stiffness) the fixture is &amp;#039;&amp;#039;soft&amp;#039;&amp;#039;. On the other hand&lt;br /&gt;
when the compliance is zero (maximum stiffness) the fixture is&lt;br /&gt;
&amp;#039;&amp;#039;hard&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image: Soft hard virtual fixture.png|frame|center|The stiffness of a virtual fixture can be&lt;br /&gt;
soft or hard. A hard fixture completely constrains the motion to thefixture while a softer &lt;br /&gt;
fixture allows some deviations from the fixture.]]&lt;br /&gt;
&lt;br /&gt;
== Virtual Fixture Control Law ==&lt;br /&gt;
This section describes how a control law that implements virtual&lt;br /&gt;
fixtures can be derived. It is assumed that the robot is a purely&lt;br /&gt;
kinematic device with end-effector position &lt;br /&gt;
&amp;lt;math&amp;gt;\mathbf{p} = \left[ x,y,z \right]&amp;lt;/math&amp;gt;&lt;br /&gt;
and end-effector orientation &amp;lt;math&amp;gt;\mathbf{r} = \left[ r_\textrm{x}, r_\textrm{y}, r_\textrm{z} \right]&amp;lt;/math&amp;gt;&lt;br /&gt;
expressed in the robot&amp;#039;s base frame &amp;lt;math&amp;gt;F_\textrm{r}&amp;lt;/math&amp;gt;. &lt;br /&gt;
The input control signal &amp;lt;math&amp;gt;\mathbf{u}&amp;lt;/math&amp;gt; to the &lt;br /&gt;
robot is assumed to be a desired end-effector velocity &lt;br /&gt;
&amp;lt;math&amp;gt;\mathbf{v} = \dot{\mathbf{x}} = \left[ \dot{\mathbf{p}}, \dot{\mathbf{r}} \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
In a tele-operated system it is often useful to&lt;br /&gt;
scale the input velocity from the operator, &amp;lt;math&amp;gt;\mathbf{v}_\textrm{op}&amp;lt;/math&amp;gt; before&lt;br /&gt;
feeding it to the robot controller. If the input from the user is of&lt;br /&gt;
another form such as a force or position it must first be transformed&lt;br /&gt;
to an input velocity, by for example scaling or differentiating.&lt;br /&gt;
&lt;br /&gt;
Thus the control signal &amp;lt;math&amp;gt;\mathbf{u}&amp;lt;/math&amp;gt; would be computed from the&lt;br /&gt;
operator&amp;#039;s input velocity &amp;lt;math&amp;gt;\mathbf{v}_\textrm{op}&amp;lt;/math&amp;gt; as:&lt;br /&gt;
 &amp;lt;math&amp;gt;\mathbf{v} = c \cdot \mathbf{v}_\textrm{op}&amp;lt;/math&amp;gt;&lt;br /&gt;
If &amp;lt;math&amp;gt;c=1&amp;lt;/math&amp;gt; there exists a one-to-one mapping between the operator and the slave robot. &lt;br /&gt;
&lt;br /&gt;
If the constant &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is replaced by a diagonal matrix &amp;lt;math&amp;gt;\mathbf{C}&amp;lt;/math&amp;gt; it is&lt;br /&gt;
possible to adjust the compliance independently for different&lt;br /&gt;
dimensions of &amp;lt;math&amp;gt;\dot{\mathbf{x}}&amp;lt;/math&amp;gt;. For example, setting the first three&lt;br /&gt;
elements on the diagonal of &amp;lt;math&amp;gt;\mathbf{C}&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; and all other elements to zero&lt;br /&gt;
would result in a system that only permits translational motion and not&lt;br /&gt;
rotation. This would be an example of a hard virtual fixture that&lt;br /&gt;
constrains the motion from &amp;lt;math&amp;gt;\mathbf{x} \in \mathbb{R}^6&amp;lt;/math&amp;gt; to &lt;br /&gt;
&amp;lt;math&amp;gt;\mathbf{p} \in \mathbb{R}^3&amp;lt;/math&amp;gt;. If the rest of the elements on the&lt;br /&gt;
diagonal were set to a small value, instead of zero, the fixture&lt;br /&gt;
would be soft, allowing some motion in the rotational directions.&lt;br /&gt;
&lt;br /&gt;
To express more general constraints assume a time-varying matrix &lt;br /&gt;
&amp;lt;math&amp;gt;\mathbf{D}(t) \in \mathbb{R}^{6 \times n},~ n \in [1..6]&amp;lt;/math&amp;gt;&lt;br /&gt;
which represents the preferred direction at time &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;. Thus if &amp;lt;math&amp;gt;n=1&amp;lt;/math&amp;gt; the&lt;br /&gt;
preferred direction is along a curve in &amp;lt;math&amp;gt;\mathbb{R}^{6}&amp;lt;/math&amp;gt;. Likewise,&lt;br /&gt;
&amp;lt;math&amp;gt;n=2&amp;lt;/math&amp;gt; would give preferred directions that span a surface. From &amp;lt;math&amp;gt;\mathbf{D}&amp;lt;/math&amp;gt; two&lt;br /&gt;
projection operators can be defined (Marayong &amp;#039;&amp;#039;et al.&amp;#039;&amp;#039;, 2003), the&lt;br /&gt;
span and kernel of the column space:&lt;br /&gt;
 &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\textrm{Span}(\mathbf{D}) &amp;amp; \equiv \left[ \mathbf{D} \right] = &lt;br /&gt;
\mathbf{D}(\mathbf{D}^T\mathbf{D})^{-1}\mathbf{D}^T \\&lt;br /&gt;
\textrm{Kernel}(\mathbf{D}) &amp;amp; \equiv \langle \mathbf{D} \rangle = \mathbf{I} - \left[ \mathbf{D} \right]&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;math&amp;gt;\mathbf{D}&amp;lt;/math&amp;gt; does not have full column rank the span can not be computed,&lt;br /&gt;
consequently it is better to compute the span by using the&lt;br /&gt;
pseudo-inverse (Marayong &amp;#039;&amp;#039;et al.&amp;#039;&amp;#039;, 2003), thus in practice the span is computed as:&lt;br /&gt;
 &amp;lt;math&amp;gt;&lt;br /&gt;
\textrm{Span}(\mathbf{D}) \equiv \left[ \mathbf{D} \right] = \mathbf{D}(\mathbf{D}^T\mathbf{D})^{\dagger}\mathbf{D}^T&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{D}^\dagger&amp;lt;/math&amp;gt; denotes the pseudo-inverse of &amp;lt;math&amp;gt;\mathbf{D}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If the input velocity is split into two components as:&lt;br /&gt;
 &amp;lt;math&amp;gt;\mathbf{v}_\textrm{D} \equiv \left[ \mathbf{D} \right]&lt;br /&gt;
\mathbf{v}_\textrm{op} \textrm{~and~} \mathbf{v}_\tau \equiv&lt;br /&gt;
\mathbf{v}_\textrm{op} -  \mathbf{v}_\textrm{D} = \langle \mathbf{D} \rangle&lt;br /&gt;
\mathbf{v}_\textrm{op}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
it is possible to rewrite the control law as:&lt;br /&gt;
 &amp;lt;math&amp;gt;\mathbf{v} = c \cdot \mathbf{v}_\textrm{op} = c \left( \mathbf{v}_\textrm{D} +&lt;br /&gt;
\mathbf{v}_\tau \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next introduce a new compliance that affects only the non-preferred&lt;br /&gt;
component of the velocity input and write the final control law as:&lt;br /&gt;
 &amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{v} = c \left( \mathbf{v}_\textrm{D} +&lt;br /&gt;
c_\tau \cdot \mathbf{v}_\tau \right) = &lt;br /&gt;
c \left( \left[ \mathbf{D} \right] + c_\tau \langle \mathbf{D} \rangle \right)&lt;br /&gt;
\mathbf{v}_\textrm{op}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* L. B. Rosenberg. &amp;#039;&amp;#039;Virtual fixtures: Perceptual tools for telerobotic manipulation&amp;#039;&amp;#039;, In Proc. of the IEEE Annual Int. Symposium on Virtual Reality, pp.&amp;amp;nbsp;76–82, 1993.&lt;br /&gt;
* P. Marayong, M. Li, A. M. Okamura, and G. D. Hager. &amp;#039;&amp;#039;Spatial Motion Constraints: Theory and Demonstrations for Robot Guidance Using Virtual Fixtures&amp;#039;&amp;#039;, In Proc. of the IEEE Int. Conf. on Robotics and Automation, pp.&amp;amp;nbsp;1270–1275, 2003.&lt;br /&gt;
&lt;br /&gt;
{{No footnotes|date=August 2009}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Telepresence]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Virtual Fixture}}&lt;br /&gt;
[[Category:Perception]]&lt;br /&gt;
[[Category:Robotic sensing]]&lt;br /&gt;
[[Category:Virtual reality]]&lt;br /&gt;
[[Category:Control theory]]&lt;br /&gt;
[[Category:Cybernetics]]&lt;br /&gt;
[[Category:Robot control]]&lt;/div&gt;</summary>
		<author><name>en&gt;Cydebot</name></author>
	</entry>
</feed>