Approximation of 3D points with a 3D curve (path smoothing)

12 Ansichten (letzte 30 Tage)
Piotr Pawlowski
Piotr Pawlowski am 4 Jul. 2017
Bearbeitet: Christine Tobler am 15 Sep. 2017
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.

Antworten (2)

Sebastian Castro
Sebastian Castro am 4 Jul. 2017
This isn't really a MATLAB question, but this is typically done with minimum snap trajectories.
Also see, for example, this YouTube video .
- Sebastian
  2 Kommentare
Piotr Pawlowski
Piotr Pawlowski am 4 Jul. 2017
This is too complicated approach for me right now. It includes detailed dynamic model of a quadrotor. I'm testing my ACO algorithm for path planning without modeling the UAVs (only path construction). I want to present a smooth path assuming that this UAV is a bigger plane rather than a small, agile multirotor.
Richard
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.

Melden Sie sich an, um zu kommentieren.


Christine Tobler
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.

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!

Translated by