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

Online Programming Problem


I'm currently doing ONLINE programming with a KUKA robot using the KRC4 Controller.

I'm using it alongside a Vicra Polaris Camera System and I've configured the robot to be able to track a tool in my camera space.

Unfortunately, in online programming, the instructions are sent one at a time it seems:

MOVJ -0.320295 -74.276905 82.523168 -0.000000 81.753737 -0.320295 1412.637000 7.897000 1322.085000 180.000000 0.000000 180.000000
MOVJ -0.281731 -74.982046 83.419173 -0.000000 81.562873 -0.281731 1402.637000 6.897000 1322.085000 180.000000 -0.000000 180.000000

This causes a great problem, as this means the robot moves, then stops then moves again even when I set rounding/zoneData to ensure that once it gets close enough to a point it can go to the next one. 

Is there a way to adapt the post processor etc. to ensure that more than one instruction is sent at a time? I.e. I want both MOVJ to be sent in one go so the movement can be smooth.

Would appreciate any help on this, thanks.

With more research I found that it's perhaps the Robot Driver that's causing the problem:

'When the driver is run from RoboDK, the virtual robot will follow the movement of the real robot in real time. A new command will not be processed until the Ready message is sent.'

Is there a way to overcome this issue and allow a new command to be processed before Ready message is sent?
Hi Tharisata,

You are right, the driver is sending the commands one by one to the controller.
And considering how our driver is built from an RDK standpoint, I don't see sending multiple commands at a time being easy to achieve.

What exactly is your application?

Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel

Dear Jeremy,

Thank you for your prompt reply.

I was trying to do basic control engineering by creating a PID controller that would adapt the speed as it's tracking my target (my target being tracked by a stereo camera). This is done by the camera sending new coordinates to the robot via the Python interface. This in turn creates new MoveJ instructions.

This would mean ideally that the robot doesn't need to stop inbetween MoveJ instructions, which it does with the online programming.

I know this is ambitious, as the coordinate transformation with the camera is done in Python, whether there might be a way to create an Offline script that could interact with the camera? My understanding is there isn't, but I would appreciate any advice on your part.
Did you try setting a rounding value of 10 mm or greater?

More information here:

This should buffer one instruction at a time on a KUKA controller. This may not work on other controllers though.

Users browsing this thread:
1 Guest(s)