Point-to-Point Movement causing jerky Robot Movement

Started by jacksonbewley, September 13, 2013, 03:50:04 AM

Previous topic - Next topic


I was trying to move our robot across a polycurve which has been divided into many many points.  I used a point-to-point component as the command generator and was able to successfully write a src file, yet because I used point-to-point the robot was not interpolating its path in any way and moved very slowly and jerkily between points without time to accelerate. 

For this reason, I changed approaches and started to use the spline command component, but I've run into issues there as well on the grasshopper side.

I am wondering if there is any quick way to smooth out this point-to-point path so that the robot can execute it more quickly?  Perhaps this is just a fundamental part of the way p2p works.

Robot = Kuka Agilus

Thanks for your time,


Johannes @ Robots in Architecture

Hello Jackson,

Below is the reply that I sent to Melissa regarding that issue:

The robot always interpolates between positions. In the case of KUKA|prc, the default interpolation method is C_DIS (at the end of every command), meaning that it interpolates by distance. At a certain point between two points, the robot will start deviating form the direct path to achieve a smooth motion. Things you can do to make it smoother: At the beginning of the KUKA|prc code, add a custom KRL component with a text input of "$APO.CDIS=25" - the would mean that once the robot is 25mm away from the end point, it may deviate from the set path. Another way would be to replace all C_DIS with C_VEL - with C_VEL referring to an interpolation that tries to achieve constant velocity. You can set the amount in percent via $APO.CVEL. For now, you would have to do the replacing either via Grasshopper text tools or - more reliably - with a text editor. Giving users the choice between C_DIS and C_VEL is on the KUKA|prc to-do list, though.
I've attached a manual - it's for KRC2 but works for KRC4 as well. Page 84 should be interesting.