Minimum Distance Point-Surface

It’s easy to know if you are “in” or “out” of a single plane

  • Knowing your position (: avatar) or (: haptic point), and the formula of the plane: we can calculate:

and define as “in” if the result is or “out” if the result is .


Algorithm

Given haptic point (same as just a different name):

the minimum distance from the place ( can be computed as the distance of from (: proxy) where is defined as the projection of onto .


Optimization Problem

We can also see this as an optimization problem:

Then:

We can reformulate the problem as searching for:

Being vectors and we can write:

And also we rewrite the constraint: , () as:

Then the problem becomes:

Lagrangian Approach:

Using the HCR - Lagrangian Theorem we can rewrite the problem as:

and search for its minimum, so:

Then we have:

So, with a bit of substitutions we obtain:


Triangular Meshes

We can create a plane with 3 points (~ex.: : triangle 1, formed by )

  • So given the triangle we can use the previous formula to calculate the minimum distance from .

So I can receive an haptic feedback proportional to the distance

  • For a smooth object there are no problem with this approach.

Spigolar Objects

Notice how for a small displacement of the direction of the Force changes drastically.


Proxy Algorithm

  • IDEA: Remember where you entered from.
  1. In case of collision, for the first time @ ( ) we compute the normal proxy and we take the tangent circle for the proxy given a small radius (in the figure below )

  2. Then given the haptic point @ we find which triangle in my triangular mesh is “ACTIVE” The ACTIVE triangle is the one that intersect the segment

Let’s see how this proxy algorithm changes things:

  • In the new case the proxy cannot change triangle so easily, so it results in a more smooth experience.
How do we change triangle with the new algorithm?

Let’s take for example the following passages:

As we can see there is a small error for but it’s accepted. And for we have indeed changed triangle, now the second triangle is active.


Friction Cone

A way to visualize friction

The friction cone depends on the (Force Down-ward) and the friction coefficient.


Proxy Algorithm with Friction Cones:

If C_p(k)$ then:

  • The proxy does not move.

Static and Kinematic Friction

Each material interaction has 2 friction coefficients one static () and one kinematic (), the first is to break the stacity and the second to determine the friction force that slows down the motion.

~ Example: wood on wood: , glass on glass: , sky on dry snow: ,

When the object is moving and (usually true) we approximate the static friction coefficient to 0, so we do not need to calculate it, so