Motion control for inverse kinematic orientation

Hi!

I have a question about robot orientation. We are working on a project with UR3. According to this project, there is a target point. The user brings and releases the robot tool tip anywhere within the working area where the target point is located. The robot then steers axially by calculating the line between this point and the target using only the parameters Rx, Ry and Rz. We have been using this algorithm for a while and we see that it works. However, some difficulties arise from the inverse kinematics approach while these processes are taking place. Since the tip of the robot tool is left in a random place by the user, the robot sometimes falls into the singularity problem. Or, in some positions, the robot needs to make a little orientation, but again due to the singularity, some joints move too much.
Three basic questions arise here:

  1. Can the robot be checked for any singularity it may encounter during orientation before it starts the orientation?

  2. If there is a singularity, by what method can it be removed?

  3. While the robot is oriented, since there are more than one solution, it selects one and provides the orientation. However, some orientations are not suitable for our work area. Can we choose the orientation?

I hope I was able to explain clearly. Thanks.