SPEL+ Programming of the Force Control Function

Overview

A force control function is a function to control the robot to achieve a given target force and torque using the Force Sensor.
Programming of the force control function is performed with the following procedure.
Set the coordinate system to be executed
Set the parameters
Execute the force control function

Coordinate System of the Force Control Function

The force control function works in the force coordinate system.
The force control function calculates the force detected by the sensor, the force applied to the force coordinate system by the torque, and the torque itself, and controls the robot while moving and rotating the force coordinate system according to the results of the calculations.
Specify the origin of the force coordinate system in a point where contact actually occurs and a force is generated. (Example: Tip point of a workpiece)
Furthermore, the orientation of the force coordinate system varies depending on the application. When executing the force control function in a constant direction, regardless of the posture of the robot, like a case where a force is always applied in the vertical downward direction, specify the base coordinate system and local coordinate system.
When executing the force control function in a direction that changes according to the posture of the robot, like a case where a force is applied in a direction of the workpiece held by the robot, specify the tool coordinate system and custom coordinate system.
The force control function can be executed for the six axes (Fx to Tz) specified in the force coordinate system.

Parameters of the Force Control Function

Parameters of the force control function are defined in the properties of the force control object.
They can be set in the GUI before executing a program. For details on the settings in the GUI, refer to the following section.
Software: [Robot Manager] [Tools] menu
- [Tools]-[Robot Manager]-[Force] Panel

If you want to dynamically change the parameters during executing a program, they can be set using an FSet statement.

  • CoordinateSystem Property
    Specify the force coordinate object for which the force control function is executed.

    Changing only the CoordinateSystem property enables the force control function with the same control characteristics to be executed in another coordinate system.

  • Enabled Property
    Specify the axes (Fx to Tz) on which the force control function is executed.

    You can enable only the axes necessary for an application; for example, you can enable Fx to Fz and disable Tx to Tz to execute the force control function only in the translation direction.

  • TargetForce Property
    Set the target force and torque of the force control function for each axis.

    The robot moves to detect the set force. Note that if a positive value is set, the robot moves in a negative direction to apply a force in the positive direction of the force coordinate system.

    If you want to perform the pressing operation in the positive direction of the force coordinate system, set a negative target force.

    The robot moves not to apply a force if the TargetForce property is set to 0. The robot can move while following the external force.

  • Spring Property
    Set the spring value of the force control function.

    Setting the Spring property enables the force control function to work as if there is a virtual spring, and if an external force is applied, the robot moves to the position to counterbalance the force, and if the applied external force is removed, the robot returns to the original position.

    Increasing the value moves the robot as if a harder spring is provided. If "0" is set, there is no virtual spring, so the robot moves as far as it can according to the force.

  • Damper Property
    Set the damper value of the force control function.

    Decreasing the Damper property value increases the response of the force control function to changes in the force, but makes the motion of the robot more vibratory due to the environments such as posture, Hand, and workpieces. To adjust the Damper property value, decrease the default value gradually.

  • Mass Property
    Set the mass value of the force control function.

    Setting a large value for the Mass property increases the overshoot until the target force is achieved and increases the hunting period. Set the Mass and Damper property values so they are about 1:1 to 10:1 in the translation direction and about 1:1 to 1000:1 in rotation to perform stable control.

    However, note that the motion may be vibratory, or a ratio larger than those may be appropriate for some applications or operating conditions.

    If the Mass property value is too small compared to that of the Damper property value, an error may occur when the force control function is executed.

  • TargetForcePriorityMode Property
    Set the target force priority mode of the force control function.

    The target force may not be able to be achieved after the passing of enough time for some operating conditions such as mechanical rigidity. In this case, enabling the target force priority mode increases the movement and reduces the time to achieve the target force. However, the movement will differ from that specified in Spring, Damper, and Mass. Normally, disable the target force priority mode, and use the mode only when necessary upon fully understanding the characteristics.

  • LimitSpeed Property
    Set the maximum value of the speed at which the hand tip of the robot works during executing of the force control function.

    Specify the three values of translation, rotation, and joint speed. The speed is automatically limited to the specified maximum value during executing of the force control function. This property is useful, for example, if you need to move the robot in a high power mode to perform a pressing operation with a strong force, but want to move it at a low speed.

  • LimitAccel Property
    Set the maximum value of the acceleration at which the hand tip of the robot works during executing of the force control function.

    Specify the three values of translation, rotation, and joint acceleration. The acceleration is automatically limited to the specified maximum value during executing of the force control function.

Executing the Force Control Function

The force control function is executed alone as an operation command, or the position control and force control functions are executed simultaneously by adding a modification parameter to the operation command of the position control. When the force control function is executed, the operation always changes depending on the output of the Force Sensor, so that the robot does not reach the target position of the position control, but even though the same command is executed, the operation ends at different positions every time.

To execute only the force control function, execute the FCKeep statement. The following operation commands can be used in combination with the force control function: Move, BMove, TMove, CVMove, FCSMove, Arc, and Arc3 statements.
To execute the force control function, add the force control object to each statement as a modification parameter.

Example of combination of the force control function with Move:

Move P1 FC1

For details on each statement, refer to the following manual.

  • "Epson RC+ 8.0 SPEL+ Language Reference"
  • "Epson RC+ 8.0 Option Force Guide 8.0 SPEL+ Language Reference"
    For details on operation commands with the force control function enabled, refer to the following manual.
  • "Epson RC+ 8.0 Option Force Guide 8.0 SPEL+ Language Reference"
    - Move

The force control function starts at the same time as the operation command and stops when the travel time calculated at the time when the operation command started has elapsed. The execution of the force control function can be continued after the operation command ends by adding a CF modification parameter. However, if another force control function does not execute an effective operation command or a command to stop the force control function within 60 seconds, an error occurs.

Use an FCKeep statement, for example, in standby mode for a certain period of time with the force control function enabled after an operation command is executed.

The operation end conditions of the force control function (for example, the force control function works until a specified force is reached) can be set in combination with the Till modification parameter or force trigger function.

Key Point


Since errors are accumulated due to a drift of the Force Sensor, the force control function must be executed within 10 minutes after resetting the Force Sensor. The Force Sensor should be reset immediately before using the force control function with no external force applied to it, and should be executed in as short a period of time as possible.

Key Point


The force control function cannot be executed near the singular point of the robot. Execute the force control function avoiding the vicinity of the singular point. If the robot approaches the vicinity of the singular point during executing of the force control function, an error occurs.