Left ArrowBack to discussions page
BMitchellBMitchell Posts: 2 Recruit
I am attempting to automate a process where the peak force to open a door/drawer is measured using a UR10 and FT300.  The UL requirements are given as a force increase over time, 13-18N/s (3-4lbf/s).  The door/drawer is held closed by a magnetic seal and needs to open with a maximum for of 66.7N (15lbf) at the given force increase rate. I am using the "use force torque sensor data in force control mode (all force nodes)" from the Robotiq FT300.  I tried using the force_mode script and used "tcp_z_force" as the tool Z force.  I ran "tcp_z_force+0.124" in a thread to increase it from 0 to 15.5 per second, given the 125hz refresh rate.  The script didn't seem to recognize "tcp_z_force" as a number, therefore didn't give me any force in the tool z direction.  If I entered a number in place of my variable, it ran normal at that constant force.

force_mode( tool_pose(), [0, 0, 1, 0, 0, 0], [0.0, 0.0,tcp_z_force, 0.0, 0.0, 0.0], 2, [0.1, 0.1, 0.15, 0.17, 0.17, 0.17]) 

The next best thing I came up with so far is just to use either the UR force wizard combined with "use force torque sensor data in force control mode (all force nodes)" and simply running a wait plus another UR force wizard as a child to the first one and then repeat.

I also did this with the URCaps Force Control to compare the two.  This one needed to be one after another instead of as a child.  Both seemed to work but i'm sure neither are giving me a very linear increase on force.  More of a stair step if it was to be graphed.  In comparison the UR force wizard seemed to be smoother but needed an extra wait time added on the last increase in order to actually reach the commanded force.

So there is what I have tried.  I am open to suggestions of any other or better ways to increase force over time linearly. Once I figure that out I have a simple loop that can run in a thread to capture the peak force reading.

Thanks in advance,


Best Answer

  • David_GariepyDavid_Gariepy Posts: 154 Handy
    Accepted Answer
    Hi @BMitchell

    I did a quick example where the force is linearly increased over time between 2 waypoints. 
    The target force is constantly updated in a thread, you can change the value to suit your application. The robot will move toward the "end point" if the current force is below the target force.
    Do not forget to use the check expression continuously for the if statement. 
    I attached the .urp program below. 

    David Gariépy
    Integration Coach


  • BMitchellBMitchell Posts: 2 Recruit

    Thank you! 

    Right at the end of the day yesterday I got my original force_mode idea to work within a loop instead of trying to use a thread to increase the variable I had inserted as the tool Z force.  I did not have much time left to verify it's consistency/accuracy yet though.

    I like your idea.  It might work even better for my application.  I will try that today.  I'm not familiar with the screenshot you posted.  I am guessing this is an e-series program.  I just have standard UR10 with poly 3.7.  I would guess it will have the same capabilities in this instance.

    Thank you very much for the info and the timely response!

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