Motion domain
Overview
The MotionDomain
namespace lets you access the mechanical units of the robot system.
Motion system
You can access the motion system by using the Controller
property MotionSystem
.
private MotionSystem aMotionSystem;
aMotionSystem = aController.MotionSystem;
By using the MotionSystem
object you can, for example, use its SpeedRatio
property to find out about the current
speed of the robot.
Accessing Mechanical units
The mechanical units can be of different types, for example a robot with a TCP, a multiple axes manipulator, or
a single axis unit. All these are available through the MotionSystem property MechanicalUnits
.
If only the active mechanical unit is of interest you may use the ActiveMechanicalUnit
property.
MechanicalUnitCollection aMechCol =
aController.MotionSystem.MechanicalUnits;
MechanicalUnit aMechUnit =
aController.MotionSystem.ActiveMechanicalUnit;
Mechanical unit properties and methods
There are numerous properties available for the mechanical unit, for example
Name, Model, NumberOfAxes, SerialNumber, CoordinateSystem, MotionMode, IsCalibrated, Tool
and WorkObject
and so on.
It is also possible to get the current position of a mechanical unit as a RobTarget
or JointTarget
.
RobTarget aRobTarget =
aController.MotionSystem.ActiveMechanicalUnit.GetPosition(CoordinateSystemType.World);
JointTarget aJointTarget =
aController.MotionSystem.ActiveMechanicalUnit.GetPosition();
To read Rapid data that is, RobTarget and JointTarget, user must Logon to controller.
Find out more about the MotionDomain
in the API Reference help.
Calibrating Axes
The revolution counters of a TCP mechanical unit is updated using the method MechanicalUnit.SetRevolutionCounter
.
For example, when the control system is disconnected and the robot axis is moved update the revolution counters.
MechanicalUnit.GetMechanicalUnitStatus
property shows whether calibration is needed or not.
Fine calibration is performed using the method MechanicalUnit.FineCalibrate
.
FineCalibrate
and SetRevolutionCounter
require the system to be either in 'Auto mode and Motors off state’ or in
'manual mode and granted access’ by the FlexPendant. FineCalibrate
and SetRevolutionCounter
also require
the corresponding UAS grants.
For more information on how to perform calibration, see Operating manual - IRC5 with FlexPendant.
Caution
You must update the revolution counter precisely for an accurate robot positioning as an incorrect robot positioning may cause damage or injury.