Approximation of 3D points with a 3D curve (path smoothing)
6 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (2 件)
Sebastian Castro
2017 年 7 月 4 日
This isn't really a MATLAB question, but this is typically done with minimum snap trajectories.
- Sebastian
2 件のコメント
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
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.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Smoothing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!