Home > manopt > manifolds > specialeuclidean > specialeuclideanfactory.m

specialeuclideanfactory

PURPOSE ^

Returns a manifold structure to optimize over the special Euclidean group

SYNOPSIS ^

function M = specialeuclideanfactory(n, k)

DESCRIPTION ^

 Returns a manifold structure to optimize over the special Euclidean group
 
 function M = specialeuclideanfactory(n)
 function M = specialeuclideanfactory(n, k)

 The special Euclidean group (the manifold of rigid transformations):
 This is a product manifold of the rotations group SO(n) and the
 translation group R^n, copied k times.

 Points on the manifold are represented as structures X with two fields.
 X.R is a 3D array of size nxnxk such that each slice X.R(:, :, i)
 corresponds to a rotation matrix (orthogonal with determinant 1).
 X.t is a matrix of size nxk such that each column X.t(:, i) corresponds
 to a translation vector.

 Tangent vectors are represented as structures with the same fields. Note
 that rotational components of the tangent vectors are represented in the
 Lie algebra, i.e., each slice Xdot.R(:, :, i) is a skew-symmetric matrix.
 Use M.tangent2ambient(X, Xdot) to obtain a representation in the ambient
 space. This is often necessary when defining problem.ehess(X, Xdot).

 This is a description of SE(n)^k with the induced metric from the
 embedding space (R^nxn)^k x (R^n)^k, i.e., this manifold is a Riemannian
 submanifold of the embedding Euclidean space with the usual inner
 product.

 By default, k = 1.

 This is a test geometry: it may not be the "appropriate" geometry to give
 to SE(n).

 See rotationsfactory and euclideanfactory for details.

 See also: rotationsfactory euclideanfactory

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function M = specialeuclideanfactory(n, k)
0002 % Returns a manifold structure to optimize over the special Euclidean group
0003 %
0004 % function M = specialeuclideanfactory(n)
0005 % function M = specialeuclideanfactory(n, k)
0006 %
0007 % The special Euclidean group (the manifold of rigid transformations):
0008 % This is a product manifold of the rotations group SO(n) and the
0009 % translation group R^n, copied k times.
0010 %
0011 % Points on the manifold are represented as structures X with two fields.
0012 % X.R is a 3D array of size nxnxk such that each slice X.R(:, :, i)
0013 % corresponds to a rotation matrix (orthogonal with determinant 1).
0014 % X.t is a matrix of size nxk such that each column X.t(:, i) corresponds
0015 % to a translation vector.
0016 %
0017 % Tangent vectors are represented as structures with the same fields. Note
0018 % that rotational components of the tangent vectors are represented in the
0019 % Lie algebra, i.e., each slice Xdot.R(:, :, i) is a skew-symmetric matrix.
0020 % Use M.tangent2ambient(X, Xdot) to obtain a representation in the ambient
0021 % space. This is often necessary when defining problem.ehess(X, Xdot).
0022 %
0023 % This is a description of SE(n)^k with the induced metric from the
0024 % embedding space (R^nxn)^k x (R^n)^k, i.e., this manifold is a Riemannian
0025 % submanifold of the embedding Euclidean space with the usual inner
0026 % product.
0027 %
0028 % By default, k = 1.
0029 %
0030 % This is a test geometry: it may not be the "appropriate" geometry to give
0031 % to SE(n).
0032 %
0033 % See rotationsfactory and euclideanfactory for details.
0034 %
0035 % See also: rotationsfactory euclideanfactory
0036 
0037 % This file is part of Manopt: www.manopt.org.
0038 % Original author: Nicolas Boumal, Sep. 23, 2014.
0039 % Contributors:
0040 % Change log:
0041 
0042     
0043     if ~exist('k', 'var') || isempty(k)
0044         k = 1;
0045     end
0046     
0047     elements = struct();
0048     elements.R = rotationsfactory(n, k);
0049     elements.t = euclideanfactory(n, k);
0050     
0051     M = productmanifold(elements);
0052 
0053 end

Generated on Sat 12-Nov-2016 14:11:22 by m2html © 2005