New to the robotic world. Need help with the force detection

  • Hello everyone,


    I'm trying to get the position of my tool once the robot hits the edge of a hole so I"m using the shear force condition as bellow:


    ForceCondition shearForce = ForceCondition.createShearForceCondition(tool.getDefaultMotionFrame(), holeCC, CoordinateAxis.Z, 5);


    But in certain positions the robot stops before reaching the edge and the condition turns to true as if it detected a force but in reality it didn't. According to kuka help the quality of the measurement depends on the current robot pose, and declines near singularities. But in my case the robot is far from being in a singularity and if the movement applied has no force condition it would fulfill the motion.


    Is there a way to get a correct measurement or to receive an indication that the motion wasn't done and that the robot stopped so I could change my path to something measurable.


    Thanks for your help!

  • If your robot is moving, there'll be noise in the signal, depending on your speed and the weight of the tool, 5 can be quite low, low enough where the movement creates enough noise to trigger the condition.

  • Hi Kiiwa,


    Sorry for the late reply I was for some time.


    The tool's load data is less than 1Kg, I 3D printed the simulated tool for the motions test. Plus I perform the moves with nothing in the space to interact with the tool for the force detection. The motion is stopped literally in certain positions! So I'm wondering if there's a way to avoid this and fulfill the motion?

  • Hi evo,


    Actually i hear some noise when the robot moves but since I'm new to the robotic world I thought it was normal due to the motor in each axle!


    But still I need to have it as low as 5 because I'm detection hole center for holes in sheet metal parts, so more than 5 will damage the part before detecting any force.

  • KUKA documentation explains that if the tool load is less than 1kg, the calibration process is not very accurate.

  • I'd suggest you using jointTorqueCondition rather than ForceCondition when it's small amount of force/torque you want to detect.

    The noise(not referring sound noise. fluctuation of values) is mainly caused by motions and innate tolerance of torque sensors, which may be eased down when we shrink the number of sensors we use.

    Track the major axis on your approaching motion(I guess it should be #4 or #2 since your motion seems to be toward -Z) and try use jointTorqueCondition for the axis.


    Further and more accurate solution will be using secondary condition with your force/torque condition.

    Commonly force/torque and positions are two major figures we can monitor from a manipulator.

    If you can make your own listener/thread to check the CartesianPosition(keep it focused on Z) of the manipulator as the approaching motion is being delivered as well as your force/torque condition, you will be able to check in combination of conditions such as 'force/torque detected && position merely changed comparing to last few values' which will make your logic more satisfactory.

  • Going through all I read on this forum I decided to check everything related to my project. I stared by weighting my tool which is 1.3 kg and I calculated the center of mass from SolidWorks. On the other hand I read the robot external forces at the TCP and get the inaccuracies on each axis and apply the offset to the threshold I'm using for my measurements. It seems to be working good when I'm detection shear force at 5N, and no damage was caused to my sheet metal part.

    What I want to do next is : if even using the offset of the inaccuracy and I still have a non valid force I'll switch to use Seulki's method that uses jointTorqueCondition.


    Thanks everyone :)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now