Hello, I have few questions about the force mode:
1- can I read the position of the TCP in the force mode at any time?
2- is it possible to change the robot of the Force mode when I’m already using it. like if I want to increase the resistance of the robot on one axis while the robot is already in the Force mode.
3- is it it possible to give the robot a path to follow when the robot is already in the force mode. which mean that if any external forces appear the robot will be compliant?
separate question:
4- is it possible to give the robot in anyway a force or torque command?
1 - use URscript command get_TCP_force() or force() for Fx, Fy, and Fz at the TCP
2 - try using threads in your program these can update your force_mode() command without interrupting your primary program
3 - if you nest ‘move’ commands in your program under the force node you can have the robot move between points exerting force/torques with certain compliances in defined directions.
4 - check out force_mode() command in URscript there are several settings within this command that can be configured (e.g. force in Newtons, wrench direction/compliance vector, frame with respect to apply force/torques)
Note: if you are using the teach pendant, go to program tab > templates (ribbon on left side) > add a ‘Force’ node or whatever its called then configure this node and press the ‘Test’ button then ‘Freedrive’ button when ready. This should give you a good quick representation of what force/torque will be applied and how fast it will move. This of course will change dependent on how you use it in the program and may need to be adjusted as so. I’m still learning about the force function on the UR, so someone else in the urcommunity might have a better answer for you. Anyways hope that helps, and best of luck!
Thank you for responding. in the description of th force mode i noticed that the precision of the force excerted in the force mode ist ±10N. this is very inaccurate for my application, is it possible to increase it?
This is what UR specifies the robot can achieve tolerance wise, so I would assume these values are set in stone. You can try to use less force and moving slower this may help you. There are several other URscript commands that can influence or set parameters for force_mode() so these can be configured to change the behavior of the force mode command.
Not sure of your tolerance or your application, but I believe the UR3e has a little better precision values (I could be wrong). You might have to do some analysis to see what factors help refine your force but you might be able to get a tighter precision (+/-10 N) in some cases.
Thank you again for the specific response. I do have a question left. ist it possible to control 2 UR robots from the same PC if I am using RTDE. so I can read and write at the same time in both of them.
for better explanation:
1- execute force mode on the first robot
2- read the TCP position of the first robot and send it to the second robot as command
3- if the FT sensor on the seconde robot arised any values, I want to update my force mode on the first robot with the measured force from the second robot, so I can feel the difference.
thank you again
This tolerance is hard-wired by the built-in sensor. If you need higher precision then use an external force/torque sensor. There are many, Robotiq makes one that is much higher precision but my advice is go with a vendor that you think has local support or will provide good remote support for their product.
Fairly new to this. So we are programing a cobot to push a workpiece through a cutting wheel. We were testing out a simple program using Force mode
The program is a follows:
Set Payload: Payload_2
Force
MoveL
Waypoint_1
Set Payload: Payload_2
Waypoint_2
When we tested it, the Cobot moved from Waypoint_1 to Waypoint_2 and continued rather than stopping at Waypoint_2. The cobot reached waypoint_2 and continued until it reached its limits. Not too sure why, any help is most appreciated. If a different approach is recommended we’re eager to learn!
I am having a similar application to open a door using a bar attached on the gripper side, so I used a move J inside a Force node, but it continues applying force even after endpoint, tried giving an end_force_mode at the end but it didnt work out, so should I put the end_force_mode inside an if condition, if so what condition should I use inside if.