**3.1.3 C-space transformation of "CIRCLE"**

This algorithm for collision detection tackles the spherical obstacles with circular crosssection in the vertical plane. Various possible colliding conditions of the circular obstacle with the robot link(s) are depicted in fig. 4. It depends entirely on the location of the obstacle(s) with respect to the location of the robot in the workspace.

Fig. 4. Various possible colliding combinations of a two-link robot with circular obstacle

Figure 4 shows five different cases of collision, considering only the first link. However, the paradigm is valid for subsequent links also. These cases are:

Case I: Obstacle is fully within the range of the first link.

Case II: Obstacle is within the first link's range, touching the *range circle* internally.

Case III: Obstacle is collidable by the first link, with its centre inside the range of the first link.

Case IV: Same as before, but centre is outside the range of the first link.

Case V: Obstacle is touching the range circle of the first link externally.

## **3.1.4 C-space transformation with finite dimensions of the robot**

Modifications of the previous algorithms for *POINT*, *LINE* and *CIRCLE* obstacles have been considered with finite dimensions of the robot arms (refer fig. 3). Also, planar 3-link manipulator is considered now, where the third link is nothing but the end-effector. Since planar movements are taken into account, only pitch motion of the wrist is considered along with shoulder and elbow rotations. The exhaustive list of input parameters for these cases will be as follows, viz. (i) Robot base co-ordinates (xb, yb); (ii) Length of the upper arm or shoulder (l1); (iii) Length of the fore arm or elbow (l2); (iv) Length of the end-effector or *wrist*  (lw); (v) Width of the upper arm (d1); (vi) Width of the fore arm (d2); (vii) Width of the endeffector (dw); (viii) Radii of curvature for upper and fore arm (r1 & r2 respectively); (ix) The co-ordinates of the *Point*: (x1, y1) or *Line*: [(x1, y1) & (x2, y2) as end - points ] or *Circle*: [centre at (xc, yc) & radius : 'r'].

### **3.2 Analytical model of the mapping algorithms**

The analytical models of various C-space mapping algorithms, described earlier, have been grouped into two categories, viz. (a) Model for *LINE* obstacles and (b) Model for *CIRCLE*  obstacles. These are being described below.

#### **3.2.1 Model for LINE obstacles**

The ideation of collision detection phenomena for *Line* obstacle is based on the intersection of the line- segments in 2D considering only the kinematic chain of the manipulator. The positional information, i.e. co -ordinates (xk, yk) of the manipulator joints can be generalized as,

$$[\mathbf{x}\_{\mathbf{k}\prime} \mathbf{y}\_{\mathbf{k}}]^{\mathrm{T}} = [\mathbf{x}\_{\mathbf{b}\prime} \mathbf{y}\_{\mathbf{b}}]^{\mathrm{T}} + [\sum\_{k=1}^{k=n} \mathbf{l}\_{\mathrm{k}} \cos \left(\sum\_{j=1}^{j=k} \theta\_{\mathbf{j}} \right), \sum\_{k=1}^{k=n} \mathbf{l}\_{\mathrm{k}} \mathrm{Sinc} \left(\sum\_{j=1}^{j=k} \theta\_{\mathbf{j}} \right)]^{\mathrm{T}}$$

$$\forall \, \mathbf{k} = \mathbf{1}, \mathbf{2}, \mathbf{3}, \dots, \mathbf{2}, \dots, \mathbf{n} \text{ & } \forall \, \mathbf{j} = \mathbf{1}, \mathbf{2}, \dots, \mathbf{n}, \mathbf{k} \tag{1}$$

where,

422 Serial and Parallel Robot Manipulators – Kinematics, Dynamics, Control and Optimization

1. Input robot base co-ordinates, link lengths, the specified *point*, range of joint-angles &

5. Calculate the positional details of the first link (i.e. under colliding conditions), if step 4

Here the obstacle has been considered as a regular polygon, bounded by several straight line-segments, as 'edges'. The algorithm is valid for obstacles having rectangle, square,

This algorithm for collision detection tackles the spherical obstacles with circular crosssection in the vertical plane. Various possible colliding conditions of the circular obstacle with the robot link(s) are depicted in fig. 4. It depends entirely on the location of the

Fig. 4. Various possible colliding combinations of a two-link robot with circular obstacle

**Algorithm:** 

is true.

9. i=i +1.

angular resolution.

3. Initialize the loop with iteration i=1. 4. Check whether the first link is colliding.

2. Calculate the distance of the *point* from robot base.

8. Output the colliding angles for suitable cases.

**3.1.2 C-space transformation of "LINE"** 

**3.1.3 C-space transformation of "CIRCLE"** 

6. Check the collision with the second link, if step 4 is false.

10. Continue till all combinations of joint - angles are checked.

triangle, trapezium etc. shaped cross-section in the vertical plane.

obstacle(s) with respect to the location of the robot in the workspace.

7. Calculate the colliding details of the second link, if step 6 is true.

[ xb, yb ]T : Robot base co - ordinate vector in Newtonian frame of reference;

lk : k th. link - length of the manipulator;

j : j th. joint - angle of the manipulator.

The slope of the *line* (i.e. the edge of the obstacle) with (x1, y1) & (x2, y2) as end-points is given by,

$$\mathbf{m}\_0 = |\ (\mathbf{y}\_2 \cdot \mathbf{y}\_1) \ | \ / \ (\mathbf{x}\_2 \cdot \mathbf{x}\_1) \ | = |\ \Delta \mathbf{y} \ / \ \Delta \ge |\tag{2}$$

Hence, the co - ordinates of the intersection point between the obstacle edge(s) and the robot link(s) are,

$$\mathbf{x\_{int\_{k}}} = \left(\mathbf{y\_{k}} \cdot \mathbf{y\_{1}} \cdot \mathbf{m\_{k}} \,\mathbf{x\_{k}} + \mathbf{m\_{0}} \,\mathbf{x\_{1}}\right) \Big/ \left(\mathbf{m\_{0}} \cdot \mathbf{m\_{k}}\right) \tag{3a}$$

Spatial Path Planning of Static Robots Using Configuration Space Metrics 425

yintB\_k = [ m0 mk ( xBk - x1 ) - m0 yBk + mk y1 ] / ( mk - m0 ); (6d)

If collision is detected with the first link of the robot, then the range of colliding angles for case I & II (i.e. 1 & 2 ) and for case III & IV (i.e. 3 & 4 ) will be evaluated as shown below,

When the collision occurs with the second link, i.e. all the values of the first joint-angle are

The co-ordinates of the start point of the second link, which serves as the *instantaneous base*

The colliding range for the second link is between 2S and 2f against case I & II, where,

h = [ (xc - xb'

For case III & IV, the colliding range will be 3S to 3f , which can be evaluated as,

Obviously, only one colliding angle, viz. 5 will be obtained with case V, i.e.

collidable, the ranges for collision will be obtained as given below.

[ xb' , yb' d = [ ( xc - xb )2 + ( yc - yb )2 ] 1/2 (7)

2 s = ( l1 + d + r ) (10)

5 = tan -1 [( yc - yb ) / ( xc - xb ) ] (11)

] T = [ xb , yb ] T + [ l1 Cos 1 , l1 Sin 1 ] T (12)

p = ( h2 - r2 ) 1/2 (15)

)2 ] 1/2 (16)

2S = 1 - 1i and 2f = 2 - 1i , 1i , where 1\_min 1i 1\_max (13)

)2 + ( yc - yb'

2 .1 = tan -1 [( yc - yb ) / ( xc - xb ) ] tan -1 ( r / p ) (14)

2 ,1 = tan -1 [( yc - yb ) / ( xc - xb ) ] tan -1 [ r / ( d2 - r2 )1/2 ] (8)

4 ,3 = tan -1 [( yc - yb ) / ( xc - xb ) ] 2 tan -1 [ ( s - l1 ) ( s - d ) / s ( s - r ) ]1/2 (9)

considering two possible collisions per arm at the most.

With reference to fig. 4, let the following nomenclatures be defined, ( xb , yb ) : Robot base co-ordinates in Newtonian frame; l1 & l2 : Lengths of the first and second link of the robot respectively; ( xc , yc ) : Co-ordinates of the centre of the 'circle' obstacle and

**3.2.2 Model for CIRCLE obstacles** 

r : Radius of the 'circle'.

Let,

where,

and,

where,

and,

of the robot, are given by,

$$\mathbf{y}\_{\rm int\\_k} = \left[ \mathbf{m}\_0 \, \mathbf{m}\_k \left( \, \mathbf{x}\_k \, \text{-} \, \mathbf{x}\_1 \right) \cdot \mathbf{m}\_0 \, \mathbf{y}\_k + \mathbf{m}\_k \, \mathbf{y}\_1 \right] / \left( \, \mathbf{m}\_k \cdot \mathbf{m}\_0 \right) \tag{3b}$$

where,

[xint\_k , yint\_k ]T : The intersection point vector for the k th. robot link with the *Line* and mk : The slope of the k th. robot link.

For a 3-link planar revolute manipulator, we have, therefore,

$$\mathbf{m}\_{\mathrm{li}} = \tan \theta\_{\mathrm{li}}, \text{where } \theta\_{\mathrm{li}} \in \left[ \, \theta\_{\mathrm{l\\_min}}, \, \theta \mathbf{1}\_{\mathrm{\\_max}} \right].$$

and

$$\mathbf{m}\_2 = \tan\left(\theta\_{1\mathbf{i}} + \theta\_{2\mathbf{j}}\right), \text{ where } \theta\_{2\mathbf{j}} \in \left[\theta\_{2\mathbf{\\_m}\mathbf{i}}, \theta\_{2\mathbf{\\_m}\mathbf{x}}\right].$$

with 1i as defined earlier.

The above model can be extended likewise, considering finite dimension of the manipulator, i.e. having widths of the arms, viz. { dk }.

Nonetheless, considering finite dimensions, the generalized co-ordinates of the manipulator joints can be evaluated from,

$$\begin{aligned} \text{I} \left\{ \text{x}\_{\text{Ak}} \text{ y}\_{\text{Ak}} \right\} ^ \text{I} &= \left\{ \text{x}\_{\text{b}} \text{ y}\_{\text{b}} \right\} ^ {\text{I}} + \left\{ \sum\_{k=1}^{k=n} \text{ l}\_{\text{k}} \text{Cost} \left( \sum\_{j=1}^{j=k} \text{\\$}\_{\text{l}} \right) , \sum\_{k=1}^{k=n} \text{ l}\_{\text{k}} \text{Sim} \left( \sum\_{j=1}^{j=k} \text{\\$}\_{\text{l}} \right) ^ {\text{I}} \right\} ^ {\text{II}} \\ &+ \left[ \text{d}\_{\text{k}} / 2 \text{ Sim} \left( \sum\_{j=1}^{j=k} \text{\\$}\_{\text{l}} \right) , \text{d}\_{\text{k}} / 2 \text{ Cost} \left( \sum\_{j=1}^{j=k} \text{\\$}\_{\text{l}} \right) \right] ^ {\text{T}} \\ &\forall \text{ k} = 1, 2, 3, ...,..., \text{n} \text{ \\$} \text{ } \forall \text{ j} = 1, 2, ...,..., \text{k} \end{aligned} \tag{4}$$

and,

$$\begin{aligned} \text{I} \left[ \begin{array}{c} \text{x}\_{\text{Ek}} \text{ y}\_{\text{Ek}} \end{array} \right] \text{I} & = \left[ \begin{array}{c} \text{x}\_{\text{b}} \text{ y}\_{\text{b}} \end{array} \right] \text{I} + \left[ \begin{array}{c} \text{x}\_{\text{b}} \end{array} \text{I}\_{\text{k}} \text{Cost} \left( \sum\_{j=1}^{j=k} \text{\ $}\_{\text{l}} \right) , \sum\_{k=1}^{k=n} \text{\$ }\_{\text{l}} \text{Sim} \left( \sum\_{j=1}^{j=k} \text{\ $}\_{\text{l}} \right) \text{\$ }\_{\text{l}} \text{\ $}\_{\text{l}} \right] \text{I} \\ & + \left[ \text{\$ }\_{\text{l}} \text{\ $}\_{\text{l}} / 2 \text{\$ } \text{in} \left( \sum\_{j=1}^{j=k} \text{\ $}\_{\text{l}} \right) , \text{d} / 2 \text{\$ } \text{Cost} \left( \sum\_{j=1}^{j=k} \text{\ $}\_{\text{l}} \right) \text{\$ }\_{\text{l}} \text{\ $} \end{aligned} \right] \text{I} \\\\ & \forall \text{k} = 1, 2, 3, ..., ..., \text{, n} \text{ \$ } \text{\ $} \text{\$ } \text{\ $} \text{\$ } \text{\ $} \text{\$ } = 1, 2, ..., ..., \text{, k} \end{aligned} \tag{5}$$

Hence, the co-ordinates of the intersecting point(s) between the robot arm(s) and the *edges* of the obstacle(s) become,

$$\mathbf{x\_{intA\_{-k}}} = \left(\mathbf{y\_{Ak}} \cdot \mathbf{y\_1} \cdot \mathbf{m\_k} \,\mathbf{x\_{Ak}} + \mathbf{m\_0} \,\mathbf{x\_1}\right) / \left(\,\mathbf{m\_0} \cdot \mathbf{m\_k}\right);\tag{6a}$$

$$\mathbf{y\_{int\_{\cdot}k}} = \left[\mathbf{m\_{0}}\,\mathbf{m\_{k}}\left(\,\mathbf{x\_{kk}}\,\cdot\,\mathbf{x\_{l}}\right)\cdot\mathbf{m\_{0}}\,\mathbf{y\_{Ak}} + \mathbf{m\_{k}}\,\mathbf{y\_{l}}\right]/\left(\,\mathbf{m\_{k}}\cdot\mathbf{m\_{0}}\right);\tag{6b}$$

$$\chi\_{\text{int}\mathbb{B}\_{-}k} = \left(\mathbf{y}\_{\text{Bk}} \text{ - } \mathbf{y}\_{1} \text{ - } \mathbf{r}\mathbf{n}\_{k} \ge \mathbf{r}\mathbf{n}\_{0} \ge \mathbf{r}\_{1}\right) / \left(\mathbf{r}\mathbf{n}\_{0} \text{ - } \mathbf{r}\mathbf{n}\_{k}\right) \tag{62}$$

$$\mathbf{y\_{inB\_{-k}}} = \left[ \mathbf{m\_0} \,\mathbf{m\_k} \left( \,\mathbf{x\_{Bk}} \cdot \mathbf{x\_1} \right) \text{ - по\_0 y\_{ik} + п\_k y\_1} \right] / \left( \,\mathbf{m\_k} \cdot \mathbf{m\_0} \right) \text{' }\tag{6d}$$

considering two possible collisions per arm at the most.

#### **3.2.2 Model for CIRCLE obstacles**

With reference to fig. 4, let the following nomenclatures be defined, ( xb , yb ) : Robot base co-ordinates in Newtonian frame; l1 & l2 : Lengths of the first and second link of the robot respectively; ( xc , yc ) : Co-ordinates of the centre of the 'circle' obstacle and r : Radius of the 'circle'. Let,

$$\mathbf{d} = \left[ (\mathbf{x\_c \cdot x\_b})^2 + (\mathbf{y\_c \cdot y\_b})^2 \right]^{1/2} \tag{7}$$

If collision is detected with the first link of the robot, then the range of colliding angles for case I & II (i.e. 1 & 2 ) and for case III & IV (i.e. 3 & 4 ) will be evaluated as shown below,

$$\alpha\_{2,1} = \tan^{-1}\left[\left(\mathbf{y}\_c \cdot \mathbf{y}\_b\right) / \left(\mathbf{x}\_c \cdot \mathbf{x}\_b\right)\right] \pm \tan^{-1}\left[\mathbf{r} / \left(\mathbf{d}^2 \cdot \mathbf{r}^2\right)^{1/2}\right] \tag{8}$$

$$\alpha\_{4,3} = \tan^{-1}\left[\left(\mathbf{y}\_{\text{c}} \cdot \mathbf{y}\_{\text{b}}\right) / \left(\mathbf{x}\_{\text{c}} \cdot \mathbf{x}\_{\text{b}}\right)\right] \pm 2 \tan^{-1}\left[\left(\mathbf{s} \cdot \mathbf{l}\_{\text{l}}\right)\left(\mathbf{s} \cdot \mathbf{d}\right) / \left(\mathbf{s} \cdot \mathbf{r}\right)\right]^{\mathbf{l}/2} \tag{9}$$

where,

424 Serial and Parallel Robot Manipulators – Kinematics, Dynamics, Control and Optimization

Hence, the co - ordinates of the intersection point between the obstacle edge(s) and the robot

xint\_k = ( yk - y1 - mk xk + m0 x1 ) / (m0 - mk ) (3a)

yint\_k = [ m0 mk ( xk - x1 ) - m0 yk + mk y1 ] / ( mk - m0 ) (3b)

m1 = tan 1i ,where 1i [ 1\_min , 1\_max ]

m2 = tan (1i + 2j ), where 2j [2\_min , 2\_max ]

The above model can be extended likewise, considering finite dimension of the manipulator,

Nonetheless, considering finite dimensions, the generalized co-ordinates of the manipulator

1

1

*j*

j ) , dk/2 Cos (

Hence, the co-ordinates of the intersecting point(s) between the robot arm(s) and the *edges* of

xintA\_k = ( yAk - y1 - mk xAk + m0 x1 ) / ( m0 - mk ); (6a)

yintA\_k = [ m0 mk ( xAk - x1 ) - m0 yAk + mk y1 ] / ( mk - m0 ); (6b)

xintB\_k = (yBk - y1 - mk xBk + m0 x1 ) / ( m0 - mk ); (6c)

 j ) ,

*j k*

1

lk Sin (

1

1

j ) ] T

*j*

*j k*

j ) ] T

*j*

*j k*

1

*j*

 j ) ] T

k = 1,2,3,..............,n & j= 1,2,..........,k (4)

1

lk Sin (

1

*j*

 j ) ] T

k = 1,2,3,..............,n & j= 1,2,..........,k (5)

*k*

*j k*

*k n*

*k*

*j k*

*k n*

*j*

j ) , - dk/2 Cos (

 j ) ,

*j k*

1

lk Cos (

*j k*

1

1

*j k*

1

lk Cos (

*j*

*k*

*k n*

*j*

*k*

*k n*

[xint\_k , yint\_k ]T : The intersection point vector for the k th. robot link with the *Line* and

For a 3-link planar revolute manipulator, we have, therefore,

link(s) are,

where,

and

and,

mk : The slope of the k th. robot link.

i.e. having widths of the arms, viz. { dk }.

[ xAk, yAk ] T = [ xb, yb ]T + [

[ xBk, yBk ] T = [ xb, yb ]T + [

+ [dk/2 Sin (

+[- dk/2 Sin (

with 1i as defined earlier.

joints can be evaluated from,

the obstacle(s) become,

$$\mathbf{2}\text{ s} = \left(\mathbf{l}\_1 + \mathbf{d} + \mathbf{r}\right) \tag{10}$$

Obviously, only one colliding angle, viz. 5 will be obtained with case V, i.e.

$$\alpha\_{\sf S} = \tan^{-1} \left[ \left( \mathbf{y\_c - y\_b} \right) / \left( \mathbf{x\_c - x\_b} \right) \right] \tag{11}$$

When the collision occurs with the second link, i.e. all the values of the first joint-angle are collidable, the ranges for collision will be obtained as given below.

The co-ordinates of the start point of the second link, which serves as the *instantaneous base* of the robot, are given by,

$$\begin{bmatrix} \mathbf{x}\_{\mathsf{b}} \ \mathbf{y}\_{\mathsf{b}} \ \mathbf{y}\_{\mathsf{b}} \end{bmatrix} \mathsf{T} = \begin{bmatrix} \mathbf{x}\_{\mathsf{b}} \ \mathbf{y}\_{\mathsf{b}} \end{bmatrix} \mathsf{T} + \begin{bmatrix} \mathbf{l}\_{1} \ \mathsf{C} \mathbf{o} \ \boldsymbol{\theta}\_{1} \ \mathsf{l}\_{1} \ \mathsf{S} \mathbf{in} \ \boldsymbol{\theta}\_{1} \end{bmatrix} \mathsf{T} \tag{12}$$

The colliding range for the second link is between 2S and 2f against case I & II, where,

2S = 1 - 1i and 2f = 2 - 1i , 1i , where 1\_min 1i 1\_max (13)

and,

$$\beta\_{2.1} = \tan \cdot \left[ \left( \mathbf{y\_c \cdot y\_b} \right) / \left( \mathbf{x\_c \cdot x\_b} \right) \right] \pm \tan \cdot \mathbf{1} \left( \mathbf{r \nmid p} \right) \tag{14}$$

where,

$$\mathbf{p} = \left(\mathbf{h}^2 \mathbf{-r}^2\right)^{1/2} \tag{15}$$

and,

$$\mathbf{h} = \left[ (\mathbf{x}\_{\mathbf{c}} \cdot \mathbf{x}\_{\mathbf{b}}^{'})^2 + (\mathbf{y}\_{\mathbf{c}} \cdot \mathbf{y}\_{\mathbf{b}}^{'})^2 \right]^{1/2} \tag{16}$$

For case III & IV, the colliding range will be 3S to 3f , which can be evaluated as,

$$
\boldsymbol{\theta}\_{\text{IS}} = \boldsymbol{\beta}\_{\text{3}} \text{ - } \boldsymbol{\theta}\_{\text{li}} \text{ and } \boldsymbol{\theta}\_{\text{N}} = \boldsymbol{\beta}\_{\text{4}} \text{ - } \boldsymbol{\theta}\_{\text{li}} \text{ } \forall \, \boldsymbol{\theta}\_{\text{li}} \text{ , where } \boldsymbol{\theta}\_{\text{li}} \in \left[ \boldsymbol{\theta}\_{\text{1\\_min}}, \boldsymbol{\theta}\_{\text{1\\_max}} \right] \tag{17}
$$

and,

$$\beta\_{4,3} = \tan^{-1}\left[\left(\mathbf{y}\_c \cdot \mathbf{y}\_b'\right) / \left(\mathbf{x}\_c \cdot \mathbf{x}\_b'\right)\right] \pm 2 \tan^{-1}\left[\left(\mathbf{s'} \cdot \mathbf{l}\_2\right) \left(\mathbf{s'} \cdot \mathbf{h}\right) / \left(\mathbf{s'} \cdot \mathbf{r}\right)\right]^{1/2} \tag{18}$$

where,

$$\mathbf{2}\ \mathbf{s}' = \left(\mathbf{l}\_2 + \mathbf{h} + \mathbf{r}\right) \tag{19}$$

Spatial Path Planning of Static Robots Using Configuration Space Metrics 427

Fig. 5. A representative 2D environment congested with non-circular polygonal obstacles

Fig. 6. A representative 2-D environment filled with circular obstacles

For case V, the particular formidable value of the joint-angle is,

$$\boldsymbol{\Theta}\_{4} = \tan^{-1}\left[\left(\mathbf{y}\_{c} \cdot \mathbf{y}\_{b}^{\prime}\right) \right] / \left(\mathbf{x}\_{c} \cdot \mathbf{x}\_{b}^{\prime}\right) \cdot \boldsymbol{\Theta}\_{\mathrm{li}} \tag{20}$$

The above equations need to be altered for collision checking with finite link dimensions of the manipulator, considering r1 and r2 as the radii of curvature of the upper arm and fore arm respectively (refer fig. 3). The modifications required are: i] 'l1' is to be replaced by lu (= l1 + r1 ); ii] 'l2' is to be replaced by lf (= l2 + r2 ) and iii] 'r' is to be replaced by rnj = r + dj /2, j = 1,2, 3 corresponding to collision with upper arm, fore arm and the end-effector.

#### **3.3 Illustrations using the developed algorithms**

The c-space mapping algorithms have been tested with two different robot workspaces in 2D, as detailed below. Technical details of the robot under consideration for these workspaces are highlighted in Table 1.


Table 1. Technical Features of the Robot Under Consideration

Figure 5 presents a 2D environment with non-circular polygonal obstacles with a revolute type robot located in-between.

After obtaining the relevant c-space data, various plots of joint-angle 1 vs. joint-angle 2 are made. It is to be noted that the final data-points are those, which are common values of formidable angles for the entire obstacle. Obviously, the points, which are inside or on the closed boundary of the curves, are 'collidable' combinations, and, hence, those should not be attempted for robot path planning.

Another case is studied, as shown in fig. 6, with circular obstacles only. There is a distinct difference in the appearance in the C-space maps between obstacles when collision occurs with the first as constrained with the same for the second link.

) ] 2 tan -1 [ ( s'

The above equations need to be altered for collision checking with finite link dimensions of the manipulator, considering r1 and r2 as the radii of curvature of the upper arm and fore arm respectively (refer fig. 3). The modifications required are: i] 'l1' is to be replaced by lu (= l1 + r1 ); ii] 'l2' is to be replaced by lf (= l2 + r2 ) and iii] 'r' is to be replaced by rnj = r + dj /2, j

The c-space mapping algorithms have been tested with two different robot workspaces in 2D, as detailed below. Technical details of the robot under consideration for these

) / ( xc - xb'

For case V, the particular formidable value of the joint-angle is,

**3.3 Illustrations using the developed algorithms** 

workspaces are highlighted in Table 1.

No. of Links 2 No. of Degrees -of- Freedom 2

Ranges of Rotation of the Joints

type robot located in-between.

attempted for robot path planning.

(Anticlockwise)

Type of Robot Considered Revolute

Co-ordinates of the Robot Base xb = 5; yb = 5

Resolution of Joint Rotation 5 deg. (for both joints)

Table 1. Technical Features of the Robot Under Consideration

with the first as constrained with the same for the second link.

2 s'

4 = tan -1 [( yc - yb'

= 1,2, 3 corresponding to collision with upper arm, fore arm and the end-effector.

Length of the Links First Link: 5 units; Second Link: 4 units

and,

where,

4 , 3 = tan -1 [( yc - yb'

3S = 3 - 1i and 3f = 4 - 1i , 1i , where 1i [ 1\_min , 1\_max ] (17)

) / ( xc - xb'

Case I: For Non-circular Polyhedral Obstacles Joint-angle 1: 0 to 360 deg. Joint-angle 2: 0 to 260 deg.

Joint-angle 1: -40 to 240 deg. Joint-angle 2: -180 to 180 deg.

Case II: For Circular Obstacles

Figure 5 presents a 2D environment with non-circular polygonal obstacles with a revolute

After obtaining the relevant c-space data, various plots of joint-angle 1 vs. joint-angle 2 are made. It is to be noted that the final data-points are those, which are common values of formidable angles for the entire obstacle. Obviously, the points, which are inside or on the closed boundary of the curves, are 'collidable' combinations, and, hence, those should not be

Another case is studied, as shown in fig. 6, with circular obstacles only. There is a distinct difference in the appearance in the C-space maps between obstacles when collision occurs



= ( l2 + h + r ) (19)

( s'

) - 1i (20)


Fig. 5. A representative 2D environment congested with non-circular polygonal obstacles

Fig. 6. A representative 2-D environment filled with circular obstacles

Spatial Path Planning of Static Robots Using Configuration Space Metrics 429

The development of c-space is relatively simpler while we have two degrees-of-freedom robotic manipulators. As described in earlier sections, irrespective of the nature of the environment, we can generate simple planar maps, corresponding to the variations in the joint-angles (in case of revolute robots). Thus the mapping between task space and c-space is truly mathematical and involves computationable solutions for inverse kinematics routines. The procedure of generating c-space can be extrapolated to three degrees-of-freedom robots at most, wherein we get 3D plot, i.e. mathematically speaking, *c-space surface*. However, this procedure can't be applied to higher dimensional robots, having degrees-of-freedom more than three. In fact, c-space surface of dimensions greater than three is unrealizable, although it is quite common to have such robots in practice amidst cluttered environment. For example, let us take the case of a workspace for a seven degrees-of-freedom articulated robot, as depicted in fig. 9. Here we need to consider variations in each of the seven jointangles, viz. 1, 2,……, 7 (the last two degrees-of-freedoms are attributed to the wrist

Fig. 9. A representative cluttered environment with seven degrees-of-freedom revolute

1. Identify the degrees-of-freedom of the robot ['n'] and notify those.

So, the question arises as how can we tackle this problem of realizing higher dimensionality of c-space mapping. Hence it is a clear case of building *composite c-space map,* with proper characterization of null space. We propose a model for this mapping in higher

2. The robot is conceptualized as a serial chain of micro-robots of two degrees-of-freedom

3. We will consider a total of 'k' planar c-space plots, where k = n/2 if 'n' is even and k =

4. If 'n' is even, then the pairs for the planar c-space plots will be: [q1 – q2], [q3 – q4],……[qn-1 – qn], where 'q' denotes the generalized joint-variable of the manipulator.

**3.4 C-space maps for higher dimensionality** 

rotations) towards avoiding collision with the obstacles.

robot

**3.4.1 Lemma** 

each.

dimensionality as detailed below.

(n+1)/2 if 'n' is odd.

Figures 7 and 8 show the final c-space for the above two environments.

Fig. 7. Final c-space mapping for the environment filled with non-circular polygonal obstacles

Fig. 8. Final c-space mapping for the environment congested with circular obstacles
