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

6 ビュー (過去 30 日間)
Piotr Pawlowski
Piotr Pawlowski 2017 年 7 月 4 日
編集済み: Christine Tobler 2017 年 9 月 15 日
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.

回答 (2 件)

Sebastian Castro
Sebastian Castro 2017 年 7 月 4 日
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 件のコメント
Piotr Pawlowski
Piotr Pawlowski 2017 年 7 月 4 日
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 2017 年 9 月 15 日
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
Christine Tobler 2017 年 9 月 15 日
編集済み: Christine Tobler 2017 年 9 月 15 日
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.

カテゴリ

Help Center および File ExchangeSmoothing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by