We did this once for a project where we wanted the robot to move a lamp alongside a spherical plane to simulate a sundial with a lamp. https://vimeo.com/265419380
We simply defined a new TCP with a center relative to the tool flange was the radius of the hemisphere, so that we could simply reorient the tool to move the actual tool along the sphere. The only limitation is that from Polyscope you can not define a TCP offset bigger than 500mm if I recall correctly. You can bypass that limitation by defining your TCP in urscript.
Keep in mind that the robot monitors the TCP speed so as you are never moving the TCP, only reorienting, you can end up with high joint movements.
This allows you to position the robot anywhere with only changing 2 rotation values. If you need more precise positioning, or pointing anywhere else than the center of the dome, you will have to compute the cartesian coordinates of the TCP along the sphere and the vector pointing towards the center. More maths involved than the simple trick above.
Thank you for your reply and video.
I’m having a hard time because I lack mathematical thinking skills.
If you don’t mind, can I get the source or urscript?
The easiest solution doesn’t require any maths, just set a TCP with a large value, for example 500mm on the Z axis. Then place the TCP at the center of your hemisphere, you then only need to reorient the tool to move the flange of the robot along the plane. Of course this will be limited to pointing always towards the origin of the hemisphere and you have 500mm radius max.
If you want to do it via scripting the cartesian coordinates of the TCP are easy to compute, just like computing polar to cartesian coordinates and you have lot of resources online to google from, computing the orientation is a little more involved but I didnt implement this so I can’t help on that one sorry, I dont have any code to share.
What exactly are you trying to accomplish?
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.