3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

set_force_factor()

Definition

set_force_factor(force_factor, time)

Features

In force control, This function sets the force factor based on the global coordinate (refer to set_ref_coord())

Caution

In non-FTS models (A0509, A0912, A0509F, A0912F, E0509), compliance control is only possible in the translation direction, and the control error may be large.

Parameters

Parameter Name

Data Type

Default Value

Description

force_factor

float[6]

[1.0, 1.0, 1.0, 1.0, 1.0, 1.0]

(Translation x, y, z), (Rotation x, y, z)

Range: 0.1 - 2.0

time

float

0

Force factor varying time [sec]

Range: 0 - 1.0

* Linear transition during the specified time

Caution

In the Non-FTS A & E model, the data type of the force_factor parameter can be either float[6] or float[3] (rotational parameter is automatically set to  the default value)

Note

  • When the force factor is set to the default value (1.0), it operates with the default control gain set according to the model.

  • Setting the force factor below 1.0 lowers the response to external force, so it takes longer to reach the target force and vibration is reduced.

  • Setting the force factor above 1.0 raises the response to external force, so the target force is reached faster, but vibration may occur.

  • The force factor can be set only in force control. Once set, it is applied to all axes, both the force-controlled direction and the compliant directions. A call made while only compliance control is active is rejected.

Warning

  • If the force factor is set to greater than 1.0, the robot may vibrate depending on the contact surface. Please use it carefully.

Return

Value

Description

0

Success

Negative value

Error

Exception

Exception

Description

DR_Error (DR_ERROR_TYPE)

Parameter data type error occurred

DR_Error (DR_ERROR_VALUE)

Parameter value is invalid

DR_Error (DR_ERROR_RUNTIME)

C extension module error occurred

DR_Error (DR_ERROR_STOP)

Program terminated forcefully

Example

Python
# Example #1
# Using the force factor alone (set in force control, applied to all axes: force-controlled and compliant directions)
# 1. Move to initial posj
q0 = posj(0.0, 0.0, 90.0, 0.0, 90.0, 0.0)
set_velj(30.0)
set_accj(60.0)
movej(q0)

# 2. Start force control (apply -20N force along Base -z direction, with a contact object below)
k_d = [3000.0, 3000.0, 3000.0, 200.0, 200.0, 200.0]
task_compliance_ctrl(k_d)
force_desired = 20.0
f_d = [0.0, 0.0, -force_desired, 0.0, 0.0, 0.0]
f_dir = [0, 0, 1, 0, 0, 0]
set_desired_force(f_d, f_dir)

# 3. Set the force factor
f_f = [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
set_force_factor(f_f)
wait(2.0)
release_force()
wait(0.5)
release_compliance_ctrl()

# Example #2
# Using with the damping factor (set_damping_factor)
# Set the damping factor after starting compliance control, and the force factor after starting force control
# 1. Move to initial posj
q0 = posj(0.0, 0.0, 90.0, 0.0, 90.0, 0.0)
set_velj(30.0)
set_accj(60.0)
movej(q0)

# 2. Set the damping factor after starting compliance control
k_d = [3000.0, 3000.0, 3000.0, 200.0, 200.0, 200.0]
task_compliance_ctrl(k_d)
d_f = [1.5, 1.5, 1.5, 1.5, 1.5, 1.5]
set_damping_factor(d_f)

# 3. Start force control and set the force factor (apply -20N force along Base -z direction, with a contact object below)
force_desired = 20.0
f_d = [0.0, 0.0, -force_desired, 0.0, 0.0, 0.0]
f_dir = [0, 0, 1, 0, 0, 0]
set_desired_force(f_d, f_dir)
f_f = [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
set_force_factor(f_f)
wait(2.0)
release_force()
wait(0.5)
release_compliance_ctrl()

Keyword

set / force / factor / set_ / set_force / force_factor