Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

KUKA LWR IV + KRC2 Post Processor

#1
Hello, is there a way to change the KUKA KRC2 post processor, in order to declare the joint list as seen in the first picture (with E1 being the third joint)?

For some reason the KUKA LWR IV+ i use has declared the third joint as external and expects the joints to be send in this order:

robot.MoveJ([A1, A2, A3, A4, A5, A6, E1]) with E1 being the joint value for the 3rd Joint (J3) as seen in the first picture.

However robodk sends the joint values as:

robot.MoveJ([A1, A2, A3, A4, A5, A6, E1]) with E1 being the joint value of the 7th Joint (J7) as seen in the first picture.

So far i have manually swapped the order of the joints (as seen in the code below) before sending them to KUKA, to match the simulation with the robot's real movement.

Code:

from robolink import *    # RoboDK API
from robodk import *      # Robot toolbox
RDK = Robolink()

robot = RDK.Item("KUKA")

pose = RDK.Item("Bottom Left")

# Move Robot on Simulation Only
RDK.setRunMode(1)
robot.MoveJ(pose)

# Move real robot
""" 

    Change the position of the Joints because KUKA LWR IV+ has declared the third joint as an External Joint.

    KUKA LWR IV+ Joints = [A1, A2, E1, A3, A4, A5, A6] and RoboDK sends the joints as [A1, A2, A3, A4, A5, A6, E1]
"""
RDK.setRunMode(6)
tar = tr(pose.Joints())
robot.MoveJ([tar[00], tar[01], tar[03], tar[04], tar[05], tar[06], tar[02]])


However, due to different joint limits if i swap them and the 3rd Joint has a value bigger than 7th Joint then the program exits. So I am searching for a way to manipulate the post processor in order to send them correctly to avoid joint limitations.


Attached Files Thumbnail(s)
   
#2
Hi there,

This section of the online documentation showed you how to modify the post-processor.
https://robodk.com/doc/en/Post-Processors.html#EditPost

Have a great day.
Jeremy
#3
Thanks for the helpful documentation.

To clarify, if I modify a Post Processor it will only affect the generated program and not the output of the Python RoboDK API function robot.MoveJ()?
If I want to modify this function i will have to change it from the robolink.py file?
#4
Hi Konstantinos,

You are right.
I recommend you to create a copy of the post-processor before modifying it.
This way you can always roll back to the original version.

Jeremy
#5
(03-19-2020, 08:19 PM)Jeremy Wrote: Hi Konstantinos,

You are right.
I recommend you to create a copy of the post-processor before modifying it.
This way you can always roll back to the original version.

Jeremy

Thank you Jeremy, that was helpful.

Have a nice day. :)

Konstantinos
  




Users browsing this thread:
1 Guest(s)