1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. KUKA Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

LBR iiwa - detect a force coming from the left/right

  • robotneuling
  • May 7, 2017 at 1:40 PM
  • Thread is Resolved
  • robotneuling
    Trophies
    3
    Posts
    36
    • May 7, 2017 at 1:40 PM
    • #1

    Hi,

    I was wondering if there is a way to check if a force is coming from the left or right (see attached)?
    I would like to put that in something like an if/else statement and program different actions :icon_smile:.

    Thank you.
    robotneuling

    Images

    • 2017-05-07_132343.png
      • 52.77 kB
      • 490 × 173
      • 17

    Files

    2017-05-07_132343.png_thumb 7.33 kB – 20 Downloads
  • KUAJARLOS
    Trophies
    3
    Posts
    28
    • May 8, 2017 at 8:53 PM
    • #2

    I attached example code (text in spanish):

    private ICondition gesto;
    IMotionContainer mc3;
    private CartesianImpedanceControlMode soft2;
    private int sentido = 0;

    public void initialize() {
    j1 = new JointTorqueCondition(JointEnum.J1, -15, 15);
    gesto = j1;
    soft2.parametrize(CartDOF.ALL).setDamping(.5);
    soft2.parametrize(CartDOF.ROT).setStiffness(250);
    soft2.parametrize(CartDOF.X).setStiffness(1100);
    soft2.parametrize(CartDOF.Y).setStiffness(3000);
    soft2.parametrize(CartDOF.Z).setStiffness(3000);
    }

    public void run() {

    IMotionContainer mc3 = lbr.move(positionHold(soft2, -1,
    TimeUnit.SECONDS).breakWhen(gesto));

    if (mc3.hasFired(gesto)) {

    if (lbr.getExternalTorque().getSingleTorqueValue(JointEnum.J1) > 0) {
    getLogger().("movimiento derecha");

    sentido = 1;

    } else {
    getLogger().error("Movimiento izquierda");

    sentido = 2;

    }
    }
    switch (sentido) {
    case 1:
    getLogger().info("Inicio programa movimiento derecha");

    right();
    break;
    case 2:
    getLogger().info("Inicio programa movimiento izquierda");

    left();
    break;
    default:
    getLogger().error("Orden no confirmada");
    break;
    }

    }

  • robotneuling
    Trophies
    3
    Posts
    36
    • May 8, 2017 at 10:43 PM
    • #3

    Thank you KUAJARLOS. I will test it soon ...

  • greengrape83
    Trophies
    3
    Posts
    39
    • May 9, 2017 at 3:59 PM
    • #4

    Maybe you can teach a base frame by which you can measure the force in x/y/z direction.
    You can define x+ as right, y+ as forth, z+ as up. It can tell the direction correctly when force happens on axis 6/7. For force on other axis, it works not well.

    Code
    ObjectFrame oFrame = getFrame("/directbase");
            ICondition forceCondition = new ForceCondition(lbr.getFlange(), oFrame, EnumSet.of(CoordinateAxis.X, CoordinateAxis.Y, CoordinateAxis.Z), 15.0d);
            IMotionContainer container = lbr.move(positionHold(new PositionControlMode(), -1,
                    TimeUnit.SECONDS).breakWhen(forceCondition));
    
    
            if (container.hasFired(forceCondition))
            {
                double x = lbr.getExternalForceTorque(lbr.getFlange(), oFrame).getForce().getX();
                double y = lbr.getExternalForceTorque(lbr.getFlange(), oFrame).getForce().getY();
                double z = lbr.getExternalForceTorque(lbr.getFlange(), oFrame).getForce().getZ();
                if (Math.abs(x) >= Math.abs(y) && Math.abs(x) >= Math.abs(z))
                {
                    getLogger().info("x:" + (x > 0.0 ? "+" : "-"));
                }
                else if (Math.abs(y) >= Math.abs(x) && Math.abs(y) >= Math.abs(z))
                {
                    getLogger().info("y:" + (y > 0.0 ? "+" : "-"));
                }
                else
                {
                    getLogger().info("z:" + (z > 0.0 ? "+" : "-"));
                }
                getLogger().info(lbr.getExternalForceTorque(lbr.getFlange(), oFrame).getForce().toString());
            }
    Display More
    Quote from robotneuling


    Hi,

    I was wondering if there is a way to check if a force is coming from the left or right (see attached)?
    I would like to put that in something like an if/else statement and program different actions :icon_smile:.

    Thank you.
    robotneuling

  • robotneuling
    Trophies
    3
    Posts
    36
    • May 9, 2017 at 5:45 PM
    • #5

    Thank you greengrape83. I will try your solution.

    KUAJARLOS idea seems to work fine and I learned some Spanish :icon_mrgreen:.

  • KUAJARLOS
    Trophies
    3
    Posts
    28
    • May 9, 2017 at 8:41 PM
    • #6

    :top:

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download