How to detect rotation in a trajectory?

I have to write an algorithm to detect rotation in the trajectory. Basically, I have to detect the red zone in the trajectory. Currently I have the time and coordinate data.
How do I approach it?

4 Comments

How is the trajectory defined?
What criteria are used to determine whether a change in direction constitutes "rotation"?
I think within a defined window of time if the change in direction is ~360 degrees we can define that as rotation.
You are working in a 2D or 3D space?

Sign in to comment.

 Accepted Answer

I would use the gradient function to calculate the numerical derivative.
For example:
dydx = gradient(y) ./ gradient(x);
Plot that as a function of ‘x’ as well, and it may provide some clues on how to define that region of the curve.
.

2 Comments

Thanks for your input. I think this will work.
As always, my pleasure!

Sign in to comment.

More Answers (1)

One way of detecting the region of values is using logical indexing, e.g.:
t = ...
x = ...
y = ...
% Way 1
Ind = t>=0 & t<=5; % Select the region according to the time data
Xs = x(Ind);
Ys = y(Ind);
% Way 2
Ind = x>=0 & x<=5; % Select the region according to x data
Xs = x(Ind);
Ys = y(Ind);

Categories

Products

Release

R2022a

Asked:

on 30 Apr 2022

Commented:

on 2 May 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!