Sampling rate

For the first problem, time is discretized into steps, in which $ \Delta t$ is the step size or sampling rate. For example, $ \Delta t$ might be $ 1$ms, in which case the state can be calculated for times $ t = 0, 0.001, 0.002, \ldots$, in terms of seconds. This can be considered as a kind of frame rate for the physics engine. Each $ \Delta t$ corresponds to the production of a new frame.

As mentioned in Section 7.4, the VWG should synchronize the production of virtual world frames with rendering processes so that the world is not caught in an intermediate state with some variables updated to the new time and others stuck at the previous time. This is a kind of tearing in the virtual world. This does not, however, imply that the frame rates are the same between renderers and the physics engine. Typically, the frame rate for the physics engine is much higher to improve numerical accuracy.

Using the sampling rate $ \Delta t$, (8.20) is approximated as

$\displaystyle x_i((k+1)\Delta t) \approx x_i(0) + \sum_{j=1}^k {\dot x}_i(j \Delta t) \Delta t ,$ (8.21)

for each state variable $ x_i$.

It is simpler to view (8.21) one step at a time. Let $ x_i[k]$ denote $ x_i(k\Delta t)$, which is the state at time $ t = k\Delta t$. The following is an update law that expresses the new state $ x_i[k+1]$ in terms of the old state $ x_i[k]$:

$\displaystyle x_i[k+1] \approx x_i[k] + {\dot x}_i(k \Delta t) \Delta t ,$ (8.22)

which starts with $ x_i[0] = x_i(0)$.

Steven M LaValle 2020-11-11