Fanuc SDK documentation
Members of Common.JointsPosition :
Members of Common.ExtendedCartesianPosition :
Members of Common.CartesianPosition :
Members of Common.XYZPosition :
Current position
Read the current robot position in world coordinates or user frame coordinates, for single or multi-group controllers.
Read the current robot position in world coordinates or in a specific user frame, for any motion group.
Note: The current position is that of the current tool (UTOOL).
World current position
// Read a current world positionPosition worldPosition = robot.Snpx.CurrentPosition.ReadWorldPosition();// Access the Cartesian positiondouble x = worldPosition.CartesianPosition.X;// Access the user tool at this cartesian positionshort usertTool = worldPosition.UserTool;// Access the joint positionsdouble j1 = worldPosition.JointsPosition.J1;// Read a current world position of group 2Position worldPositionG2 = robot.Snpx.CurrentPosition.ReadWorldPosition(2);
User frame current position
ReadUserFramePosition returns the position relative to a specific user frame. Use user frame 15 to get the currently selected user frame from the pendant.
// Read user frame 2 positionPosition userFrame = robot.Snpx.CurrentPosition.ReadUserFramePosition(1);// Access the Cartesian positiondouble x = userFrame.CartesianPosition.X;// Access the user tool at this cartesian positionshort usertTool = userFrame.UserTool;// Access the user frame idshort usertFrame = userFrame.UserFrame;// Access the joint positionsdouble j1 = userFrame.JointsPosition.J1;// Read a current world position of group 2Position userFrameG2 = robot.Snpx.CurrentPosition.ReadWorldPosition(2);
Multi-group controllers
For controllers with multiple motion groups (e.g., robot + positioner), specify the group number:
// Read world position of group 2Position group2Pos = robot.Snpx.CurrentPosition.ReadWorldPosition(2);// Read user frame position of group 2Position group2Frame = robot.Snpx.CurrentPosition.ReadUserFramePosition(1, 2);
API reference
Members of Common.Position :public class Position {// Default constructorpublic Position()// Constructor with user frame, tool, joints and cartesian positionpublic Position(short userFrame, short userTool, JointsPosition jointsPosition, ExtendedCartesianPosition cartesianPosition)// Cartesian position with extended axespublic ExtendedCartesianPosition CartesianPosition { get; set; }public override bool Equals(object obj)public override int GetHashCode()// Joint values in degreespublic JointsPosition JointsPosition { get; set; }public override string ToString()// User frame indexpublic short UserFrame { get; set; }// User tool indexpublic short UserTool { get; set; }}
public class JointsPosition {// Default constructorpublic JointsPosition()// Constructor with 6 joint values in degreespublic JointsPosition(double j1Deg, double j2Deg, double j3Deg, double j4Deg, double j5Deg, double j6Deg)// Constructor with 9 joint values in degreespublic JointsPosition(double j1Deg, double j2Deg, double j3Deg, double j4Deg, double j5Deg, double j6Deg, double j7Deg, double j8Deg, double j9Deg)// Constructor from an array of joint values in degreespublic JointsPosition(double[] values)public override bool Equals(object obj)public override int GetHashCode()// Check if joints position is near to expected joints position with a tolerance valuepublic static bool IsNear(JointsPosition j1, JointsPosition j2, double degreesTolerance)// Gets or sets the joint value at the specified indexpublic double this[int i] { get; set; }// Joint 1 in degreespublic double J1 { get; set; }// Joint 2 in degreespublic double J2 { get; set; }// Joint 3 in degreespublic double J3 { get; set; }// Joint 4 in degreespublic double J4 { get; set; }// Joint 5 in degreespublic double J5 { get; set; }// Joint 6 in degreespublic double J6 { get; set; }// Joint 7 in degreespublic double J7 { get; set; }// Joint 8 in degreespublic double J8 { get; set; }// Joint 9 in degreespublic double J9 { get; set; }public override string ToString()// Numeric values for each jointspublic double[] Values { get; }}
public class ExtendedCartesianPosition : CartesianPosition {// Default constructorpublic ExtendedCartesianPosition()// Constructor with position, rotations, and extended axespublic ExtendedCartesianPosition(double x, double y, double z, double w, double p, double r, double e1, double e2, double e3)// Extended axis 1 valuepublic double E1 { get; set; }// Extended axis 2 valuepublic double E2 { get; set; }// Extended axis 3 valuepublic double E3 { get; set; }public override bool Equals(object obj)public override int GetHashCode()public override string ToString()}
public class CartesianPosition : XYZPosition {// Default constructorpublic CartesianPosition()// Constructor with position and rotationspublic CartesianPosition(double x, double y, double z, double w, double p, double r)// Constructor with position, rotations and configurationpublic CartesianPosition(double x, double y, double z, double w, double p, double r, Configuration configuration)// Copy constructorpublic CartesianPosition(CartesianPosition position)// Constructor from an XYZ position with rotationspublic CartesianPosition(XYZPosition position, double w, double p, double r)// Position configurationpublic Configuration Configuration { get; }public override bool Equals(object obj)// Create a CartesianPosition with unknow configuration from a homogeneous rotation and translation 4x4 matrixpublic static CartesianPosition FromHomogeneousMatrix(double[,] R)public override int GetHashCode()// Check if two Cartesian positions are near each other within specified tolerancespublic static bool IsNear(CartesianPosition a, CartesianPosition b, double mmTolerance, double degreesTolerance)// Normalize an angle to the range ]-180, 180]public static double NormalizeAngle(double angle)// Normalize the W, P, R angles to the range ]-180, 180]public static void NormalizeAngles(CartesianPosition pose)// P rotation in degrees (Ry)public double P { get; set; }// R rotation in degrees (Rz)public double R { get; set; }// Convert position to a homogeneous rotation and translation 4x4 matrixpublic double[,] ToHomogeneousMatrix()public override string ToString()// W rotation in degrees (Rx)public double W { get; set; }}
public class XYZPosition {// Default constructorpublic XYZPosition()// Constructor with X, Y, Z coordinates in millimeterspublic XYZPosition(double x, double y, double z)public override bool Equals(object obj)public override int GetHashCode()public override string ToString()// X coordinate in millimeterspublic double X { get; set; }// Y coordinate in millimeterspublic double Y { get; set; }// Z coordinate in millimeterspublic double Z { get; set; }}