How to determine the minimum "Arrival Distance" given a maximum velocity, acceleration and jerk along with an initial velocity and acceleration?
Problem
Given the following:
* $A$ - maximum acceleration.
* $J$ - constant jerk (the rate of change of acceleration).
* $v$ - initial velocity.
* $a$ - initial acceleration (where, in practice, $a ∈ [-A, A]$, however this is not a requirement for a solution).
How might one determine the shortest possible "stopping distance", i.e. the distance traveled at the end of which both velocity and acceleration simultaneously arrive at 0?
Edit: <PERSON> kindly pointed out that "stopping distance" isn't the correct term here. Perhaps "arrival distance" is better suited? This is because I'm looking for a solution where, not only velocity reaches 0, but both velocity and acceleration reach 0.
Attempt
So far, I've been using the following equation to solve this within my application:
$d = \frac{v^2}{2A} + \frac{vA}{2J}$
However, I realised that while this accounts for an initial velocity, it does not account for an initial acceleration and instead assumes 0. What I would really like to achieve is to solve distance for both an initial velocity $v$ and an initial acceleration $a$.
I also know that when $a=0$ and $v=0$, $d=0$.
The paper On-Line Planning of Time-Optimal, Jerk-Limited Trajectories by Haschke et al. hints at the complexity of this problem in the introduction:
While <PERSON> et al. [7] developed an online capable method to compute time- optimal trapezoidal velocity profiles from arbitrary initial conditions, <PERSON> and <PERSON> [6] presented an approach to compute jerk-limited trajectories, but only zero initial acceleration conditions could be handled. 563
To the best of our knowledge, a universal solution to compute time-optimal third-order trajectories with arbitrary initial conditions was not available till now, because the lack of symmetric zero boundary conditions enormously complicates the problem.
I plan to keep reading through this and report back with any useful findings.
I'll continue to update this section with edits showing my work in progress when I resume work tomorrow, if no-one beats me to it in the meantime.
Context
I'm attempting to improve a motion profile for some linear actuators that are present in an art installation that I'm working on in a small team.
Previously, the linear actuator was driven using a constant acceleration selected by us. We could achieve fast movement nicely with high acceleration, and we could achieve slow movement nicely with slow acceleration, however slow movement with a high acceleration resulted in a lot of "chatter" from the motor. The idea is to apply a constant jerk rather than a constant acceleration to achieve smoother behaviour at both low and high speeds.
I think my implementation is nearing completion, however I've just noticed that my current arrival distance function (above) does not account for initial acceleration. As a result, the arrival distance appears accurate at high velocities, however is very inaccurate at low velocities with high acceleration. This error results in late deceleration, which results in overshooting, which in turn results in the motor eternally oscillating around the target position. I believe a proper solution for arrival distance will at least take us a step closer toward the behaviour we wish to achieve.
Any assistance/guidance is greatly appreciated! 234