continuous motion - avoid exact positioning between two motion commands

  • Hi,


    I am currently working on a robot application and would like to smooth some motions.
    I already tried to used the setBlendingRel(…) and the setBlendingCart(…) command.


    The problem is that in some cases I still have an exact positioning between two motions.
    e. g. in the following example I am trying to approach a point (in z-direction) and reduce the velocity:


    Code
    gripper.move(lin(new Frame(offsetFrame, Transformation.ofDeg(0, 0, 100, 45, 0, 0))).setJointVelocityRel(0.7));
    gripper.move(lin(new Frame(offsetFrame, Transformation.ofDeg(0, 0, 1, 45, 0, 0))).setJointVelocityRel(0.2));


    Now the problem is that I get an exact positioning (robot stops for a short time) between the two motions. I already tried to use the setBlending command, but I still have a short stop between the two motions.


    How can I manage to get a smooth and continous motion between the two commands?
    What are the other possibilities (e. g. SmartServo, Spline, moveAsync, MotionBatch ...) for smoothing motions?


    Thank you.
    - robotneuling :icon_smile:

  • There problem is, that the application "stays" in the line with the move command until the motion is finsihed and then it goes to the next line and starts this command. If you try to do a blending, you must have knowledge about the the current end position of the movement and of the following motion. If you do know where to go next, you cannot plan the path.
    So you have to write a SplineMotion or MotionBatch which consists of more then one motion. With those motion you can online define generell motion parameters, which will be used by all ("single") motions within the SplineMotion or MotionBatch. But ensure that you know how the robot could/will move when using a Spline.
    Or you can use a moveAsynch, here the application will not "stay" in this line until the motion is finished but run through your application until there is a move("Sync") or any other reason for to wait for or until the application is finished. With the moveAsync you can parameterise every single motion with its independent motion parameters.

Advertising from our partners