Non Constant Speed in Coordinated Motion and Python Interface

  • Hi all!


    I have two robot arm perform collaborated spraying motion with Coordinated Motion Package (J686) in RoboGuide with one holding the workpiece and one holding the spray gun.

    According to the manual, the relative speed should be constant since the coordinated motion package will regulate the speed.


    However, I didn't find the speed to be constant, or in other words, the command speed is not achieved and varied during motion execution. Does anyone knows what might be the problem?


    The LS files is attached. The commanded speed is 250 mm/sec

    There are 124 points in the LS file which travel through a distant roughly of 1700 mm.

    That might cause the constant speed so I'll investigate that as well, but I wanna know if there's other thing causing this.


    I used a self-development python interface to log the joints angles during the execution and numerically calculate the speed.

    The python interface was tested with single arm cases and it works pretty well. So I'm pretty certain it's not the problem of the interface.


    Since the LS file has a lot of lines, here is an overview of the script (the motion part).


      1: DO[101]=ON ;
       2: RUN DATARECORDER ;
       3:L P[1] 250mm/sec CNT100 COORD ;
       4:L P[2] 250mm/sec CNT100 COORD ;

    ...

    125:L P[123] 250mm/sec CNT100 COORD ;
    126:L P[124] 250mm/sec FINE COORD ;
    127: DO[101]=OFF ;


    In addition, I learned a lot and hence able to develop a very nice python interface for FANUC.

    The python interface automate the process of build up a TP program, transfer the program to the robot and execute on the robot.

    Moreover, the interface return the logged joints which is great for analysis.


    I spent tons of time googling for material to learn and finally come up with this.

    If you're interested, find the module on my github page.

    GitHub - eric565648/fanuc_motion_program_exec
    Contribute to eric565648/fanuc_motion_program_exec development by creating an account on GitHub.
    github.com

    Hope this can help you :)

  • AD
  • What exactly do you mean the speed isn't constant? The speed will obviously have to accelerate and decelerate at start/stop and transition points somewhat. Are you talking about that or are you saying the 2 robots are going out of sync with each other?

  • Nation

    Approved the thread.
  • Thank you for the reply!


    The robot arms are coordinated (because they use the Coordinated Package, and the deviation from the target curve is not that much).


    The speed of the tool relative to the workpiece (during in the middle of the motion, not the start/end acceleration/deceleration parts) is not constant.

    I've tried to do the same workpiece and can achieve constant speed (with even higher commanded speed). That's why I'm curious why can't I achieve constant speed in the two-arm case.


    The attached file is the speed-error plot. The green line is the speed plot during the motion.

    The acceleration/deceleration parts were chopped off for better visualization

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now