Left ArrowBack to discussions page
SebastianSebastian Posts: 3 Apprentice
Hey guys,
I am currently working on a peg-in-hole project based on this paper (https://arxiv.org/pdf/1805.08576.pdf). I want to implement the adaptive impedance control using the UR force mode. The problem I face is that the robot always starts moving for different force values as an input. Sometimes it needs 20N and sometimes 40N as an input parameter. It is also possible to push the robot with my hand and then he is moving as expected. Does anybody know how to overcome this problem?
I am using a thread for the force mode to change the force dynamically based on (https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/urscript-dynamic-force-control-20571/):
def adaptive_linear(goal_force, goal_pose, max_force, use_relative_pos, compliant_axis):
        global thread_handler_1 = run turn_on_impedance()
        if not use_relative_pos:
            pose_tmp = pose_trans(p[0,0,0,0,0,0],adaptive_impedance_goal_pose)  # Use base frame
            pose_tmp = pose_trans(get_actual_tcp_pose(),adaptive_impedance_goal_pose)  # Use TCP frame
        movel(pose_tmp, a=.02, v=0.01, t=0, r=0)
        kill thread_handler_1
I start the force mode with:
force_mode(get_actual_tcp_pose(), [1,0,0,0,0,0], f, 2, [400,400,400,10,10,10])

Best regards


  • ModernDaveModernDave Posts: 8 Apprentice
    I have experienced issues with adaptive stiffness, especially with any activated tooling with vibrations or centrifugal force. Try disabling the automated adaptive stiffness and setting a stiffness variable of your choice.
  • SebastianSebastian Posts: 3 Apprentice
    Hey, thank you for the answer! Can you tell me how to disable the adaptive stiffness and where can I set a stiffness variable?

    Best regards
Sign In or Register to comment.
Left ArrowBack to discussions page