Our aim is to generate forces at a rate of 500Hz from forces computed by the deformable object simulation at a rate of about 30Hz. A solution could have been to introduce a time delay which value is the time needed to compute one simulation step, and to interpolate retrospectively the computed forces. But two major drawbacks prevent us from using this solution. First, this delay is not acceptable for a surgical gesture. Second, the time needed to compute one simulation step can vary somewhat. Thus we choose to estimate the current force by extrapolating the previously computed ones.
The force extrapolation process is described next.
The simulation loop gives us a discrete series of parameters
representing the force
applied on
the tool in position
at time tn. The time step between two
successive tn is about 0.04s (visual real-time) and is not necessarily
constant. Good quality force feedback can be reached by an update of
the force at about 500Hz. So, we must choose an extrapolation function
providing an estimation of the force to apply to the tool at
time t
according to already known data
.
A very popular method for this kind of estimation is Kalman
filtering. As defined in preface of [10], Kalman filtering is
an optimal state estimation process, which gives a linear, unbiased,
and minimum error variance algorithm to estimate the unknown state of
a dynamic system from noisy data taken at discrete real-time intervals.
But in our case, the absence of random perturbations directs our
research towards a simple model of extrapolation.
In order to validate
our approach, we have tested different extrapolation functions.
Let us call ten+1 and
the time and the force estimated for the next data
triplet, extrapolating the force linearly is equivalent to interpolating
linearly on the interval of time
[tn,ten+1] the forces
.
Assuming that the simulation runs at a constant
frequency, we have:
This method gives better results than the previously described one. The
force discontinuities are less noticeable. But we must face a new problem, as
the applied forces are not the ones that the simulation of the deformable model
computes, they can be arbitrarily large. These force amplitude peaks occur
especially when simulation time step increases
.
The force changes are mainly due to the tool movement. In the case of a dynamic deformable model, the force also changes slightly over time, even if the tool doesn't move, when the model evolves towards its rest position. The tool position is thus vital for guessing what is the force applied to it by the deformable model. Although computing physically based deformation at the needed frequency is not yet possible, nothing prevents us from querying the force feedback device to know the tool position at such a high frequency. These observations lead us to develop a force estimator based on the tool position.
As the tool position is not a scalar value, we can not directly apply the
algorithm previously presented. A way to obtain comparable scalar values is to
project the current tool position
in
' on the line defined by the two
precedent tool position
and
(figure 2).
We can then consider the norm ratio for extrapolation:
We can notice that the error induced by the tool position projection is null,
when ,
and
are aligned, in other words when the tool
trajectory is a line.
All of these three extrapolation methods were implemented in our surgery
simulator. In order to compare and to evaluate them, several experiments were
performed.
The results are presented
in the next section.