Search Results for

    Show / Hide Table of Contents

    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.

    In This Article
    Back to top Copyright © 2025 ABB