Convert jointTarget to robTarget
jzoss
✭
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
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
0
Comments
-
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 Drown0
-
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
0 -
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 helpsBR/CarlosCarlos Martinez
ABB0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 249 ScreenMaker
- 2.7K Robot Controller
- 310 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 785 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 4 Job listings