# Real-Time Kinematics-Based Self-Collision Avoidance Algorithm for Dual-Arm Robots
## 2 Collision Model of the Robot
### Collision Model  
The main propose of the collision model is to evaluate the minimum distance between two arms. After the model is built, the minimum distance between elements in the collision model must be evaluated. The function related to the minimum distance prevents the robot from colliding.  
Based on the collision model using discretized spheres with the same radius [21], the method used in our robot arms is illustrated in Figure 3c. In this work, we proposed building a collision model using discretized finite spherical volumes with different radii at specific positions (control points) as illustrated in Figure 3d. Comparing Figure 3c with Figure 3d, the later collision model can be closer to the original arm. In this way, the collision model of each link of each arm can be described using a few different spheres. In general, we always used the same radius spheres at the same link and chose the  
Figure 2: (a) Frame for the dual-arm robot. (b) Calculation of the distance \(d_{ad}\) between point \(a\) and point \(b\).  
size of each sphere according to the size of each link, which is illustrated in Figure 3a. The detection of all possible distances between different control points with different spheres is illustrated in Figure 3b.  
The minimum distance between these bounding volumes produces the repulsive velocity. As illustrated in Figure 3, distance dab represents the distance between different spheres with different radii. To detect all the possible distances between different spheres and to calculate the minimum distance with different pairs of spheres, we propose the sensitivity index \(\beta\) (\(\beta>0\)) and define it in Equation (4) to measure the collision between different spheres according to two spherical volumes with different radii \(r_{a}\) and \(r_{b}\) (\(r_{a}<r_{b}\)).  
\[\beta_{ab}=\frac{d_{ab}}{r_{a}+r_{b}}, \tag{4}\]  
\[\left\{\begin{array}{c}\beta_{ab}<1,\text{ collision}\\ \beta_{ab}=1,\text{ at the moment of collision}\\ \beta_{ab}>1,\text{ no collision}\end{array}\right., \tag{5}\]  
The minimum distance between these bounding volumes produces the repulsive velocity. As illustrated in Figure 3, distance \(d_{ab}\) represents the distance between different spheres with different radii. To detect all the possible distances between different spheres and to calculate the minimum distance with different pairs of spheres, we proposed the sensitivity index \(\beta\) (\(\beta>0\)) and defined it in Equations (4) and (5) to measure the collision between different spheres according to two spherical volumes with different radii \(r_{a}\) and \(r_{b}\) (\(r_{a}<r_{b}\)), as illustrated in Figure 4.  
\[\beta_{lr}=\left[\begin{array}{ccc}\beta_{11}&\beta_{12}&\text{\text{-}}& \beta_{1m}\\ \vdots&\vdots&\vdots&\vdots\\ \beta_{n1}&\beta_{n2}&\text{\text{-}}&\beta_{mm}\end{array}\right], \tag{6}\]  
In Equations (7)-(9), \(\beta_{lrmin}\) denotes the minimum element in the matrix:  
\[\beta_{lrmin}=min\Big{(}\beta_{lr}\Big{)}, \tag{7}\]  
Figure 4: The significance of the sensitivity index \(\beta\).  
Figure 3: Collision model of the right arm, showing the distance between sphere bounding volumes. (**a**) the robot arm; (**b**) the distance between different spheres with different radii; (**c**) building a collision model using discretized finite spherical volumes with same radii at specific positions; (**d**) building a collision model using discretized finite spherical volumes with different radii at specific positions.