#### Discussion

Back to discussions page
Posts: 2 Recruit
Has anyone found a way to update/recalculate the whole feature plane including rotations in X,Y&Z?  Do you know the math on how the original feature plane is calculated based off of the three points?

Currently I am using feature planes for all of my positions inside of our CNC machines for picking and placing parts in and out of hydraulic vises.  This has been working well but now we are moving the robots around more frequently from one machine to another.  So now I need a more efficient way to reset the three positions in my feature plane.  The big issue I have is most of my programs have their own installation program.  This means that I have to teach every recipes feature plane when I move the robot around, usually 3 or 4 programs.

Tagged:

• Founding Pro, Tactile Sensor Beta Testers Posts: 1,180 Handy
There is no built in way to do this currently. I’ve been working through the math myself but do not have it quite complete. I’ll see if I can wrap it up in the next couple weeks and post.

If someone else has it that’d be great. Please post it.
• Posts: 10 Apprentice
@matthewd92 Did you guys ever find a way to do this?
Jon Schena
Robotic Technician
Tonnard Mfg.
• Posts: 7 Apprentice
@vpeyton Did you get it working?
@matthewd92 Have you found a way to do it?

I am currently stuck in the maths to do this as well. I can get a normal vector to the plane, but then again: I get stuck on calculating the rotation (rpy/rotvec).. It should be as simple as with ABB, but for some reason it's not possible '^^
• Founding Pro, Tactile Sensor Beta Testers Posts: 1,180 Handy
edited March 2020
@TVRU if you check out this post in November 2019 I posted up how to do this for the old way of calculating UR planes.  I saw something recently on the new calculations, UR changed how planes are calculated around 3.7.  We use this everyday in production, its just slightly different in that the second point defines +y, and now with the newest UR method the second point defines +x.

I was able to find the post where I saw the code for the new plane feature, its actually a script file UR generated with a lot of helper functions in it, one of them is  get_feature_plane(p1, p2, p3) you would simply need to assign the return value of this to your feature variable and pass in the 3 points that you want to use.  I have attached the file from UR.  I know of one typo that existed in the file and so I corrected that, I have not personally ran any of these functions so I cannot vouch for their correctness or completeness.