# Impedance Control Example DR

### HMI Panel File

<figure><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FiFSbFyjntV5gvDtDoA7d%2Fimmagine.png?alt=media&#x26;token=d923fb76-8dcc-42fb-ae5a-af33c83dd046" alt=""><figcaption></figcaption></figure>

{% file src="<https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FhVJvWysN9wGOor0RYB0v%2Fimpedance_hmi.hmi?alt=media&token=e91387ec-04f2-4ff3-9c20-7f4c70b3f833>" %}

### Script File

```python
from DRCF import *

# impedance control gains
Kp = 50
Kd = 40

running = False

# impedance control function
def start_task():
    global running

    # setup compliance parameters
    stiffness = [Kp*200, Kp*200, Kp*200, Kp*4, Kp*4, 400]
    damping = [max(0.1, Kd*0.02), max(0.1, Kd*0.02), max(0.1, Kd*0.02), max(0.1, Kd*0.02), max(0.1, Kd*0.02), 1]

    # home position
    movej(posj(90, 0, -90, 0, -90, -85.0), v=30, a=100)
    set_external_force_reset()

    # start impedance control
    task_compliance_ctrl(stx=stiffness)
    set_damping_factor(damping)

    # wait for user to stop impedance control
    running = True
    while running:
        wait(1)

    # resume position control
    release_compliance_ctrl()

```

### Task File

<figure><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FRnuOD7T1y8cDizuXu7RG%2Fimmagine.png?alt=media&#x26;token=a446f130-8e19-485a-8718-b2411c7dfcbe" alt=""><figcaption></figcaption></figure>

{% file src="<https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2F6QS934Bkq4eZLIAoY6HE%2Fimppedance_task.dt?alt=media&token=1bec3c6b-3bbd-47fb-8fe7-15019027b0b4>" %}
