How to Scan a Sphere with TCP Pointing Towards the Center

Hi guys,
I need to control the UR10 to scan a sphere (with a known center position and radius), and during the scanning process, the TCP should always point towards the sphere’s center. I’ve read some posts suggesting that using the set_tcp() function to set the sphere center as the new TCP position might meet my needs, but I’m not sure if this is correct or feasible. I’d like to ask if anyone has experience with this or could perhaps provide me with some new suggestions.

Hi @Heng_Li
for sure setting the TCP in the center of the sphere is a good approach.
In this way you can keep the robot postion fixed, and then change just orientation angles:

Untitled+video+-+Made+with+Clipchamp

Hi @Robpod, thank you for your reply. I’d also like to know, if I need the robot to scan a specific pointson the sphere (for example, point A with spherical coordinates relative to the sphere’s center as (0.3, pi/4, pi/6)), how should I determine the (rx, ry, rz) in the Pose for point A?

Maybe you could use function rpy2rotvec to map sphere coordinates to robot angles.

1 Like

Thanks for your advice:)

I did a project some time ago to calculate equal distance positions around a bearing to dispense grease.

It creates positions in x and y into arrays based on the centre position of the bearing and then using trig calculate orientation of the tcp facing the centre.

I don’t imagine it would be to difficult to add a z array and additional orientation.