RobotStudio event

Convert jointTarget to robTarget

Options
Hi, all!

Just getting started with RAB, and had a quick question:  Is it possible to convert a position variable between JointTarget and robTarget data types using the PC SDK?  I would assume this would require a MotionSystem or MechanicalUnit object, to utilize the appropriate kinematics.  I'm looking for something similar to RAPID's CalcRobT and CalcJointT.

If not available with the PC SDK, what is the "correct" way to do this conversion from the PC SDK?  I could copy the data to a RAPID variable on the controller, execute a tiny position-conversion RAPID task, and read back the converted RAPID variable.... but that seems awefully messy.

Thanks for your help!
  - Jeremy


Comments

  • RussD
    Options
    MechanicalUnit class has overridden versions of GetPosition() that return either a jointtarget or a robtarget, so there shouldn't be any need to convert between the two.
    Russell Drown
  • RussD,

    Actually, there are still plenty of times I might want to convert joint->world position.  The GetPosition() function only returns me the current robot position.  What if I want to do the conversion for a position other than the current position?

    A few examples:

    1) PC application allows user to input a position in either world or joint format.  If the user has entered a world position and switches to "joint format", I'd like to convert his previously-entered position to its joint equivalent.

    2) RAPID task takes a series of joint-format positions from a PC GUI and traces a path between these points.  PC application wants to calculate the different joint positions using known world-space offsets/rotations.  Pt B = Pt A + 100mm in X direction.  These positions then need to be converted back to joint-space for RAPID task.

    3) PC reads a sequence of path points from a RAPID task, which can be a mix of both joint and world formats.  For consistency, PC application converts all points to either JOINT or WORLD format to display to the user.

    These are just off the top of my head.  There have been plenty of other cases when I've needed to do this conversion.  How can I accomplish this JOINT<->WORLD conversion in PC SDK for positions *other* than the current robot position?

    Thanks again!
      - Jeremy


  • carlosmtz2000
    Options
    Hi,
     

    RAB does not support inverse kinematics. But you can do it as you mention. Copy your variables to a background task and you can make the conversion. There are RAPID functions that you can convert between targets: CalcJointT and CalcRobT. Each one has its limitation.

     

    Hope this helps

     

    BR/Carlos
    Carlos Martinez
    ABB