Package org.robwork.sdurw_math
Class Transform3D
- java.lang.Object
-
- org.robwork.sdurw_math.Transform3D
-
public class Transform3D extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description Transform3D()
Default Constructor.
Initializes with 0 translation and Identity matrix as rotationTransform3D(long cPtr, boolean cMemoryOwn)
Transform3D(Rotation3D R)
A homogeneous transform with a rotation of R and a
translation of zero.Transform3D(Transform3D t)
Copy ConstructorTransform3D(Vector3D d)
A homogeneous transform with a rotation of zero and a
translation of d.Transform3D(Vector3D d, Rotation3D R)
Constructs a homogeneous transformTransform3D(Vector3D d, Rotation3DVector r)
Constructs a homogeneous transform
Calling this constructor is equivalent to the transform
Transform3D(d, r.toRotation3D()).
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Transform3D
craigDH(double alpha, double a, double d, double theta)
void
delete()
static Transform3D
DH(double alpha, double a, double d, double theta)
static Transform3D
DHHGP(double alpha, double a, double beta, double b)
EigenMatrix4d
e()
Returns a Eigen 4x4 matrix \mathbf{M}\in SE(3) that represents this homogeneous transformation
boolean
equal(Transform3D t3d)
Compares the transformations with a given precision
Performs an element wise comparison.boolean
equal(Transform3D t3d, double precision)
Compares the transformations with a given precision
Performs an element wise comparison.boolean
equals(Transform3D rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true only if all elements are equal.
double
get(long row, long column)
static long
getCPtr(Transform3D obj)
static Transform3D
identity()
static Transform3D
invMult(Transform3D t1, Transform3D t2)
computes the inverse of t1 and multiplies it with t2.
The result is saved in t1.static Transform3D
invMult(Transform3D t1, Transform3D t2, Transform3D t3)
computes the inverse of t1 and multiplies it with t2.
The result is saved in t1.static Transform3D
makeLookAt(Vector3D eye, Vector3D center, Vector3D up)
creates a transformation that is positioned in eye and looking toward
center along -z where up indicates the upward direction along which the y-axis
is placed.Transform3D
multiply(Transform3D bTc)
static void
multiply(Transform3D a, Transform3D b, Transform3D result)
Write to result the product a * b.Vector3D
multiply(Vector3D bP)
Calculates \robax{a}{\mathbf{p}} = \robabx{a}{b}{\mathbf{T}} \robax{b}{\mathbf{p}} thus transforming point \mathbf{p} from frame b
to frame aVelocityScrew6D
multiply(VelocityScrew6D rhs)
Wrench6D
multiply(Wrench6D rhs)
boolean
notEqual(Transform3D rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true if any of the elements are different.
Vector3D
P()
Gets the position part \mathbf{d} from \mathbf{T}Rotation3D
R()
Gets the rotation part \mathbf{R} from \mathbf{T}void
set(long row, long column, double d)
java.lang.String
toString()
-
-
-
Constructor Detail
-
Transform3D
public Transform3D(long cPtr, boolean cMemoryOwn)
-
Transform3D
public Transform3D()
Default Constructor.
Initializes with 0 translation and Identity matrix as rotation
-
Transform3D
public Transform3D(Vector3D d, Rotation3D R)
Constructs a homogeneous transform- Parameters:
d
- [in] \mathbf{d} A 3x1 translation vectorR
- [in] \mathbf{R} A 3x3 rotation matrix
-
Transform3D
public Transform3D(Rotation3D R)
A homogeneous transform with a rotation of R and a
translation of zero.
-
Transform3D
public Transform3D(Vector3D d)
A homogeneous transform with a rotation of zero and a
translation of d.
-
Transform3D
public Transform3D(Transform3D t)
Copy Constructor- Parameters:
t
- [in] Values to initialize the transform
-
Transform3D
public Transform3D(Vector3D d, Rotation3DVector r)
Constructs a homogeneous transform
Calling this constructor is equivalent to the transform
Transform3D(d, r.toRotation3D()).
- Parameters:
d
- [in] \mathbf{d} A 3x1 translation vectorr
- [in] \mathbf{r} A 3x1 rotation vector
-
-
Method Detail
-
getCPtr
public static long getCPtr(Transform3D obj)
-
delete
public void delete()
-
DH
public static Transform3D DH(double alpha, double a, double d, double theta)
-
craigDH
public static Transform3D craigDH(double alpha, double a, double d, double theta)
-
DHHGP
public static Transform3D DHHGP(double alpha, double a, double beta, double b)
-
identity
public static Transform3D identity()
-
get
public double get(long row, long column)
-
set
public void set(long row, long column, double d)
-
equals
public boolean equals(Transform3D rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true only if all elements are equal.
- Parameters:
rhs
- [in] Transform to compare with- Returns:
- True if equal.
-
notEqual
public boolean notEqual(Transform3D rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true if any of the elements are different.
- Parameters:
rhs
- [in] Transform to compare with- Returns:
- True if not equal.
-
equal
public boolean equal(Transform3D t3d, double precision)
Compares the transformations with a given precision
Performs an element wise comparison. Two elements are considered equal if the difference
are less than precision.
- Parameters:
t3d
- [in] Transform to compare withprecision
- [in] The precision to use for testing- Returns:
- True if all elements are less than precision apart.
-
equal
public boolean equal(Transform3D t3d)
Compares the transformations with a given precision
Performs an element wise comparison. Two elements are considered equal if the difference
are less than precision.
- Parameters:
t3d
- [in] Transform to compare with
- Returns:
- True if all elements are less than precision apart.
-
multiply
public Transform3D multiply(Transform3D bTc)
-
multiply
public Vector3D multiply(Vector3D bP)
Calculates \robax{a}{\mathbf{p}} = \robabx{a}{b}{\mathbf{T}} \robax{b}{\mathbf{p}} thus transforming point \mathbf{p} from frame b
to frame a- Parameters:
bP
- [in] \robax{b}{\mathbf{p}}- Returns:
- \robax{a}{\mathbf{p}}
-
R
public Rotation3D R()
Gets the rotation part \mathbf{R} from \mathbf{T}- Returns:
- \mathbf{R}
-
P
public Vector3D P()
Gets the position part \mathbf{d} from \mathbf{T}- Returns:
- \mathbf{d}
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
multiply
public static void multiply(Transform3D a, Transform3D b, Transform3D result)
Write to result the product a * b.
-
invMult
public static Transform3D invMult(Transform3D t1, Transform3D t2)
computes the inverse of t1 and multiplies it with t2.
The result is saved in t1. t1 = inv(t1) * t2
-
invMult
public static Transform3D invMult(Transform3D t1, Transform3D t2, Transform3D t3)
computes the inverse of t1 and multiplies it with t2.
The result is saved in t1. t1 = inv(t1) * t2
-
makeLookAt
public static Transform3D makeLookAt(Vector3D eye, Vector3D center, Vector3D up)
creates a transformation that is positioned in eye and looking toward
center along -z where up indicates the upward direction along which the y-axis
is placed. Same convention as for gluLookAt
and is handy for placing a cameraview.- Parameters:
eye
- [in] position of viewcenter
- [in] point to look towardup
- [in] the upward direction (the- Returns:
- Transformation
-
e
public EigenMatrix4d e()
Returns a Eigen 4x4 matrix \mathbf{M}\in SE(3) that represents this homogeneous transformation
- Returns:
- \mathbf{M}\in SE(3)
-
multiply
public VelocityScrew6D multiply(VelocityScrew6D rhs)
-
-