8DOF Optimization

Started by WAAMMAAM, April 07, 2026, 02:24:05 AM

Previous topic - Next topic

WAAMMAAM

Hello,

I'm working with a KR250 and KP2-HV500, and I'm relatively new to Rhino/Grasshopper/KUKA PRC. I'm trying to optimize 8DOF coordination/DOF redundancy aligning surface normal vectors from an imported mesh sat on top of the KP2 part positioner with the TCP of the KR250. The goal is to minimize robot joint travel/minimize program runtime, but I'm having a hard time with the coordinate systems moving with the rotary axis. I have the tool frames configured to align the TCP normal to the surface as desired without use of the part positioner, but I'd like to optimize with using the part positioner. I've tried using a GhPython script that takes in the tool frames and solves for redundancy with the use of the Jacobian, but with not much luck due to my own confusion on the relationship between the tool frames and coordinate systems of Rhino World, KR250, & the KP2. I'm also curious if there's a way to investigate the internal Inverse Kinematics solver of KUKA PRC, particularly the DH table convention used.   

I'm sure this has probably been accomplished before in other ways, but I'm having a hard time implementing it myself. Any help/tips/suggestions/etc. would be much appreciated!

Johannes @ Robots in Architecture

Hello,

The core problem with so many DOF is that there are infinite solutions, so finding a "best" solution is tricky.
In general, KUKA|prc works with an offset base when using a positioner, so the coordinate systems are being moved by the positioner within the robot's workspace. You can replicate that movement with just two rotations, taking the offsets from the relevant positioner (see data sheet, or let me know what value you need!). The solver is optimized and non-generic, so we do not use DH values directly internally.

Without knowing what exactly you are using the robot for, the challenge for that kind of optimization is the different speed of the axes. So just optimizing for the least amount of axis movement doesn't lead to an optimal solution.

Unfortunately, I don't have a suitable 2-axis optimization code that I could share.

Let me know if e.g. you need to connect KUKA|prc to additional software systems etc.

Best,
Johannes

WAAMMAAM

Hi Johannes!

Thank you so much for getting back to me. Where would that data sheet be found for figuring out the two rotations and offsets for the positioner in KUKA PRC? I have the positioner root frame set relative to the KR250 which includes a X and Z translation as well as a 90-degree rotation in A, and I think that's largely contributing to my confusion for mapping the tool frames relative to the positioner rotations in the offset base frame.

Thank you!

Johannes @ Robots in Architecture

Hi,

I've got an internal example that uses the DKP400. In that case, the centre of rotation is 347mm below the top of the turntable. I'll send it to the eMail address in your profile.

Best,
Johannes