Singularity Example DR

HMI Panel File

Script File

from DRCF import *

label_status = "OUTSIDE SINGULAR REGION"
checkbox_status = [True, False, False]
checkbox_auto_avoid = True
checkbox_var_vel = False
checkbox_path_first = False


def update_hmi():
    global checkbox_status, checkbox_var_vel, checkbox_path_first, checkbox_auto_avoid, label_status

    # update checkbox
    if checkbox_auto_avoid and not checkbox_status[0]:
        checkbox_var_vel = False
        checkbox_path_first = False
        set_singularity_handling(DR_AVOID)
        checkbox_status = [checkbox_auto_avoid, checkbox_var_vel, checkbox_path_first]

    elif checkbox_var_vel and not checkbox_status[1]:
        checkbox_auto_avoid = False
        checkbox_path_first = False
        set_singularity_handling(DR_VAR_VEL)
        checkbox_status = [checkbox_auto_avoid, checkbox_var_vel, checkbox_path_first]

    elif checkbox_path_first and not checkbox_status[2]:
        checkbox_auto_avoid = False
        checkbox_var_vel = False
        set_singularity_handling(DR_TASK_STOP)
        checkbox_status = [checkbox_auto_avoid, checkbox_var_vel, checkbox_path_first]

    elif not checkbox_auto_avoid and not checkbox_var_vel and not checkbox_path_first:
        checkbox_auto_avoid = True
        checkbox_var_vel = False
        checkbox_path_first = False
        set_singularity_handling(DR_AVOID)
        checkbox_status = [checkbox_auto_avoid, checkbox_var_vel, checkbox_path_first]

    # update label
    j5 = abs(get_current_posj()[4])
    if j5 > 15:
        label_status = "OUTSIDE SINGULAR REGION"
    elif j5 > 10:
        label_status = "NEAR SINGULAR REGION"
    else:
        label_status = "INSIDE SINGULAR REGION"


thread_run(update_hmi, loop=True)
movej(posj(0.0, 36.8, 123.6, -0.0, -70.4, 0.0))


def test():
    movej(posj(0.0, 36.8, 123.6, -0.0, -70.4, 0.0))
    movel(posx(680.0, 34.5, 1142.5, -0.0, 90.0, -0.0))
    movel(posx(679.9, 34.5, 122.3, -0.0, 90.0, -0.0))

Last updated