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

KUKA LWR IV+ Joints Update

Hello, I have a KUKA LWR IV+ with a KRC2 that I have modeled using RoboDK. When I perform a MoveJ movement the robot is not moving correctly due to the fact that robodk is sending the joints list as:

[[J1], [J2], [J3], [J4], [J5], [J6], [J7]]

but KUKA has declared the third the axis as external and is waiting for the external value to be at the end like this:

[[J1], [J2], [J4], [J5], [J6], [E1]]

So the robot is moving correctly in the simulation but the real robot does not. Is there a way to change the position of the joints when i model the robot ?

In order for the robot to move correctly i have to manually change the joint values as this:

target = RDK.Item("Target")
joints = tr(target.Joints())

robot.MoveJ([joints[0, 0], joints[0, 1], joints[0, 3], joints[0, 4], joints[0, 5], joints[0, 6], joints[0, 2]])

Then the real robot moves correctly but the robot in simulation does not.
Are you using an SRC file to program a KUKA LBR 7-axis robot? I've never seen this before...

In any case, RoboDK assumes the joints are in the correct order (same as the Java sunrise controller). If you have a list of joints and axis 3 is the last joint, then you have to reorder the joint list accordingly.
Hi and thanks for replying.

No I am not using and src program, i am only using the RoboDK API and python. To understand what my problem is i have attached 6 files. I have connected my robot to the RoboDK API using apikuka, and selected the KRC2 post processor and I a am facing this situation.


At the first three files, i am using python to move the robot to a specific location using the MoveJ command. As you can see the robot in the simulation is moving correctly to the target but the real robot does not because the joint values are in different position.


At the second case i arrange the joints to the correct position and the real robot moves correctly but the simulation robot does not.

In both cases i have used a custom robot I made using the STL files of KUKA LBR IV+ and the parameters specified in the manual. The KUKA i use has a home position of [0, 90, 0, 0, 0, 0, 0] and has declared as External Axis the third joint (see KUKA_AXIS.png ).

The problem as i understand is that KUKA expectes the value of the external axis to be the last one, but when i modeled the robot i did not specify an external axis, so the robodk sees the third axis as a regular axis and send the joint values in that order.

So can i declare an external axis on the robot or do i model it as a 6 axis robot and declare an external axis or there is a way to configure the post processor to see the third axis as external ?

Sorry, I forgot the attachments.

Attached Files Thumbnail(s)

Users browsing this thread:
1 Guest(s)