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())
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 |
- When the force factor is set to the default value (1.0), it operates with the default damping value set according to the model.
- Setting the force factor below 1.0 reduces the setting time to follow the target force value, but may increase vibration.
- Setting the force factor above 1.0 may reduce vibration but increase the setting time to follow the target force value.
- The force factor setting is applied only during force control. It is applied as a default value for compliance control.
- This function is supported only for the M/H series. It cannot be used for A series.
- If the force factor is set to less 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
# 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)
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]
d_f = [1.0, 1.0, 0.8, 1.0, 1.0, 1.0]
f_f = [1.0, 1.0, 1.2, 1.0, 1.0, 1.0]
set_desired_force(f_d, f_dir)
set_damping_factor(d_f)
set_force_factor(f_f)
wait(2.0)
release_force()
wait(0.5)
release_compliance_ctrl()