Approximation of 3D points with a 3D curve (path smoothing)
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi everyone
I have three vectors containing x, y and z coordinates of data points. These points are used to create a flyable 3D path for an aerial vehicle. The problem is that this path is not smooth and has many heavy turns. I want to approximate (not interpolate, I dont need this vehicle to fly through all points) those points with a single, quite smooth curve instead of a polyline drawn from point to point.
0 Kommentare
Antworten (2)
Sebastian Castro
am 4 Jul. 2017
This isn't really a MATLAB question, but this is typically done with minimum snap trajectories.
- Sebastian
2 Kommentare
Richard
am 15 Sep. 2017
I believe one approach could be the following
For some segment of number of points in the path, use svd() or pca() of a matrix of these points to compute the direction axis. Then you want to smooth the points in the direction perpendicular to the directional vector obtained above, by say a moving average. Caveats are, there a min number of points for svd/PAC to be robust. Below this you will need to compute the differences in each dimension and pick the one with the least variation to estimate the principal axis. I know that's a bit vague, but I think it's a start.
Christine Tobler
am 15 Sep. 2017
Bearbeitet: Christine Tobler
am 15 Sep. 2017
You could try the smoothdata function, which would just smooth the x-, y- and z-coordinates separately. Not very adapted to the path-finding problem, but should be easy to try out.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Smoothing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!