+ + + + +INTERPOLATESE3 - Interpolates between two SE(3) transformations. +Z = interpolateSE3(X,Y,t) interpolates between two SE(3) transformations X and Y +using a parameter t. The resulting transformation is returned in Z. +Z = interpolateSE3(X,Y,t,varargin) allows additional options to be specified +through varargin. Currently supported options are: + - 'equal': Sets the velocity twist equal between X and Y. + - 'zero': Sets the velocity and acceleration twist zero for X. + +Input: + X - The initial SE(3) transformation. + Y - The final SE(3) transformation. + t - The interpolation parameter (between 0 and 1). + varargin - Additional options for interpolation (optional). + +Output: + Z - The interpolated SE(3) transformation. + +Example: + H1 = SE3(rotx(0),[0,0,0]); + H2 = SE3(rotx(pi/3) * roty(pi),[1,0,1]) + + [p1,ux1,uy1,uz1] = backbone(H1); + fquiver(p1,ux1,.25,'b','LineW',3); hold on; + fquiver(p1,uy1,.25,'r','LineW',3); + fquiver(p1,uz1,.25,'g','LineW',3); + + [p2,ux2,uy2,uz2] = backbone(H2); + fquiver(p2,ux2,.25,'b','LineW',3); hold on; + fquiver(p2,uy2,.25,'r','LineW',3); + fquiver(p2,uz2,.25,'g','LineW',3); + + axis equal; + t = linspace(0,1,10); + + for ii = 2:numel(t)-1 + G = interpolateSE3(H1,H2,t(ii),'zeros'); + [p2,ux2,uy2,uz2] = backbone(G); + fquiver(p2,ux2,.15,'b','LineW',2); hold on; + fquiver(p2,uy2,.15,'r','LineW',2); + fquiver(p2,uz2,.15,'g','LineW',2); + end + + view(30,30); + +See also logmapSO3, expmapSO3 +Reference: F.C. Park, Smooth Invariant Interpolation of Rotations. +