If I only know $x$- and $y$- coordinates of every point on a trajectory without knowledge of time information, is there any way to approximate Cartesian acceleration angle at each point? Time interval between every two points is very small, ~0.03 second.
-
$\begingroup$ What do you know about the environment? For example is this a ballistic trajectory or does the object have some form of propulsion? $\endgroup$– John RennieCommented Aug 6, 2014 at 5:28
-
$\begingroup$ For acceleration you need speed and curvature. The curvature you get by the path, but for speed you need time information. (related: physics.stackexchange.com/a/127967/392) $\endgroup$– John AlexiouCommented Aug 6, 2014 at 15:18
3 Answers
Yes. Provided you are only interested in the direction of the acceleration, and not it's magnitude. And further assuming your time samples are equally spaced, you can take the second derivative of the path and this will be proportional to the acceleration.
A decent method in practice would be to use a second order central finite difference scheme wherein you say that:
$$ a_x(t) = x(t-1) - 2x(t) + x(t+1) $$ and $$ a_y(t) = y(t-1) - 2y(t) + y(t+1) $$ this will give you decent estimates for the cartesian components of acceleration at every time, caveat to an overall scaling in magnitude that you won't know without knowing the actual timing, but the direction should be alright.
-
$\begingroup$ @alemiI assume I need to take the quotient ay/ax to get the tangent of acceleration direction? $\endgroup$– sgyfCommented Aug 6, 2014 at 13:47
-
In your case, lets $\Delta t = 0.03s $ By the method alemi explained, $$a_{x}(t)=\frac{x(t-\Delta t)-2x(t)+x(t+\Delta t)}{(\Delta t)^{2}}$$ and $$a_{y}(t)=\frac{y(t-\Delta t)-2y(t)+y(t+\Delta t)}{(\Delta t)^{2}}$$
-
$\begingroup$ This assumes a constant acceleration over 3 sample points, which usually does not hold. It is better to do a higher order slope estimate, like with cubic splines. $\endgroup$ Commented Aug 6, 2014 at 15:49
-
$\begingroup$ Firstly she/he needs an approximate measure and secondly the time difference is ~0.03 sec. Unless the object abruptly changes its velocity, the method I and alemi explained is simple and gives approximately the right answer. $\endgroup$ Commented Aug 6, 2014 at 17:02
-
$\begingroup$ @ja72@Pratyay Ghosh Since my object doesn't change velocity dramatically from one time point to the next, I think alemi and Pratyay Ghosh's method should be a good approximation. ja72 does provide a more accurate means to compute the acceleration though. Thank both of you. $\endgroup$– sgyfCommented Aug 6, 2014 at 18:26
From the path you need to find the radius of curvature $\rho$ at each point. This would be kind of noisy unless you have really precise data. Your best bet into input all the x
and y
points into cubic spline in order to get what the derivatives $x'$ and $y'$ are (in units of length per frame). In addition, you need to get the kinematic accelerations $x''$ and $y''$.
Then
$$\rho = \frac{ \left( x'^2 + y'^2 \right) ^ {\frac{3}{2} }}{x''\,y' - x'\,y''} $$
You can also estimate the speed by $$ v = \dot{s} \sqrt{ x'^2+y'^2 } $$ where $\dot{s}$ is the sample rate (frames/second).
The tangent acceleration to the path is $$ a_{T} = \dot{v} = \dot{s} \frac{x'\,x'' + y'\,y''}{\sqrt{x'^2+y'^2}} $$
and the transverse acceleration is $$a_{N} = \frac{v^2}{\rho} = \frac{ \dot{s}^2 \left({x''\,y' - x'\,y''}\right) }{ \sqrt{ x'^2+y'^2 } }$$