Package georegression.struct.se
Class SpecialEuclideanOps_F64
java.lang.Object
georegression.struct.se.SpecialEuclideanOps_F64
Various operations related to
SpecialEuclidean
transformations.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Se3_F64
axisXyz
(double dx, double dy, double dz, double rotX, double rotY, double rotZ, @Nullable Se3_F64 se) Create SE3 using axis-angle for rotation and XYZ tanslationstatic boolean
Finds the best fit projection of 'a' onto SE(3).static Se3_F64
eulerXyz
(double dx, double dy, double dz, double rotX, double rotY, double rotZ, @Nullable Se3_F64 se) Sets the value of anSe3_F64
using Euler XYZ coordinates for the rotation and a translation vector.static Se3_F64
eulerXyz
(double dx, double dy, double dz, EulerType type, double rotX, double rotY, double rotZ, @Nullable Se3_F64 se) static boolean
isIdentical
(Se3_F64 a, Se3_F64 b, double tolT, double tolR) Can be used to see if two transforms are identical to within tolerancestatic Se3_F64
quatXyz
(double dx, double dy, double dz, double qw, double qx, double qy, double qz, @Nullable Se3_F64 se) static void
setToNoMotion
(Se3_F64 se) Sets the provided transform so that it does not transform any points.static Affine2D_F64
toAffine
(Se2_F64 se, @Nullable Affine2D_F64 affine) ConvertsSe2_F64
intoAffine2D_F64
.static org.ejml.data.DMatrixRMaj
toHomogeneous
(Se2_F64 se, @Nullable org.ejml.data.DMatrixRMaj ret) Converts it into a 3 by 3 homogeneous matrix.static org.ejml.data.DMatrixRMaj
toHomogeneous
(Se3_F64 se, @Nullable org.ejml.data.DMatrixRMaj ret) Converts it into a 4 by 4 homogeneous matrix.static Se2_F64
Converts a homogeneous representation intoSe2_F64
.static Se3_F64
Converts a homogeneous representation intoSe3_F64
.
-
Constructor Details
-
SpecialEuclideanOps_F64
public SpecialEuclideanOps_F64()
-
-
Method Details
-
setToNoMotion
Sets the provided transform so that it does not transform any points.- Parameters:
se
- The transform which is to be set to no motion.
-
toAffine
ConvertsSe2_F64
intoAffine2D_F64
.- Parameters:
se
- (Input) Se2affine
- (Output) Equivalent affine. If null a new object will be declared.- Returns:
- Equivalent affine.
-
toHomogeneous
public static org.ejml.data.DMatrixRMaj toHomogeneous(Se3_F64 se, @Nullable @Nullable org.ejml.data.DMatrixRMaj ret) Converts it into a 4 by 4 homogeneous matrix.- Parameters:
se
- original 3D transformret
- Where the results will be written to. If null a new matrix is declared. Modified.- Returns:
- equivalent homogeneous transform.
-
toSe3
Converts a homogeneous representation intoSe3_F64
.- Parameters:
H
- Homogeneous 4 by 4 matrix.ret
- If not null where the results are written to.- Returns:
- Se3_F64 transform.
-
toHomogeneous
public static org.ejml.data.DMatrixRMaj toHomogeneous(Se2_F64 se, @Nullable @Nullable org.ejml.data.DMatrixRMaj ret) Converts it into a 3 by 3 homogeneous matrix.- Parameters:
se
- original 2D transformret
- Where the results will be written to. If null a new matrix is declared. Modified.- Returns:
- equivalent homogeneous transform.
-
toSe2
Converts a homogeneous representation intoSe2_F64
.- Parameters:
H
- Homogeneous 3 by 3 matrix.ret
- If not null where the results are written to.- Returns:
- Se3_F64 transform.
-
eulerXyz
public static Se3_F64 eulerXyz(double dx, double dy, double dz, double rotX, double rotY, double rotZ, @Nullable @Nullable Se3_F64 se) Sets the value of anSe3_F64
using Euler XYZ coordinates for the rotation and a translation vector.- Parameters:
dx
- Translation along x-axis.dy
- Translation along y-axis.dz
- Translation along z-axis.rotX
- Rotation around X axis.rotY
- Rotation around Y axis.rotZ
- Rotation around Z axis.se
- If not null then the transform is written here.- Returns:
- The transform.
-
eulerXyz
-
axisXyz
public static Se3_F64 axisXyz(double dx, double dy, double dz, double rotX, double rotY, double rotZ, @Nullable @Nullable Se3_F64 se) Create SE3 using axis-angle for rotation and XYZ tanslation- Parameters:
dx
- Translation along x-axis.dy
- Translation along y-axis.dz
- Translation along z-axis.rotX
- x-axis componentrotY
- y-axis componentrotZ
- z-axis componentse
- If not null then the transform is written here.- Returns:
- The transform.
-
quatXyz
-
isIdentical
Can be used to see if two transforms are identical to within tolerance- Parameters:
a
- transformb
- tranformtolT
- Tolerance for translationtolR
- Tolerance for rotation in radians- Returns:
- true if identical or false if not
-
bestFit
Finds the best fit projection of 'a' onto SE(3). This is useful when a was estimated using a linear algorithm.See page 280 of "An Invitation to 3-D Vision, From Images to Geometric Models" 1st Ed. 2004. Springer.
- Parameters:
a
- Approximate SE(3). Modified.- Returns:
- true if successful
-