Home Programming

Discussion

Left ArrowBack to discussions page
Nicolas_LauzierNicolas_Lauzier Beta Tester VIsion 1.1 Program, Vacuum Beta tester Posts: 28 Crew
Hi all,

Let's say that I have a minor change on my robot's end effector (for example, I changed the fingertips of my gripper) and I want to apply an offset of 5mm in tool Z. Normally, I would just change the TCP. However, if all waypoints were teached with the "Use Tool Flange" option for the TCP, is there a way that I can offset all these points without having to change the TCP on all the move instructions? Imagine that I have a lot of programs with a lot of points such that any manual operation is not practical.

I'm looking for a script, a tool or a built-in option in Polyscope.

Thanks!


Nicolas Lauzier, Eng., PhD
R&D Director
[email protected]

Comments

  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    What type of moves are you making?
  • Nicolas_LauzierNicolas_Lauzier Beta Tester VIsion 1.1 Program, Vacuum Beta tester Posts: 28 Crew
    @matthewd92 , I am looking for a generic solution on this so I'm interested if something works for either moveJ, moveL or both of them.

    Nicolas Lauzier, Eng., PhD
    R&D Director
    [email protected]

  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    With moveL you could simply alter the base_var and then it adjusts the moves accordingly.  This does not work for movej though since there is no transformation going on behind the scenes like there is with moveL. You could store as an installation variable the offset pose to use and then in the before start section of the program do the pose_add such as:
    base_var = pose_add(base_var,someOffsetPose)
    We played around with this some yesterday and it actually does work with the movel

  • Nicolas_LauzierNicolas_Lauzier Beta Tester VIsion 1.1 Program, Vacuum Beta tester Posts: 28 Crew
    Thanks @matthewd92, I wasn't aware of this variable!

    However, this offset will not be applied in the tool frame, am I right?

    Nicolas Lauzier, Eng., PhD
    R&D Director
    [email protected]

  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    @matthewd92 I try to play with the base_var on polyscope 3.6 but I receive an error about 'base_var not initialized' ?
    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    Sorry @MarcAntoine_Lacasse I had a typo in the code line above. It should use the pose Base in the formula

    Base_var = pose_add(Base,someOffsetPose)
    @Nicolas_Lauzier I'm not sure if it would or not, my gut says that it wouldnt but if you are using the tool frame of reference then correcting the TCP would correct those motions.  This would be a correction for the motion was taught using the tool flange unless I am not understanding the question correctly.

    I wrote a small program the other day to test this and all we did was make an incrementing x offset that we kept applying to the Base_var and then calling the same moveL and the robot would step each time the amount of the x offset that we were applying.  To get it to work with a movej we had to do set a variable equal to the waypoint desired in the before start section and then we were recalculating that point before each time it was used in the offsetting loop using the new Base_var as the frame of reference.  Then we were able to achieve the same result which makes sense as this is being done in script code automatically for the moveL situation. 
  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    Hi @matthewd92, I must be missing something, Base_var and Base are not recognized as valid pose variable in my test program. Could you link a program in which those variables are used ?
    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    You need to go to the installation tab, go to features and select variable under Base to get to the Base_var in the assignment tab.

    I can never get programs to upload but here is a screen shot of the program




  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    Thanks Mat, that's what I was missing !
    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • AZalmanovAZalmanov Posts: 19 Apprentice
    Is there a reason why this will not work for other features than the base? I am trying to only offset some waypoints in the program.
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    It should work for any feature you use with a movel so long as you make the feature a variable and then apply your offsets to that variable. 
  • AZalmanovAZalmanov Posts: 19 Apprentice
    Okay, thank you for clarifying. I did also notice that once you change the movej to movel you can select the feature it is based on. That is why it wasn't working at first.
  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    @matthewd92 Is it still working with eSeries ?
    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    @matthewd92 Looks like the feature is deprecated  :/


    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    @MarcAntoine_Lacasse that sucks. That was a very useful feature. 
  • DevinNorrisDevinNorris Unconfirmed Posts: 1 Recruit
    @MarcAntoine_Lacasse this is still working however you cant use the base variable feature you'll need to set up a point in the features menu and use this where you would use base variable
  • Kaleb_RodesKaleb_Rodes Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Tactile Sensor Beta Testers, Beta Tester Camera URCap 1.2.0-beta Posts: 62 Handy
    @DevinNorris use a plane in this instance because it has a coordinate system. Without a coordinate system the robot can arrive at points in any orientation.
    Kaleb Rodes
    Applications Engineer
    Behco
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    Any point has a coordinate system, the plane feature in UR condenses down to a single waypoint. We use waypoints all the time in this manner. We have also continued to use the Base variable by just defining one at the start of the program or you can store it as an installation variable if you want some place you can quickly update it
  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    @matthewd92 Do you mean you can still define waypoint relative to Base feature with E-Series and modify de Base feature by just defining the Base_var variable ? If so, can you give a programme example ?
    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    @DevinNorris Feature points in UR includes orientation. 
    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    @matthewd92 Do you mean you can still define waypoint relative to Base feature with E-Series and modify de Base feature by just defining the Base_var variable ? If so, can you give a programme example ?
    Let me see if I can find one when I’m back in the office next week. 
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    @DevinNorris Feature points in UR includes orientation. 
    Trying to understand something here, how are Feature waypoints different in orientation than regular waypoints?  I know you can use features within the built-in Polyscope move functions but we do the same thing all the time with regular waypoints with scripted moves, or we do the math we need to do and then just use Polyscope move functions with a variable waypoint. 

    Just trying to understand and what you are getting at regarding the feature points and orientation. 
  • MarcAntoine_LacasseMarcAntoine_Lacasse Beta Tester VIsion 1.1 Program Posts: 23 Handy
    @matthewd92 You are right, Feature point are the same as regular waypoint, both contains position and orientation.
    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • Kaleb_RodesKaleb_Rodes Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Tactile Sensor Beta Testers, Beta Tester Camera URCap 1.2.0-beta Posts: 62 Handy
    @matthewd92 @MarcAntoine_Lacasse I've used point features in the past and occasionally the robot would move to the point/location but not in the correct orientation. For example, say I created a feature point on the top surface of the table.. base and tool z-axis perpendicular to the surface. Now when moving to that point the robot would approach from the bottom side of the table.
    Kaleb Rodes
    Applications Engineer
    Behco
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    @matthewd92 @MarcAntoine_Lacasse I've used point features in the past and occasionally the robot would move to the point/location but not in the correct orientation. For example, say I created a feature point on the top surface of the table.. base and tool z-axis perpendicular to the surface. Now when moving to that point the robot would approach from the bottom side of the table.
    @Kaleb_Rodes I posted a blog post related to this topic as I have seen a lot of folks have this same issue, including myself when I first started doing more advanced stuff with UR programs.  Here is a link to the post, https://blog.hirebotics.com/engineering/universal-robots-programming-feature-point-orientation
  • Pmkgur10Pmkgur10 Posts: 12 Apprentice
    With moveL you could simply alter the base_var and then it adjusts the moves accordingly.  This does not work for movej though since there is no transformation going on behind the scenes like there is with moveL. You could store as an installation variable the offset pose to use and then in the before start section of the program do the pose_add such as:
    base_var = pose_add(base_var,someOffsetPose)
    We played around with this some yesterday and it actually does work with the movel

    I have one doubt if we use Base_var ,  are we shifting the robot base?

    Due to this any impact on robot..
  • matthewd92matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,267 Handy
    No impact that I am aware of, you are simply changing a feature that points are taught relative too
Sign In or Register to comment.
Left ArrowBack to discussions page