diff --git a/demos/demo_DTW01.m b/demos/demo_DTW01.m index bb5332a0529344d9ab72cd09005103bab7297e4b..cda375306eeab739ad91f695faec327054a41c21 100644 --- a/demos/demo_DTW01.m +++ b/demos/demo_DTW01.m @@ -33,7 +33,7 @@ addpath('./m_fcts/'); nbData = 200; %Length of each trajectory wMax = 50; %Warping time window nbSamples = 5; %Number of demonstrations -nbVar = 2; %Number of dimensions (max 2 for AMARSI data) +nbVar = 2; %Number of dimensions (max 2 for 2Dletters dataset) %% Load handwriting data diff --git a/demos/demo_Riemannian_S3_infHorLQR01.m b/demos/demo_Riemannian_S3_infHorLQR01.m index 7db97495a6d0398cb504adbe30e59fc5e9aa35f8..c3f2521a8e5af9d288a9e0dfd4cdf0f6d05424ee 100644 --- a/demos/demo_Riemannian_S3_infHorLQR01.m +++ b/demos/demo_Riemannian_S3_infHorLQR01.m @@ -55,9 +55,7 @@ xTar = xTar / norm(xTar); % uCov = Ar * diag([1E0,1E0,1E6]) * Ar' * 1E-3; % S0 = diag([1E0,1E0,1E6]) * 1E-3; -% q = Quaternion(xTar); -% uCov = q.R * S0 * q.R' -%uCov = q.R' * S0 * q.R +% uCov = quat2rotm(xTar') * S0 * quat2rotm(xTar')' uCov = diag([1,1,1]) * 1E-3; % %Eigendecomposition @@ -160,17 +158,15 @@ figure('PaperPosition',[0 0 6 8],'position',[670,10,650,650],'name','timeline da colormap([.9 .9 .9]); [X,Y,Z] = sphere(20); mesh(X,Y,Z,'facealpha',.3,'edgealpha',.3); -q = Quaternion(xTar); +Rq = quat2rotm(xTar'); -Rq = quat2rotm(double(q)); plot3Dframe(Rq, zeros(3,1), eye(3)*.3); view(3); axis equal; axis tight; axis vis3d; h=[]; for n=1:min(nbRepros,1) for t=1:nbData delete(h); - q = Quaternion(r(n).x(:,t)); - Rq = quat2rotm(double(q)); + Rq = quat2rotm(r(n).x(:,t)'); h = plot3Dframe(Rq, zeros(3,1)); drawnow; if t==1 diff --git a/demos/demo_Riemannian_S3_vecTransp01.m b/demos/demo_Riemannian_S3_vecTransp01.m index aac8be06c1476122de115a5f735c0f85524cd5d0..10dedf539f92a05ee7f6cbb6563c5506c86579d7 100644 --- a/demos/demo_Riemannian_S3_vecTransp01.m +++ b/demos/demo_Riemannian_S3_vecTransp01.m @@ -119,9 +119,6 @@ function Exp = expfct(u) Exp = real([cos(normv) ; u(1,:).*sin(normv)./normv ; u(2,:).*sin(normv)./normv ; u(3,:).*sin(normv)./normv]); Exp(:,normv < 1e-16) = repmat([1;0;0;0],1,sum(normv < 1e-16)); end -% v1 = cos(norm(u)/2); -% v2 = sin(norm(u)/2) * u/norm(u); -% q = Quaternion([v1 v2]); function Log = logfct(x) % scale = acos(x(3,:)) ./ sqrt(1-x(3,:).^2); diff --git a/demos/demo_Riemannian_Sd_MPC_infHor01.m b/demos/demo_Riemannian_Sd_MPC_infHor01.m index 02c4e6b8069f7836603feabd3a1cc7617abe1188..808e4b39bf6251be13e5da7a5535ca2b7c407970 100644 --- a/demos/demo_Riemannian_Sd_MPC_infHor01.m +++ b/demos/demo_Riemannian_Sd_MPC_infHor01.m @@ -2,9 +2,6 @@ function demo_Riemannian_Sd_MPC_infHor01 % Linear quadratic regulation on S^d by relying on Riemannian manifold and infinite-horizon LQR. % (formulation with tangent space of the same dimension as the dimension of the manifold) % -% This demo requires the robotics toolbox RTB10 (http://petercorke.com/wordpress/toolboxes/robotics-toolbox). -% First run 'startup_rvc' from the robotics toolbox. -% % If this code is useful for your research, please cite the related publication: % @article{Calinon19, % author="Calinon, S. and Jaquier, N.", @@ -32,7 +29,6 @@ function demo_Riemannian_Sd_MPC_infHor01 % along with PbDlib. If not, see <http://www.gnu.org/licenses/>. addpath('./m_fcts/'); -disp('This demo requires the robotics toolbox RTB10 (http://petercorke.com/wordpress/toolboxes/robotics-toolbox).'); %% Parameters @@ -58,9 +54,7 @@ xTar = xTar / norm(xTar); %[Ar,~] = qr(randn(model.nbVarPos)); % uCov = Ar * diag([1E0,1E0,1E6]) * Ar' * 1E-3; % S0 = diag([1E0,1E0,1E6]) * 1E-3; -% q = Quaternion(xTar); -% uCov = q.R * S0 * q.R -%uCov = q.R' * S0 * q.R +% uCov = quat2rotm(xTar') * S0 * quat2rotm(xTar')' uCov = eye(model.nbVarPos) * 1E-2; @@ -151,18 +145,13 @@ figure('PaperPosition',[0 0 6 8],'position',[670,10,650,650],'name','timeline da colormap([.9 .9 .9]); [X,Y,Z] = sphere(20); mesh(X,Y,Z,'facealpha',.3,'edgealpha',.3); -q = UnitQuaternion(xTar); - -Rq = quat2rotm(double(q)); -plot3Dframe(Rq, zeros(3,1), eye(3)*.3); +plot3Dframe(quat2rotm(xTar'), zeros(3,1), eye(3)*.3); view(3); axis equal; axis tight; axis vis3d; h=[]; for n=1:min(nbRepros,1) for t=1:nbData delete(h); - q = UnitQuaternion(r(n).x(:,t)); - Rq = quat2rotm(double(q)); - h = plot3Dframe(Rq, zeros(3,1)); + h = plot3Dframe(quat2rotm(r(n).x(:,t)'), zeros(3,1)); drawnow; if t==1 %pause;