2009年5月17日 星期日

B-spline 曲線

最近有人丟了一個很有趣的文章給我看,他的路徑規劃使用B-spline曲線來做。


似乎很有趣,不知道如果把B-spline曲線丟到老鼠的路徑規劃裡,是不是就可以讓動作可以更平滑一點?


找了一點資料,索性就開起matlab 來求救了,沒想到打 help spline 竟然有範例。


那就改了一下範例:


       x = -4:4; y = [0 15 0 -15 0 15 0 -15  0];
       cs = spline(x,[0 y 0]);
       xx = linspace(-4,4,100);
       plot(x,y,'o--',xx,ppval(cs,xx),'-');



假設動作為1連續V-turn。看B-spline曲線劃出來的似乎還好,不過如果調整頂點的位置,應該就可以讓路徑更短。


       x = -4:4; y = [0 15 0 -15 0 15 0 -15  0];
       x1=-4:4;y1=[0 11 0 -11 0 11 0 -11  0];
       cs = spline(x,[0 y 0]);
       cs1 = spline(x1,[0 y1 0]);      
       xx = linspace(-4,4,100);
       xx1 = linspace(-4,4,100);
       plot(x,y,'o--',xx,ppval(cs,xx),'-',x1,y1,'ro--',xx1,ppval(cs1,xx1),'m-' );



 


 


果然直接看數學模型真的很吃力,還是找找現成的範例比較容易看懂。


至於好不好,還要再討論嚕!
 


沒有留言:

張貼留言