I have a particle trajectory where particle position is available at discrete time steps with respect of (0,0,0) in 3D. Time step is 0.05 sec. For reference, positions are shown in following image.
Particle velocity can be computed easily. My goal is to calculate angular velocity for each time step. Here are the different ways I have tried:
Velocity vector For each consecutive time step we can calculate change in direction of velocity vector. let's suppose velocity at point 1 is $\bf{v_{1}}$ and at point 2 $\bf{v_{2}}$. We can calculate change in angle by $$ \theta = acos(\frac{\bf{v_{1}}.\bf{v_{2}}}{v_{1}v_{2}}) $$ I am using unit velocity vectors to compute this angle. Finally we can divide this by time step to acquire angular velocity.
Position vector We can repeat the same procedure but we can use position vector.
Wikipedia Page Formula I have also tried using this formula as listed at Wikipedia page: $$ \omega = \frac{\bf{r} \times \bf{v}}{r^{2}} $$ My confusion with this formula is the units. Is it per time step and if so do I need to multiply with 20 or not.
My issue is not with the calculation itself because I can manipulate rotation matrix and quaternion. My issue is that I do not know which vectors are useful here to calculate the angular velocity and how do I use them. Any comment or suggestion would be help full.