## 1 Introduction
### Background and Related Work
In practice, the presented approaches for finding solutions [3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22; 23; 24; 25; 26; 27; 28], find only part of multiple possible solutions without classifying them. The problem of determining the configuration space is important for motion planning algorithms in complex environments [14; 15; 16; 17; 18]. Decomposition of the configuration space can be useful for generating motions and avoiding collisions with obstacles [27]. These conclusions are the main motivations for the present work. Inverse kinematics has been studied extensively, with many available mathematical and algorithmic techniques. However, unlike forward kinematics, inverse kinematics cannot be solved with a closed-form expression (in general), i.e., cannot be described with a finite number of standard mathematical operations. This problem may have no solutions, multiple solutions, or even have an infinite number of solutions. As a result, the intricacies of the IK must be understood in order to apply it effectively in practice. These problems are clearly visible when looking at simple practical examples. In [3], two types of solutions of the inverse problem are shown for a planar three-link robot with the same orientation of the end effector. These two solutions are called: Elbow up position and Elbow down position. Ref. [29] presents two analytical solutions for a SCARA-type robot. They are named \"Left side solution\" and \"Right side solution\" and are reported to be symmetric. Essentially, Refs. [3; 29] highlight the same aspect--the non-uniqueness of IK solutions. A large part of the studies [2; 4; 5; 6; 7] unfortunately do not consider all possible solutions, but find only one of them. Thus, a better solution to a problem may be missed. For redundant IK robots, there are countless solutions. The same point from the workspace can be reached in different ways, i.e., with different types of configurations [9]. Almost all numerical methods [12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22] search for a sequence of solutions for IK starting from a previously known initial configuration and find only a part of the possible solutions. In practice, the initial configurations can be different in type and this can have a significant impact on the solution. This fact is taken into account in very few of the reviewed articles and algorithms. Ref. [23] reports the incorrect configurations for a certain task, performed by a multi-joint robotic arm. The combination of joint angles for a particular position of the end effector may not exist, as shown in Figure 1a. Figure 1b shows an example where there are a number of combinations of joint angles \(\theta_{i}\) that give the same solution, i.e., there is no unique solution. If the target point requires a near-singular robot configuration, joint angle estimation is difficult (Figure 1c; then the solution is unstable [23]. When multiple solutions exist, none of the IK approaches specify which solution is \"the best\". It is also important to note that many of the solutions found with IK techniques may be unfeasible. For example, IK solutions may fall outside the joint constraints, cause the robot to collide with itself, or make the robot encounter obstacles from the environment. The requirement to produce high-quality solutions can be considered a soft constraint, while requirements such as joint constraints and obstacles in the work area are considered hard constraints. Soft constraints can be expressed as a demand of an IK solution that minimizes some scalar function. To deal with soft constraints, in the analytical case, where multiple solutions exist, one can simply go through all solutions. Hard constraints in the case of an analytical solution can only be checked after all solutions have been found. In the numerical case, it is preferable to use solution techniques that account for these additional constraints. The configuration space is a key concept for planning robot movements in an environment with obstacles.