Left ArrowBack to discussions page
Olivier_GrenierOlivier_Grenier Posts: 42
edited June 2016 in Applications
Hello everyone,

We wanted to get your input on how you would apply a sealing material to the part below with a Universal Robots (following the red line).  How many waypoints do you think it would take?

Looking forward to your answers.

Olivier Grenier-Lafond
Sales & Marketing Coordinator @ Robotiq
[email protected]


  • BeachChEBeachChE Posts: 19Founding Pro Handy
    80-110, the more straight lines area, the fewer waypoints.
  • JeanPhilippe_JobinJeanPhilippe_Jobin Posts: 63Beta Tester VIsion 1.1 Program, Wrist Camera URCap 1.3.0 Handy
    edited May 2016
    I agree with @BeachChE , 80-110 is a good guess.
    Since there are around 30 arcs and each arc requires 3 waypoints, I would say around 90.
    Jean-Philippe Jobin
    Eng., M.Sc. / ing., M.Sc.
    Chief Technical Officer / V.P. R&D 
  • Kaleb_RodesKaleb_Rodes Posts: 56Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Tactile Sensor Beta Testers, Beta Tester Camera URCap 1.2.0-beta Handy
    @Olivier_Grenier my estimated guess would be 80.

    You're going to need moveP's (will move the tool linearly with constant speed with circular blends, and is intended for some process operations, like gluing or dispensing), some Circle Moves nested in those moveP's, and a couple moveL's for those straight lines.

    Almost as simple as it sounds!
    Kaleb Rodes
    Applications Engineer
  • Alexandre_PareAlexandre_Pare Posts: 56 Crew
    Alexandre Pare, Eng.
    Application Engineer
    [email protected]
  • Ryan_WeaverRyan_Weaver Posts: 45Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Wrist Camera URCap 1.3.0 Handy
    It could be even more if you wanted to simply create massive spline of Move P Waypoints from a CAD model or something like that.  That way, you wouldn't even need to consider using Move C for the radii because you would have so many points in between it would smooth it out.  In that case you may calculate 250 points if you really needed to match the profile.  There are some 3rd party softwares that can do that today if you had a DXF or 3D model.  Alternatively you could just use the FT sensor path generation  ;)

    Ryan Weaver   |   Automation Engineer   |   Axis New England
    [email protected]

  • Olivier_GrenierOlivier_Grenier Posts: 42
    edited May 2016
    Some of you might wonder what @Ryan_Weaver meant by the FT sensor path generation...you can now click here to have a look at the video demonstration. Our answer: No more waypoints!
    Olivier Grenier-Lafond
    Sales & Marketing Coordinator @ Robotiq
    [email protected]
  • Alexandre_PareAlexandre_Pare Posts: 56 Crew
    edited July 2016
    I found this proof of concept video from Cross Automation on Youtube. This is a typical example of where path recording is a must! @Andrew_Mason any chance you still have the program for this such that we can see how many points it took? Could you try it out with the path recording?

    Alexandre Pare, Eng.
    Application Engineer
    [email protected]
  • lakshmip001lakshmip001 Posts: 41Partner Apprentice
    I am using robot for spray painting application. I want the robot to follow straight line path at a constant tcp speed. Movep gives constant speed but i dont know if i can use for straight line application as it popups an error "Runtime error:“CIRCULAR_ARC_WITH_ZERO_RADIUS"". Can it be used only with circular motions or is there a way to achieve straight line motion with constant tool speed?
  • AlenAlen Posts: 3 Apprentice

    I am working on a process application – painting, while my trajectory is spline.

    Because of the application I need my TCP speed to be constant at every point of trajectory. I made a program using servoj command which moves TCP on projected trajectory. But problem is speed, which is not constant…

    Do you have any idea how to make my TCP speed constant?


  • matthewd92matthewd92 Posts: 854Founding Pro, Tactile Sensor Beta Testers Handy
    @alen how are you dividing up the path to send to the servoj command?  To make a constant speed you will need to determine exactly how far each clock cycle of the robot needs to move. Then you need to feed it the exact point you want to move to in that time, that way every 0.008 or 0.002 seconds you move that distance. 

    We do this with a project we are developing and we get extremely accurate tcp speeds across the entire move including large rotations of the end of arm as we transition in and out of paths. 
  • AlenAlen Posts: 3 Apprentice
    edited July 11

    @matthewd92 thanks you for fast respond.

    My desired trajectory is polynomic function f(x) seen in the picture posted before. TCP speed is created using trapezoid profile, while 10% is acceleration, 80% constant speed (will be used for process application) and 10% deceleration.

    Points are created in MATLAB and send to robot Script code.

    Time for calculating points: TIME = 0.008s or 125Hz (because servoJ is used as thread in Script code)

    Change in x-movement: Δx = Δx + TIME*vi;           vi-speed calculated trapezoid profile

    X- Pose: X_x = X_start + Δx


    Y- Pose: X_y = 173.24*X_x.^5 - 52.341*X_x.^4 - 43.105*X_x.^3 - 1.6338*X_x.^2 + 0.8584*X_x + 0.3668;


    Problem is movement in y-plane because I can calculated trapezoid profile only in one plane (speed in x-plane is constant with trapezoid profile)… How was your method to make constant TCP speed on desired trajectory?

    You can download MATLAB code here: https://www.dropbox.com/s/8g2plpepv0av9as/Crating_path.m?dl=0

  • ebarnettebarnett Posts: 2Unconfirmed Recruit
    @alen Did you consider using the Multipoint Path node in Copilot for your painting application? With this node, the TCP speed is constant along the entire path and other constraints (Cartesian acceleration, joint speed, joint accel.) are imposed only when needed, i.e. during ramp-up and ramp-down and to respect the robot safety limits. Additionally, you can add nodes such as digital outs in between the waypoints to easily control external tools such as paint guns, while the robot is moving at the desired speed. For the multipoint path, you can choose whether the approach to each point is a line or a curve, with the curves being cubic Béziers. At a curve-line transition, the curve will be tangent to the line.

    If you need to use the polynomial function to describe your curve, I suggest the following procedure:

    First generate a list of xyz coordinates at a relatively good spatial resolution such as 1 mm. Next compute the arc length at each point in your list:

    ds = sqrt(diff(x).^2+diff(y).^2+diff(z).^2);
    s = [0; cumsum(ds)];

    Then you can generate a trapezoid velocity profile for s that goes from 0 to s(end). If the associated position profile is called s2, you can get the desired position coordinates via interpolation:

    x2 = interp1(s,x,s2,'spline');
    y2 = interp1(s,y,s2,'spline');
    z2 = interp1(s,z,s2,'spline');

  • AlenAlen Posts: 3 Apprentice
    edited July 14

    @ebarnett, thank you for your answer.

    By Multipoint Path node in Copilot you mean Force Copilot?? But how I understand, speed is here constant only between two pair of waypoints and not for all trajectory (from first to last waypoint), am I correct?

    And your idea for trapezoid velocity profile works great! Huge thanks!

    I also found that servoC (2nd picture) actually do the same without any calculations of trapezoid profile.

  • ebarnettebarnett Posts: 2Unconfirmed Recruit
    @Alen I'm glad to see that you were able to solve your constant-speed problem!

    Regarding your question about the Multipoint Path node, yes I was referring to Force Copilot. The constant speed for a Multipoint Path is applied to the entire path from the first to the last waypoint: A continuous path is first produced by spatially interpolating through all of the waypoints; constant TCP speed is then imposed along this path.
Sign In or Register to comment.
Left ArrowBack to discussions page