Show / Hide Table of Contents

Class Mat

Matrix class for robotics. Simple matrix class for homogeneous operations.

Inheritance
object
Mat
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
Namespace:RoboDk.API
Assembly: RoboDkApi.dll
Syntax
public class Mat

Constructors

|Improve this Doc View Source

Mat(Mat)

Matrix class constructor for a 4x4 homogeneous matrix as a copy from another matrix

Declaration
public Mat(Mat pose)
Parameters
Type Name Description
Mat pose
|Improve this Doc View Source

Mat(double, double, double, double, double, double, double, double, double, double, double, double)

Matrix class constructor for a 4x4 homogeneous matrix

Declaration
public Mat(double nx, double ox, double ax, double tx, double ny, double oy, double ay, double ty, double nz, double oz, double az, double tz)
Parameters
Type Name Description
double nx

Position [0,0]

double ox

Position [0,1]

double ax

Position [0,2]

double tx

Position [0,3]

double ny

Position [1,0]

double oy

Position [1,1]

double ay

Position [1,2]

double ty

Position [1,3]

double nz

Position [2,0]

double oz

Position [2,1]

double az

Position [2,2]

double tz

Position [2,3]

|Improve this Doc View Source

Mat(double, double, double, double, double, double, double, double, double)

Matrix class constructor for a 3x3 homogeneous matrix

Declaration
public Mat(double nx, double ox, double ax, double ny, double oy, double ay, double nz, double oz, double az)
Parameters
Type Name Description
double nx
double ox
double ax
double ny
double oy
double ay
double nz
double oz
double az
|Improve this Doc View Source

Mat(double, double, double)

Matrix class constructor for a 4x1 vector [x,y,z,1]

Declaration
public Mat(double x, double y, double z)
Parameters
Type Name Description
double x

x coordinate

double y

y coordinate

double z

z coordinate

|Improve this Doc View Source

Mat(double[], bool)

Matrix class constructor for a double array. The array will be set as a column matrix. Example: RDK.AddCurve(new Mat(new double[6] {{0,0,0, 0,0,1}}));

Declaration
public Mat(double[] point, bool isPose = false)
Parameters
Type Name Description
double[] point

Column array

bool isPose

if isPose is True then convert vector into a 4x4 Pose Matrix.

|Improve this Doc View Source

Mat(double[,])

矩阵类构造函数为双arr的数组ays or a single column array (list of points) Example: RDK.AddCurve(new Mat(new double[4, 6] {{0,0,0, 0,0,1}, { 500, 0, 0, 0, 0, 1 }, { 500, 500, 0, 0, 0, 1 }, { 0, 0, 0, 0, 0, 1 } })); RDK.AddPoints(new Mat(new double[6] {{0,0,0, 0,0,1}}));

Declaration
public Mat(double[,] point_list)
Parameters
Type Name Description
double[,] point_list

点(arra数组列表y of doubles)

|Improve this Doc View Source

Mat(int, int)

Matrix class constructor for any size matrix

Declaration
public Mat(int rows, int cols)
Parameters
Type Name Description
int rows

dimension 1 size (rows)

int cols

dimension 2 size (columns)

Fields

|Improve this Doc View Source

L

Declaration
public Mat L
Field Value
Type Description
Mat
|Improve this Doc View Source

U

Declaration
public Mat U
Field Value
Type Description
Mat

Properties

|Improve this Doc View Source

Cols

Declaration
public int Cols { get; }
Property Value
Type Description
int
|Improve this Doc View Source

this[int, int]

Declaration
public double this[int iRow, int iCol] { get; set; }
Parameters
Type Name Description
int iRow
int iCol
Property Value
Type Description
double
|Improve this Doc View Source

Rows

Declaration
public int Rows { get; }
Property Value
Type Description
int

Methods

|Improve this Doc View Source

angle3(double[], double[])

Returns the angle in radians of two 3D vectors

Declaration
public static double angle3(double[] a, double[] b)
Parameters
Type Name Description
double[] a
double[] b
Returns
Type Description
double
|Improve this Doc View Source

cross(double[], double[])

Returns the cross product of two 3D vectors

Declaration
public static double[] cross(double[] a, double[] b)
Parameters
Type Name Description
double[] a
double[] b
Returns
Type Description
double[]
|Improve this Doc View Source

dot(double[], double[])

Returns the dot product of two 3D vectors

Declaration
public static double dot(double[] a, double[] b)
Parameters
Type Name Description
double[] a
double[] b
Returns
Type Description
double
|Improve this Doc View Source

Duplicate()

Declaration
public Mat Duplicate()
Returns
Type Description
Mat
|Improve this Doc View Source

FromTxyzRxyz(double, double, double, double, double, double)

Calculates the pose from the position and euler angles ([x,y,z,rx,ry,rz] array) The result is the same as calling: H = transl(x,y,z)rotx(rxpi/180)roty(rypi/180)rotz(rzpi/180)

Declaration
public static Mat FromTxyzRxyz(double x, double y, double z, double rx, double ry, double rz)
Parameters
Type Name Description
double x
double y
double z
double rx
double ry
double rz
Returns
Type Description
Mat

Homogeneous matrix (4x4)

|Improve this Doc View Source

FromTxyzRxyz(double[])

Calculates the pose from the position and euler angles ([x,y,z,rx,ry,rz] array) The result is the same as calling: H = transl(x,y,z)rotx(rxpi/180)roty(rypi/180)rotz(rzpi/180)

Declaration
public static Mat FromTxyzRxyz(double[] xyzwpr)
Parameters
Type Name Description
double[] xyzwpr
Returns
Type Description
Mat

Homogeneous matrix (4x4)

|Improve this Doc View Source

FromUR(double[])

Calculates the pose from the position and euler angles ([x,y,z,r,p,w] vector) Note: The difference between FromUR and FromXYZWPR is that the first one uses radians for the orientation and the second one uses degres The result is the same as calling: H = transl(x,y,z)*rotx(rx)*roty(ry)*rotz(rz)

Declaration
public static Mat FromUR(double[] xyzwpr)
Parameters
Type Name Description
double[] xyzwpr

The position and euler angles array

Returns
Type Description
Mat

Homogeneous matrix (4x4)

|Improve this Doc View Source

FromXYZRPW(double, double, double, double, double, double)

Calculates the pose from the position and euler angles ([x,y,z,r,p,w] vector) The result is the same as calling: H = transl(x,y,z)rotz(wpi/180)roty(ppi/180)rotx(rpi/180)

Declaration
public static Mat FromXYZRPW(double x, double y, double z, double r, double p, double w)
Parameters
Type Name Description
double x
double y
double z
double r
double p
double w
Returns
Type Description
Mat

Homogeneous matrix (4x4)

|Improve this Doc View Source

FromXYZRPW(double[])

Calculates the pose from the position and euler angles ([x,y,z,r,p,w] vector)

Declaration
public static Mat FromXYZRPW(double[] xyzwpr)
Parameters
Type Name Description
double[] xyzwpr
Returns
Type Description
Mat

Homogeneous matrix (4x4)

|Improve this Doc View Source

GetCol(int)

Declaration
public Mat GetCol(int k)
Parameters
Type Name Description
int k
Returns
Type Description
Mat
|Improve this Doc View Source

Identity4x4()

Returns an identity 4x4 matrix (homogeneous matrix)

Declaration
public static Mat Identity4x4()
Returns
Type Description
Mat
|Improve this Doc View Source

IdentityMatrix(int, int)

Declaration
public static Mat IdentityMatrix(int iRows, int iCols)
Parameters
Type Name Description
int iRows
int iCols
Returns
Type Description
Mat
|Improve this Doc View Source

inv()

Returns the inverse of a homogeneous matrix (4x4 matrix)

Declaration
public Mat inv()
Returns
Type Description
Mat

Homogeneous matrix (4x4)

|Improve this Doc View Source

Is4x4()

Declaration
public bool Is4x4()
Returns
Type Description
bool
|Improve this Doc View Source

IsHomogeneous()

Check if the matrix is homogeneous (4x4)

Declaration
public bool IsHomogeneous()
Returns
Type Description
bool
|Improve this Doc View Source

isIdentity()

Check if it is a Homogeneous Identity matrix

Declaration
public bool isIdentity()
Returns
Type Description
bool
|Improve this Doc View Source

IsSquare()

Check if the matrix is square

Declaration
public bool IsSquare()
Returns
Type Description
bool
|Improve this Doc View Source

MultiplyMatSimple(Mat, Mat)

Declaration
public static Mat MultiplyMatSimple(Mat m1, Mat m2)
Parameters
Type Name Description
Mat m1
Mat m2
Returns
Type Description
Mat
|Improve this Doc View Source

norm(double[])

Returns the norm of a 3D vector

Declaration
public static double norm(double[] p)
Parameters
Type Name Description
double[] p
Returns
Type Description
double
|Improve this Doc View Source

normalize3(double[])

Returns the unitary vector

Declaration
public static double[] normalize3(double[] p)
Parameters
Type Name Description
double[] p
Returns
Type Description
double[]
|Improve this Doc View Source

NormalizeMatrixString(string)

Declaration
public static string NormalizeMatrixString(string matStr)
Parameters
Type Name Description
string matStr
Returns
Type Description
string
|Improve this Doc View Source

Pos()

Returns the XYZ position of the Homogeneous matrix

Declaration
public double[] Pos()
Returns
Type Description
double[]

XYZ position

|Improve this Doc View Source

Rot3x3()

Returns the sub 3x3 matrix that represents the pose rotation

Declaration
public Mat Rot3x3()
Returns
Type Description
Mat
|Improve this Doc View Source

rotate(Mat, Mat)

Rotate a vector given a matrix (rotation matrix or homogeneous matrix)

Declaration
public static Mat rotate(Mat pose, Mat vector)
Parameters
Type Name Description
Mat pose

4x4 homogeneous matrix or 3x3 rotation matrix

Mat vector

4x1 or 3x1 vector

Returns
Type Description
Mat
|Improve this Doc View Source

rotx(double)

Return a X-axis rotation matrix | 1 0 0 0 | rotx(rx) = | 0 cos(rx) -sin(rx) 0 | | 0 sin(rx) cos(rx) 0 | | 0 0 0 1 |

Declaration
public static Mat rotx(double rx)
Parameters
Type Name Description
double rx

rotation around X axis (in radians)

Returns
Type Description
Mat
|Improve this Doc View Source

roty(double)

Return a Y-axis rotation matrix | cos(ry) 0 sin(ry) 0 | roty(ry) = | 0 1 0 0 | | -sin(ry) 0 cos(ry) 0 | | 0 0 0 1 |

Declaration
public static Mat roty(double ry)
Parameters
Type Name Description
double ry

rotation around Y axis (in radians)

Returns
Type Description
Mat
|Improve this Doc View Source

rotz(double)

Return a Z-axis rotation matrix | cos(rz) -sin(rz) 0 0 | rotz(rx) = | sin(rz) cos(rz) 0 0 | | 0 0 1 0 | | 0 0 0 1 |

Declaration
public static Mat rotz(double rz)
Parameters
Type Name Description
double rz

rotation around Z axis (in radians)

Returns
Type Description
Mat
|Improve this Doc View Source

SetCol(Mat, int)

Declaration
public void SetCol(Mat v, int k)
Parameters
Type Name Description
Mat v
int k
|Improve this Doc View Source

setPos(double, double, double)

Sets the 4x4 position of the Homogeneous matrix

Declaration
public void setPos(double x, double y, double z)
Parameters
Type Name Description
double x

X position

double y

Y position

double z

Z position

|Improve this Doc View Source

setPos(double[])

Sets the 4x4 position of the Homogeneous matrix

Declaration
public void setPos(double[] xyz)
Parameters
Type Name Description
double[] xyz

XYZ position

|Improve this Doc View Source

setVX(double[])

Sets the VX orientation vector of the Homogeneous matrix

Declaration
public void setVX(double[] xyz)
Parameters
Type Name Description
double[] xyz

VX orientation vector

|Improve this Doc View Source

setVY(double[])

Sets the VY orientation vector of the Homogeneous matrix

Declaration
public void setVY(double[] xyz)
Parameters
Type Name Description
double[] xyz

VY orientation vector

|Improve this Doc View Source

setVZ(double[])

Sets the VZ orientation vector of the Homogeneous matrix

Declaration
public void setVZ(double[] xyz)
Parameters
Type Name Description
double[] xyz

VZ orientation vector

|Improve this Doc View Source

ToDoubles()

Converts a matrix into a one-dimensional array of doubles

Declaration
public double[] ToDoubles()
Returns
Type Description
double[]

one-dimensional array

|Improve this Doc View Source

ToString()

Declaration
public override string ToString()
Returns
Type Description
string
Overrides
object.ToString()
|Improve this Doc View Source

ToString(bool)

Returns the Matrix string (XYZWPR using the functino ToTxyzRxyz() or matrix values)

Declaration
public string ToString(bool string_as_xyzabc = true)
Parameters
Type Name Description
bool string_as_xyzabc
Returns
Type Description
string
|Improve this Doc View Source

ToTxyzRxyz()

Calculates the equivalent position and euler angles ([x,y,z,rx,ry,rz] array) of a pose Note: Pose = transl(x,y,z)rotx(rxpi/180)roty(rypi/180)rotz(rzpi/180) See also: FromTxyzRxyz()

Declaration
public double[] ToTxyzRxyz()
Returns
Type Description
double[]

XYZWPR translation and rotation in mm and degrees

|Improve this Doc View Source

ToUR()

Calculates the equivalent position and euler angles ([x,y,z,r,p,w] vector) of the given pose in Universal Robots format Note: The difference between ToUR and ToXYZWPR is that the first one uses radians for the orientation and the second one uses degres Note: transl(x,y,z)rotx(rxpi/180)roty(rypi/180)rotz(rzpi/180) See also: FromXYZRPW()

Declaration
public double[] ToUR()
Returns
Type Description
double[]

XYZWPR translation and rotation in mm and radians

|Improve this Doc View Source

ToXYZRPW()

Calculates the equivalent position and euler angles ([x,y,z,r,p,w] vector) of the given pose Note: transl(x,y,z)rotz(wpi/180)roty(ppi/180)rotx(rpi/180) See also: FromXYZRPW()

Declaration
public double[] ToXYZRPW()
Returns
Type Description
double[]

XYZWPR translation and rotation in mm and degrees

|Improve this Doc View Source

transl(double, double, double)

Return a translation matrix | 1 0 0 X | transl(X,Y,Z) = | 0 1 0 Y | | 0 0 1 Z | | 0 0 0 1 |

Declaration
public static Mat transl(double x, double y, double z)
Parameters
Type Name Description
double x

translation along X (mm)

double y

translation along Y (mm)

double z

translation along Z (mm)

Returns
Type Description
Mat
|Improve this Doc View Source

Transpose()

Transpose a matrix

Declaration
public Mat Transpose()
Returns
Type Description
Mat
|Improve this Doc View Source

Transpose(Mat)

Declaration
public static Mat Transpose(Mat m)
Parameters
Type Name Description
Mat m
Returns
Type Description
Mat
|Improve this Doc View Source

VX()

Returns the VX orientation vector of the Homogeneous matrix

Declaration
public double[] VX()
Returns
Type Description
double[]

VX orientation vector

|Improve this Doc View Source

VY()

Returns the VY orientation vector of the Homogeneous matrix

Declaration
公共双[]v ()
Returns
Type Description
double[]

VY orientation vector

|Improve this Doc View Source

VZ()

Returns the VZ orientation vector of the Homogeneous matrix

Declaration
public double[] VZ()
Returns
Type Description
double[]

VZ orientation vector

|Improve this Doc View Source

xyzijk_2_pose(double[], double[], double[])

Convert a point XYZ and IJK vector (Z axis) to a pose given a hint for the Y axis

Declaration
public static Mat xyzijk_2_pose(double[] point, double[] zaxis, double[] yaxis_hint = null)
Parameters
Type Name Description
double[] point
double[] zaxis
double[] yaxis_hint
Returns
Type Description
Mat
|Improve this Doc View Source

ZeroMatrix(int, int)

Declaration
public static Mat ZeroMatrix(int iRows, int iCols)
Parameters
Type Name Description
int iRows
int iCols
Returns
Type Description
Mat

Operators

|Improve this Doc View Source

operator +(Mat, Mat)

Declaration
public static Mat operator +(Mat m1, Mat m2)
Parameters
Type Name Description
Mat m1
Mat m2
Returns
Type Description
Mat
|Improve this Doc View Source

operator *(Mat, Mat)

Declaration
public static Mat operator *(Mat m1, Mat m2)
Parameters
Type Name Description
Mat m1
Mat m2
Returns
Type Description
Mat
|Improve this Doc View Source

operator *(Mat, double[])

Declaration
public static double[] operator *(Mat m, double[] n)
Parameters
Type Name Description
Mat m
double[] n
Returns
Type Description
double[]
|Improve this Doc View Source

operator *(double, Mat)

Declaration
public static Mat operator *(double n, Mat m)
Parameters
Type Name Description
double n
Mat m
Returns
Type Description
Mat
|Improve this Doc View Source

operator -(Mat, Mat)

Declaration
public static Mat operator -(Mat m1, Mat m2)
Parameters
Type Name Description
Mat m1
Mat m2
Returns
Type Description
Mat
|Improve this Doc View Source

operator -(Mat)

Declaration
public static Mat operator -(Mat m)
Parameters
Type Name Description
Mat m
Returns
Type Description
Mat
  • Improve this Doc
  • View Source
In This Article
Back to topCopyright © 2015-RoboDK Inc.