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

Tool Z rotation along a curve

Jeremy, Great job on the "RoboDK - From 3D model to robot paths - Part 2" webinar!

I'm excited to try out the new "modify curve" functionality.  However, it seems that currently you can modify the "roll" angle along a path, but not the "yaw" - Tool Z rotation along a curve.  

I'm working on a liquid dispensing application and having problems using the curve follow project to to dispense on the surface shown in the attached picture while controlling a large tool's Z rotation to prevent collisions with the surface. 


Scenario: A path goes down hill, across a flat, and back up hill.  

Let's separate these into separate segments and name them: "DOWNHILL", "FLAT", and "UPHILL".  For simplicity, let's call the end points to these line segments A, B, C, and D.  Here's some ASCII-art; I'll try to post RoboDK screenshots and station files later.

      O                          -{D}
       W                        L
        N                      L
         H                    I
          I                  H
           L                P
            L              U

My real geometry will have more complexity, including fillet radii between the segments, but I'm trying to simplify for a general discussion.

I would like to have my tool orientation at each point be as follows:
  • point {A}: ToolRZ = 0 deg 
  • point {B}: ToolRZ = 0 deg 
  • point {C}: ToolRZ = 180 deg
  • point {D}: ToolRZ = 180 deg

It does not seem possible to do the segment across the flat {B}-FLAT-{C} with Z-rotation using a curve follow project, so I split this into three programs: "Downhill" (generated by a curve follow project), "Flat" (manual targets), and "Uphill" (generated by a different curve follow project).  

However, linking these for a smooth motion has proven quite difficult.  Some issues:
  • Transitioning from curve-follow segment to manually created target-to-target move creates a stop or stutter movement with a real robot that is hard to see in the simulation
  • The Z-rotation of the tool is hard to control to be smooth
  • Sometimes when I re-run the curve follow project, a new program with the same name is generated with the same name, creating confusion.
  • Attempts to modify the curve-follow-generated targets breaks the program.  My procedure is Program>show instructions, then selecting a series of moveL commands and right-click>select target.  The targets are dropped into the wrong reference frame, and moving them to the correct frame breaks the moveL links.  Editing the moveL commands to re-link the targets doesn't work either.
Any advice on how to achieve smooth, linked segment motions with Z-tool orientation changing along a path would be greatly appreciated.  


Hi Chris,

Do you have a RoboDK project you can share? It may be easier to provide tips.

I would try in the following ways:
  • Split the path in 3 segments like you mentioned. You can load the full curve in one operation, then, copy/paste your curve follow project multiple times and keep the curves sections you need for each operation. 
  • You can keep it as one program, then, use the Relative Tool Shift option when you select a group of instructions in your program (as shown in the attached image).

You also mentioned a non smooth transition between programs. I would recommend you to remove the first joint move of your programs (this can be done manually or using the API). You may also need to remove the first linear move instruction as it will be a duplicate from your previous move.

I was able to get this to work after all.  Attached is a simplified station .rkd file I used to debug.  Key points:
  • When renaming a curve follow project from e.g., "path1 settings", to something like "Downhill Path settings", if the new name contains spaces, these are passed directly to the code generator and cause an error on the robot.  Changing the name to "Downhill_Path settings" corrects this issue.  
  • Code generated in this very simple case ran without any additional manual edits on my UR3e.  Fantastic!
I'll put additional feedback under a new feature requests thread.


Attached Files Thumbnail(s)

.rdk   3D_curve follow_debug_2.rdk (Size: 2.21 MB / Downloads: 606)
Hi Chris,

Excellent! I'm glad to see it worked.

We just fixed the post processor you were using to filter any invalid characters for function definitions (see post processors for UR). You should not have issues if you use spaces in your functions by using this update post processors.


Attached Files
.py (Size: 32.7 KB / Downloads: 553)
.py (Size: 32.7 KB / Downloads: 502)
.py (Size: 43.93 KB / Downloads: 541)
Hi Chris,

My name is JF and I am also struggling to find a solution to the variable Z rotation of the tool along the path. I see that Albert suggested a method that was suggested to me by Jérémy in my post ( Did you manage to achieve the Z rotation using a different approach ?

Any help on this topic is highly appreciated. Thanks.


Users browsing this thread:
1 Guest(s)