Spatial Path Planning of Static Robots Using Configuration Space Metrics

Obstacle avoidance and robot path planning problems have gained sufficient research attention due to its indispensable application demand in manufacturing vis-à-vis material handling sector, such as picking-andplacing an object, loading / unloading a component to /from a machine or storage bins. Visibility map in the configuration space (c-space) has become reasonably instrumental towards solving robot path planning problems and it certainly edges out other techniques widely used in the field of motion planning of robots (e.g. Voronoi Diagram, Potential Field, Cellular Automata) for unstructured environment. The c-space mapping algorithms, referred in the paper, are discussed with logic behind their formulation and their effectiveness in solving path planning problems under various conditions imposed a-priori. The visibility graph (v-graph) based path planning algorithm generates the equations to obtain the desired joint parameter values of the robot corresponding to the ith intermediate location of the end effector in the collision free path. The developed c-space models have been verified by considering first a congested workspace in 2D and subsequently with the real spatial manifolds, cluttered with different objects. New lemma has been proposed for generating c-space maps for higher dimensional robots, e.g. having degrees-of-freedom more than three. A test case has been analyzed wherein a seven degrees-of-freedom revolute robot is used for articulation, followed by a case-study with a five degrees-of-freedom articulated manipulator (RHINO XR-3) amidst an in-door environment. Both the studies essentially involve new c-space mapping thematic in higher dimensions. Tomas Lozano Perez’ postulated the fundamentals of Configuration Space approach and proved those successfully in spatial path planning of robotic manipulators in an environment congested with polyhedral obstacles using an explicit representation of the manipulator configurations that would bring about a collision eventually [Perez’, 1983]. However, his method suffers problem when applied to manipulators with revolute joints. In contrast to rectilinear objects, as tried by Perez’, collision-avoidance algorithm in 2D for an articulated two-link planar manipulator with circular obstacles have been reported also [Keerthi & Selvaraj, 1989]. The paradigm of automatic transformation of obstacles in the cspace and thereby path planning is examined with finer details [De Pedro & Rosa, 1992], such as friction between the obstacles [Erdmann, 1994]. Novel c-space computation algorithm for convex planar algebraic objects has been reported [Kohler & Spreng, 1995],


Introduction
Obstacle avoidance and robot path planning problems have gained sufficient research attention due to its indispensable application demand in manufacturing vis-à-vis material handling sector, such as picking-and-placing an object, loading / unloading a component to /from a machine or storage bins.Visibility map in the configuration space (c-space) has become reasonably instrumental towards solving robot path planning problems and it certainly edges out other techniques widely used in the field of motion planning of robots (e.g.Voronoi Diagram, Potential Field, Cellular Automata) for unstructured environment.The c-space mapping algorithms, referred in the paper, are discussed with logic behind their formulation and their effectiveness in solving path planning problems under various conditions imposed a-priori.The visibility graph (v-graph) based path planning algorithm generates the equations to obtain the desired joint parameter values of the robot corresponding to the i th intermediate location of the end -effector in the collision -free path.The developed c-space models have been verified by considering first a congested workspace in 2D and subsequently with the real spatial manifolds, cluttered with different objects.New lemma has been proposed for generating c-space maps for higher dimensional robots, e.g.having degrees-of-freedom more than three.A test case has been analyzed wherein a seven degrees-of-freedom revolute robot is used for articulation, followed by a case-study with a five degrees-of-freedom articulated manipulator (RHINO XR-3) amidst an in-door environment.Both the studies essentially involve new c-space mapping thematic in higher dimensions.Tomas Lozano Perez' postulated the fundamentals of Configuration Space approach and proved those successfully in spatial path planning of robotic manipulators in an environment congested with polyhedral obstacles using an explicit representation of the manipulator configurations that would bring about a collision eventually [Perez', 1983].However, his method suffers problem when applied to manipulators with revolute joints.In contrast to rectilinear objects, as tried by Perez', collision-avoidance algorithm in 2D for an articulated two-link planar manipulator with circular obstacles have been reported also [Keerthi & Selvaraj, 1989].The paradigm of automatic transformation of obstacles in the cspace and thereby path planning is examined with finer details [De Pedro & Rosa, 1992], such as friction between the obstacles [Erdmann, 1994].Novel c-space computation algorithm for convex planar algebraic objects has been reported [Kohler & Spreng, 1995], while slicing approach for the same is tried for curvilinear objects [Sacks & Bajaj, 1998] & [Sacks, 1999].Nonetheless, various intricacies of the global c-space mapping techniques for a robot under static environment have been surveyed to a good extent [Wise & Bowyer, 2000].Although the theoretical paradigms of c-space technique for solving find-path problem have been largely addressed in the above literature vis-à-vis a few more [Brooks, 1983], [Red & Truong-Cao, 1985], [Perez', 1987], [Hasegawa & Terasaki, 1988], [Curto & Monero, 1997], the bulging question of tackling collision detection under a typical manufacturing scenario, cluttered with real-life multi-featured obstacles remains largely unattended.Survey reports on motion planning of robots in general, have been presented, with special reference to path planning problems of lower dimensionality [Schwartz & Sharir, 1988] & [Hwang & Ahuja, 1992].The find-path problem under sufficiently cluttered environment has been studied with several customized models, such as using distance function [Gilbert & Johnson, 1985], probabilistic function [Jun & Shin, 1988], time-optimized function [Slotine & Yang, 1989], shape alteration paradigms [Lumelsky & Sun, 1990a] and sensorized stochastic method [Acar et al, 2003].Even, novel path transform function for guiding the search for find-path in 2D is reported [Zelinsky, 1994], while the same for manipulators with higher degrees-of-freedom is also described [Ralli & Hirzinger, 1996].All these treatises are appreciated from the context of theoretical estimation, but lacks in simulating all kinds of polyhedral obstacles.Based on the c-space mapping, algorithmic path planning in 2D using visibility principle is studied [Fu & Liu, 1990], followed by exhaustive theoretical analysis on visibility maps [Campbell & Higgins, 1991].However, issues regarding computational complexity involved in developing a typical visibility graph, which is O (n 2 ), 'n' being the total number of vertices in the map, is analyzed earlier [Welzl, 1985].The concept of M-line1 and its uniqueness in generating near-optimal solutions against heuristic-based search algorithms has also been examined [Lumelsky & Sun, 1990b].Several researchers have reviewed the facets of path planning problem in a typical spatial manifold.A majority of these models are nothing but extrapolation of proven 2D techniques in 3D space [Khouri & Stelson, 1989], [Yu & Gupta, 2004] & [Sachs et al, 2004].However, new methods for the generation of c-space in such cases (i.e.spatial) have been exploited too [Brost, 1989], [Bajaj & Kim, 1990] & [Verwer, 1990].Customized solution for rapid computation of c-space obstacles has been addressed [Branicky & Newman, 1990], using geometric properties of collision detection between known static obstacles and the manipulator body, while sub-space method is being utilized in this regard [Red et al, 1987].The usefulness of several new algorithms using v-graph technique has been demonstrated in spatial robotic workspace [Roy, 2005].It may be mentioned at this juncture with reference to the citations above, that, although celebrated, a distinct methodology of using c-space mapping for higher dimensional robots as well as in spatial workspace is yet to be tuned.Our approach essentially calls on this lacuna of the earlier researches.We proclaim our novelty in adding new facets to the problem in a generic way, like: a] rationalizing configuration space mapping for higher dimensional (e.g. 7 or 8 degrees-of-freedom) robots; b] preferential selection of joint-variables for configuration space plots in 2D; c] extension of 2D path planning algorithm in 3D through slicing technique (creation, validation & assimilation of c-space slices) and d] searching collision-free path in 3D, using novel visibility map-based algorithm.
The paper has been organized in six sections.The facets of our proposition towards configuration space maps in 3D are discussed in the next section.Section 3 delineates the c-space mapping algorithms, with the logistics and analytical models.The features of the path planning metrics and the algorithm in particular, using the concept of visibility graph, have been reported in section 4. Both 2D and spatial workspaces have been postulated, with an insight towards the analytical modeling, in respective cases alongwith test results.Section 5 presents the case study of robot path planning.Finally section 6 concludes the paper.

Modeling of robot workspace
The robotic environment is modeled through discretization of the 3D space into a number of 2D planes (Cartesian workspace), corresponding to a finite range of waist /base rotation of the robot2 .Thus, modeling has been attempted with the sectional view of the obstacles in 2D plane.The obstacles are considered to be regular, i.e. having finite shape and size with standard geometrical features with known vertices in Cartesian co-ordinates.For example, obstacles with shapes such as cube, rectangular paralleopiped, trapezoid, sphere, right circular cylinder, right pyramid etc. have been selected (as primitives) for modeling the environment.A complex obstacle has been modeled as a Boolean combination of these primitives, to have polygonal convex shape preferably.However, concave obstacles can also be used in the algorithms by approximating those to the nearest convex shapes, after considering their 'convex hulls' (polytones).Irregular-shaped obstacles have also been modeled by considering their envelopes to be of convex shapes.Circular obstacles have been approximated to the nearest squares circumscribing the original circles, thereby possessing pseudo-vertices.Features of the developed technique, namely, "Slicing Method", are: i] alongwith shoulder, elbow and wrist (pitch only) rotations, waist rotation of the robot is considered, which is guided by a finite range vis-à-vis a finite resolution; ii] the entire 3D workspace is divided into a number of 2D planes, according to the number of 'segments' of the waist rotation; iii] for every fixedangle of rotation of the waist, a 2D plane is to be constructed, where all other variables like shoulder, elbow and wrist pitch movements are possible; iv] corresponding to each of the 2D slices of the workspace, either one obstacle entirely or a part of it will be generated, depending on the value of the resolution chosen for waist rotation.Corresponding to each slice, one c-space map (considering only two joint variables at a time) is to be developed and likewise, several maps will be obtained for all the remaining slices.The final combination of the colliding joint variable values will be the union of all those sets of the values for each slice.Nevertheless, the process of computation can be simplified by taking some finite number of slices, e.g.four to five planes.Figure 1  By knowing the intercept co-ordinates for each slice, an equivalent 2D slice workspace is developed; simply by projecting those intercept lines.Obviously the height of the obstacle will now play a vital role and the projecting length will be equal to the height of the obstacle.In a similar manner, obstacles with varying height (say, slant-top type) can also be considered, with differential length of projection.As before, irregular-shaped obstacles can be approximated by means of some standard regular shape, either uniform or varying height, using the same model.The total number of configuration space plots for the entire cluttered environment will depend on the number of slices each obstacle has and also thereby the average number of slices obtained.Since each of those sliced c-space will represent obstacle geometries, fully or partially, it is important to label the nodes of the obstacle-slices so produced.In general, if a particular obstacle has got 'k' slices, having 'n' nodes each, then a generalized node of that obstacle will be labeled as, 'n k '.However, to avoid ambiguity, 'k' is considered alphabetic only.Figure 2 shows a representative obstacle with slices, where node '3 b ' signifies the third node of the b th.slice, which is incidentally the second slice of the obstacle.The obstacles are considered to be regular in shape with fixed dimensions, having a welldefined shape (sectional view) in 2D, preferably convex, for easier calculations.This has been made purposefully as in most of the manufacturing and/or shop-floor activities geometric objects are being handled by the robot, for example, loading and unloading of components to/from the machine, handling of semi-finished components between machines, storage and retrieval of finished components into bins etc.The philosophy behind these mapping algorithms is to consider each complex obstacle as a boolean combination of various primitives, viz,.'Point', 'Line' and 'Circle'.That is to say, if the obstacle is theoretically considered as a 'point', 'line' or 'circle' in shape in 2D, then colliding angle of the robot link(s) with those will be obtained and C-space maps can be drawn there from.These algorithms can also be applied for concave objects by considering the 'convex hull' of those and proceeding in the same manner taking that as the new obstacle.Similarly, irregular shaped objects can also be tackled with these models, in which envelope of the object is to be considered to get the nearest convex shape.Obviously accuracy of the results will suffer to some extent by this approximation, but it would be a reasonable solution for practical situations.

Details of the C-space mapping algorithms developed
3.1 Overview of the mapping algorithms 3.1.1C-space transformation of "POINT" This algorithm gives the C-space data for an obstacle, considered theoretically as a point in Cartesian space.The robot with line representation is being considered here.(refer fig.3).

Algorithm:
1. Input robot base co-ordinates, link lengths, the specified point, range of joint-angles & angular resolution.2. Calculate the distance of the point from robot base.3. Initialize the loop with iteration i=1. 4. Check whether the first link is colliding.5. Calculate the positional details of the first link (i.e.under colliding conditions), if step 4 is true.6. Check the collision with the second link, if step 4 is false.7. Calculate the colliding details of the second link, if step 6 is true.8. Output the colliding angles for suitable cases.9. i=i +1.10.Continue till all combinations of joint -angles are checked.

C-space transformation of "LINE"
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, triangle, trapezium etc. shaped cross-section in the vertical plane.

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.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.

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.

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.

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 (x k , y k ) of the manipulator joints can be generalized as, where, [ x b , y b ] T : Robot base co -ordinate vector in Newtonian frame of reference; l k : 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 (x 1 , y 1 ) & (x 2 , y 2 ) as end-points is given by, Hence, the co -ordinates of the intersection point between the obstacle edge(s) and the robot link(s) are, where, [x int_k , y int_k ] T : The intersection point vector for the k th.robot link with the Line and m k : The slope of the k th.robot link.
For a 3-link planar revolute manipulator, we have, therefore, 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.{ d k }.Nonetheless, considering finite dimensions, the generalized co-ordinates of the manipulator joints can be evaluated from, and, Hence, the co-ordinates of the intersecting point(s) between the robot arm(s) and the edges of the obstacle(s) become, considering two possible collisions per arm at the most.

Model for CIRCLE obstacles
With reference to fig. 4, let the following nomenclatures be defined, ( x b , y b ) : Robot base co-ordinates in Newtonian frame; l 1 & l 2 : Lengths of the first and second link of the robot respectively; ( x c , y c ) : Co-ordinates of the centre of the 'circle' obstacle and r : 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, where, Obviously, only one colliding angle, viz. 5 will be obtained with case V, i.e.
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, The colliding range for the second link is between  2S and  2f against case I & II, where, and, where, For case III & IV, the colliding range will be  3S to  3f , which can be evaluated as, and, where, For case V, the particular formidable value of the joint-angle is, The above equations need to be altered for collision checking with finite link dimensions of the manipulator, considering r1 and r 2 as the radii of curvature of the upper arm and fore arm respectively (refer fig.3).The modifications required are: i] 'l 1 ' is to be replaced by l u (= l 1 + r 1 ); ii] 'l 2 ' is to be replaced by l f (= l 2 + r 2 ) and iii] 'r' is to be replaced by r nj = r + d j /2,  j = 1,2, 3 corresponding to collision with upper arm, fore arm and the end-effector.

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.

Type of Robot Considered Revolute
No. of Links 2 No. of Degrees -of-Freedom 2 Length of the Links First Link: 5 units; Second Link: 4 units 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.

C-space maps for higher dimensionality
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 rotations) towards avoiding collision with the obstacles.Fig. 9.A representative cluttered environment with seven degrees-of-freedom revolute robot 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 dimensionality as detailed below.

Lemma
1. Identify the degrees-of-freedom of the robot ['n'] and notify those.
2. The robot is conceptualized as a serial chain of micro-robots of two degrees-of-freedom each.3. We will consider a total of 'k' planar c-space plots, where k = n/2 if 'n' is even and k = (n+1)/2 if 'n' is odd.4. If 'n' is even, then the pairs for the planar c-space plots will be: [q 1 -q 2 ], [q 3q 4 ],……[q n-1 -q n ], where 'q' denotes the generalized joint-variable of the manipulator.
www.intechopen.com430 5.If 'n' is odd, then the pairs for the planar c-space plots will be: [q 1 -q 2 ], [q 3 -q 4 ],……[q n- 2 -q n-1 ], [q n-1 -q n ]. 6.In a way, we are considering several virtual 2-link mini manipulators, located at the respective joints of the original manipulator.7. Out of the plots so generated, select the most significant c-space map.8.One way of accessing the most significant c-space map is to consider finite measurement of the planar area of the c-space.A larger area automatically indicates more complex dynamics of the joint-variables so far as the collision avoidance is concerned.9.Alternatively, significant c-space plots will be those having multiple disjointed loops, i.e. regions of formidable area.Individually the regions may be of smaller area, but the multiplicity of their occurrence adds complexity to the scenario.10.Once the most significant c-space map is selected, the locations corresponding to 'S' and 'G' are to be affixed in that plot.This will be achieved using inverse kinematics routine from 'S'(x,y) and 'G' (x,y).11.For the most significant plot so obtained, all joint-variables, except the two used in the plot will be constant.For example, if [q 3 -q 4 ] plot is the most significant one, then q 1 , q 2 ,……q n-1 , q n are constant except q 3 and q 4 .12.In general, if [q i -q j ] plot be the most significant, then the set {q 1 , q 2 ,……q n-1 , q n }, except [q i -q j ] , will be constant.And, the value of the set {q 1 , q 2 ,……, q i-1 } will be ascertained by the inverse kinematic solution of 'S' while the other set, {q j+1 , q j+2 ,…..,q n } will be determined by the inverse kinematic solution of 'G'.

Schematic of the model
Let us take an example of a seven degrees-of-freedom articulated robot, similar to one illustrated in fig.9.According to the lemma proposed in 3.4.1,there will be four planar cspace plots, namely, Figure 10 shows a sample view of these segmental c-space maps.

Generation of C-space plots: Concept of equivalent circle
In order to compute c-space data points for any particular combination of consecutive jointvariable pair for the higher dimensional robot, we would use a new concept, viz. the formulation of Equivalent Circle at the end of amidst the pair of links.Since we are considering virtual two-link mini-manipulators for the generation of c-space maps in pair, we would theoretically divide the links in two groups.The links, directly related to the generation of the specific c-space map, are termed as active links, while the others are known as dummy links.The philosophy of this equivalent circle is to re-represent the higher dimensional manipulator with only the active links and the joints therein, interfaced with circular zone(s) either at the bottom of the first active link or at the tip of the second active link.In general, the equivalent circles are constructed considering full rotational freedom of all the dummy links, located before /after the active links.
For example, if we wish to generate [ 1 -- 2 ] plot for the seven d.o.f.manipulator, then the equivalent circle alias equivalent formidable zone is to be constructed adjacent to the end the second link and circumscribing the remaining links.Figure 11 schematically presents the concept of equivalent formidable zone, with first two links as active links for a seven d.o.f.manipulator.12.Of course, as per this proposition, there can't be more than two formidable zones for any higher dimensional manipulator.It is essential to locate the center of the equivalent circle vis-à-vis its radius (equivalent radius, R eq. ), in order to start computing for colliding combinations.However, the formulations for equivalent radii are not same in the two cases, as cited in figs.11 & 12.In fact, the center of the equivalent circle, for cases wherein active links are followed by dummy links, will be at the base of the manipulator and its radius will be the summation of the lengths of the dummy links till we reach the first active link.For example, R eq. 1 in fig.
12 will be the added sum of L1 & L2. Figure 13  which is numerically equal to either L k or L k+1 , depending upon which link is colliding with that obstacle.The collidable range of joint-angles, corresponding to 'C', 'C 1 ' & 'C 2 ' will be (-), ( 1 - 1 ) & ( 2 - 2 ) respectively.Thus, in general a formidable range from  2 to  1 should be selected for c-space mapping in ( k -- k+1 ) plot.
In contrary to this situation, the other one, namely where dummy links are followed by active links, is more intricate so far the thematic is concerned.

Evaluation of C-space plots for higher dimensional robot: Example
Here we will study a specific case for a seven degrees-of-freedom robot, amidst a 2D cluttered environment as shown in fig.17.The technical parameters of the robot, comprising link-lengths, {l i , i = 1,2,…7}and joint limits { i , i = 1,2,…7), are highlighted in Table 2. Circular obstacles are considered for simplicity in computations.The locations of the respective centers and diameters of the obstacles (expressed in suitable units) are presented in Table 3.

Resolution of Joint Rotation 3 deg. (for all joints)
Table 2. Technical Facets of the Higher Dimensional Robot Under Consideration Table 3. Obstacle Signature, as per Workspace Layout of Figure 16 Now, in this case of seven degrees-of-freedom revolute robot, we will have four different c-space plots, namely, All of these plots use collision-detection algorithms, described earlier, for each of the obstacles separately, taking into account the concepts of equivalent circles.These c-space plots are illustrated in figure 18.A gross estimate reveal that plots occupy a planar area measuring (160x120), (80x95), (40,60) & (60x30) sq.units respectively.It is evident from fig. 18 that although complexity-wise both [ 1 -- 2 ] and [ 3 -- 4 ] plots are roughly at par, but the former is to be selected as the most significant c-space plot as it is also the largest in size.It may be noted that while c-space plot for a 2 d.o.f.robot (working in 2D or 3D task-space) can be composed of irregular non-geometric shapes (refer fig.7), the same for higher d.o.f.robots are perfectly geometric (refer fig.18).This is happening because of the incorporation of the concept of 'formidable zones' for higher dimensional robots, wherein we are deliberately allowing the collidable zone to engulf more regions in the c-space.In fact, in most of cases for higher d.o.f.robots, the c-space zones are perfect rectangular in shapes, between the minimum & maximum limits of the participating joint-angles.For example, in fig.18, ( 1 vs.  2 ) c-space slice plot the final rectangle is constituted between 4 vertices, viz.

Perspective
Based on the formation of c-space maps, collision-free paths are to be ascertained in 2D as well as in 3D.We will analyze the gamut in four functional quadrants, which have been conceptualized from the point of view of a] disposition of the obstacles (i.e.planar or spatial) and b] kinematics of the manipulator (i.e. its degrees-of-freedom).Following checker-box illustrates the situation pictorially (refer fig.19).

Fig. 19. Schematic of the robotic path planning scenario using Configuration Space approach
In fact, the methodologies to be adopted for different situations of robot path planning vary significantly and those depend on the task-space nature (i.e.planar or spatial) and the robot kinematics (i.e degrees-of-freedom).Besides, the 3D path planning is also dependent upon the nature of the slices produced from the task-space.Those can be identical in nature or non-identical.Table 4 presents the scenario, highlighting the methods used for the collisionfree path planning,

Logistics of visibility graph formulation: Our model
The workspace of the robot has been modeled by formulating the Visibility Matrix of the visibility graph6 of the cluttered environment.This matrix has been conceived as a kind of 'adjacency' relationship and framed by knowing the necessary visibility information about the nodes of the graph.Figure 21 illustrates the visibility matrix, [Vij], as developed from the environment shown in fig.20, which depicts a typical sub-visibility graph, generated out of several polygonal obstacles known a-priori (i.e. with pre-fixed locations).
In addition, the total number of imaginary lines in the visibility graph can be computed as: where, 'd k ' is the number of edges of the k th.obstacle.vii.A quick estimation of the computational time for the algorithmic path planning using a finalized visibility graph of the robot workspace reveals the following: where, '' is a factor representing the computational time and the memory requirement factor, say , will be as follows: Also the range of '' may be estimated for all practical computational situations as, O (N) <    ( 27) It is to be noted that the lower bound of '' is certainly beyond O (N), while the upper bound can marginally reach O   as 'N' tends to some larger value.
Regarding circular obstacles in 2D plane, a trade-off has been attained between the approximation to the nearest polygonal shape and the computational burden.For example, a perfectly circular-shaped object can be approximated with a circumscribing square-shaped object, but it will be about 80 % less efficient in comparison to an approximation with an octagonal shape.Hence, the decision for the optimal selection for approximation for a circular obstacle remains with the overall complexity of the visibility graph, i.e. essentially the value of 'N' generated thereby.

Development of the path planning algorithm in 2D plane
The new heuristic algorithm, namely, Angular Deviation Algorithm, has been developed to obtain near-optimal path for the manipulator amidst obstacles in a planar workspace x : An intermediate level in the graph search process; V x_j : j th.visible node from x th.node in the visibility graph; x V x_j : The nodal line, joining the x th.node and the j th.visible node (from x th.node); i : Iteration number of the graph search process.This algorithm relies on angular deviation as the necessary computing heuristic, which is inbuilt in nature.It considers each line-segment, { l ij }, where, l ij  { l }, joining the nodes, say, n i and n j , where (n i , n j )  { n },  i , j  I, of the sub-visibility graph and computes the angular deviation of that { l ij } with respect to the M-line.The logic of this algorithm is to minimize the Angular Heuristic Function, as generated from the angular deviations, at each level of searching.Hence, in a cluttered environment the near-optimal path can be chosen by considering only those line-segments, which are comparatively closer to the M-line. Steps: 1. Initialize the search with i=1. 2. For i=1, loop starts with 'S': note V S_1 , V S_2 , ................, V S_p .3. Compute:  S_1 = Ang ( SG, SV S_1 );  S_2 = Ang (SG, SV S_2 ),..........  S_p = Ang (SG, SV S_p .). 4. Check: min.(  S_1 ,  S_2 ,............,  S_p ). 5. If V S_p .= 'G', then stop.Else, 6. i = i + 1. 7. Begin the next level of search from the x th.node with min.( S_x ). 8. Compute: {  x_j } = { Ang ( SG, XV x_j ) }, where x < j  N, 'N' being the total number of nodes in the graph.9. Go on searching likewise till 'G' occurs and finally note the nodes of the optimal path, so achieved.

Paradigms of path planning in 3D space for two degrees-of-freedom robots 4.4.1 Model for C-space slices and path generation
The concept of discretization of robot workspace in preferential 2D slices has been applied for generating safe path in a spatial manifold.As a result, multiple c-space slices are generated depending upon the features of the individual slices.Safe paths are then determined, using the Angular deviation algorithm, separately for each such c-space slice produced.Thus, if a spatial workspace is segregated in 'k' slices, then there will be 'k' cspace slices also.Figure 22 schematically presents the view of the sliced c-space maps for a known environment.
Fig. 22.Schematic view of the sliced c-space maps for a two degrees-of-freedom robot workspace It may be noted that we need to generate c-space slices, as shown in fig.22, for all the slices equally since our c-space mapping algorithms are in 2D and those are based on planar collision avoidance principles concerning Point, Line & Circle obstacles.Since the total number of slices for a specific environment is fixed a-priori, it may so happen that a particular slice of an object is not falling under the obstruction zone of the robot.In that case, that particular slice of that object will not appear in the corresponding c-space slice (e.g.refer j th.slice c-space map of fig.22, wherein the slice for obstacle 3 is absent).Nonetheless, the axiom followed is if the last slice of any obstacle is collidable, then all its previous slices ought to be.But the vice-versa is not true.
Once the requisite c-space slice maps are generated, we need to evaluate the safe paths in each of these sliced c-space maps using the visibility-based Angular deviation algorithm.Thus a set of paths will be obtained and the cardinality of the set will be equal to the number of slices.Finally we will take the intersection of the possible paths, as only intersection set will represent the optimal path in true sense.However, intersection won't be the solution for situations where slice(s) for obstacle(s) is/are absent in a particular c-space slice.For example, with reference to fig.22, considering two c-space slices in total, we have to follow the path shown in the first map, i.e. the i th.slice map.
On the other hand, in situations where all the object-slices are present in all the c-space slices, then intersection can be advantageous, as we can omit longer routes via nodes in certain instances.A typical case is exemplified in fig.23.Here a particular object is shown to have slightly different geometries and the path between 'S' & 'G' also varies accordingly as shown.In case (a), we are unable to consider 2' as 'node', because of the proposition of visibility graph and the path (viz.S ……123G) is bound to pass through the stipulated node 2 only.However, node 2' lies very much inside the boundary of the c-space obstacle and in fact, it is closer to 'G' as compared to node 2. Thus the path shown in case (b) is the optimal solution (viz.S ……..12'G) and in fact, it is also the intersection of the two alternatives.In situations where more than one slice is possible for a particular obstacle, two cases can appear.

Case I: Robot base is in-line with the obstacle
In this case, let S = d ( i / 180) , where  S   i  r base .
If S  w, then 'slice' is possible and co-ordinates of the intercept of the slices are given by, where, (x int_1 , y int_1 ) and (x int_2 , y int_2 ) are one set of co-ordinates corresponding to one slice.With  i varying within its range with an increment of  S , the other set of slice co-ordinates will be obtained.

Case II: Robot base is not in-line with the obstacle
In this case, If S '  0 and S '  w, then slice is possible and co-ordinates of the intercept of the slices are given by, x int_2n = x 2 + [ l tan ( j - in ) / ( l/d ) ] ( 39) As before, (x int_1n , y int_1n ) and (x int_2n , y int_2n ) are one set of co-ordinates corresponding to one slice.With  j varying within its range with an increment of  S , the other set of slice coordinates will be obtained.Selection of 'safe' nodes of the robot end-effector in the 3D space depends on the elemental results, as obtained from the corresponding planar analysis.Symbolically, if the collision-free path for one particular 'slice' is represented as, where, X 1 , X 2 , ..............., represent the serial number of the 'safe' nodes (may not be in the same order as the node nos., viz, 1,2,3,........) and 's_k' is the k th.slice, then the final path will be the union of all such feasible combinations, viz., where, 'n' is the total number of slices generated.

Evaluation of path in 3D for higher dimensional robot
As depicted in fig.19, evaluation of the collision-free path in 3D will depend on the degreesof-freedom of the robot (i.e.whether d.o.f.=2 or >2).Nonetheless, in both the cases we need to fragment the 3D task-space in multiple slices, which may or may not be identical to one another.Thus, we will arrive at a situation wherein we have to deploy different strategies to evaluate a safe path.These models are described below.

Model for obtaining safe path for identical slices
The first and foremost pre-requisite of evaluating a collision-free path in this case is to have the most significant 2D c-space slice map for the robotic workspace under consideration, as described in 3.4.2.Once the critical c-space slice map is earmarked, the next task is to pinpoint the corresponding locations for 'S' & 'G' in that map.This can be achieved by using the inverse kinematic solution for 'S' & 'G' and subsequent mapping from task space to joint space.For example, consider again the case of a seven degrees-of-freedom robot shown in fig.9, wherein say the [ 3 -- 4 ] map is the most significant.Thus, the corresponding visibility graph of the environment will have non-identical 'S' & 'G' signatured as, S: ( 3 = 0 ,  4 = 0 ) and G: ( 3 = 0 ,  4 = 0 ).We will assume that the set of other joint-angles, i.e. { 1 ,  2 ,  5 ,  6 ,  7 } to be constant throughout the process of path generation.Now, by using the developed path planning algorithm, we will finally get a collision-free optimal path between S: (,) and G: (,).The generalized representation of co-ordinates of any two nodes (say N i & N j ) of the said path will be as follows, The general lemma in this regard is stated as below, where, k: the degrees-of-freedom of the articulated robot;  1 ,  2 ,……  p ,  q ,….. , k : jointangles of the robot of which 'p' & 'q' represent any two consequtive pair; [ p -- q ]: the most significant c-space slice map; [c 1 , c 2 ,..…,c p-1 ] & [c q+1 , c q+2 ,…,c k ]: two non-identical group of constants to be evaluated using inverse kinematics solution for 'S' and 'G' respectively.Once this path is obtained for a particular slice, say the first one, the same procedure can be repeated for other slices too, because all the slices are identical.And, obviously the same path will be obtained in all slices, which will be designated as the final path for that robot in 3D.The kinematic inversion for 'S' & 'G' is another important facet in this regard and analytically, there can be multiple feasible positions of 'S' as well as 'G' in the c-space plot (refer fig.25).
One each from the two clusters of feasible locations can be selected for S: (,) and G: (,).

Model for obtaining safe path for non-identical slices
In this case, we will get different sets of nodal points, corresponding to safe paths, for each slice.The procedure for obtaining a particular set of nodal points (nodes) for a specific slice is same as described in 4.5.1.But the challenge involved here is the most significant c-space slice is not fixed for the slices, rather in worst case it will differ.For example, let us take the case of seven d.o.f.manipulator and we assume there are five slices in the workspace.After c-space slice mapping, we find that while [ 3 -- 4 ] is the most significant map for the first slice, [ 1 -- 2 ] is the same for second slice.And likewise, the maps of are the significant ones for third, fourth and fifth slice respectively.Thus the hurdle becomes in unifying these varying sets of maps into one final path.This is solved considering the union of the available sets of nodal points.In general, if there are 'k' non-identical slices and the sets of nodal points for each safe path are represented by, {S k } = {N 1k , N 2k ,……….,Nqk }, where 'q' is the cardinality of the set and the value of 'q' may vary for different 'k', then the final path will be defined as, In other words, statistical union of nodes will proceed slice-wise; i.e. to get the safe path complete posting all the nodes under one slice, then move on to the next slice and so on, till all the slices are exhausted.Nonetheless, the co-ordinates of the nodes in the path will be evaluated as per the lemma described in 4.5.1.

Illustrative examples
The developed path planning algorithm has been tested with two sample environments, the first one is contains a two degrees-of-freedom robot while the second one includes a seven degrees-of-freedom robot.

Sample workspace for two degrees-of-freedom robot
This example has a reference to the robot workspace with circular obstacles, as shown in fig.6 and subsequently, the c-space map, vide fig.8. Figure 26 presents the final c-space obstacles7 with nodes numbered sequentially and the visibility graph generated there from.Table 5 shows the output of the graph search process using our algorithm, developed with 'S' & 'G' configurations as (60 0 , -120 0 ) and (222 0 , 190 0 ) respectively.For comparison, the result obtained through A* search algorithm is also included.It may be mentioned here that we can very well benchmark the result obtained by the Angular Deviation Algorithm, as it is representative amongst the AI-based heuristic algorithms.In fact, due to its logistics, the developed algorithm is having an edge over the other possible metrics of path planning, e.g.Generalized Voronoi Diagram (GVD), Cellular Automata and Potential Field.All of these three methods rely on diversification in search, which eventually leads to more computational time and complexity.Besides, the important attribute, namely, "closeness to desired path" is compromised in most of the non-AI based techniques.In comparison, AI-based searches are much robust and coherent; like the case

Sample workspace with seven degrees-of-freedom robot
This example is in reference to the robotic environment shown in fig.17 and subsequently the various c-space slice maps, as detailed in fig.18.As we have declared in section 3.5 that [ 1 -- 2 ] plot is the most significant out of the four plots, we need to obtain the v-graph for this plot.Figure 27 shows the developed v-graph for this c-space slice plot.Here the generated v-graph is relatively simpler by default as it has only four nodes, which is due to the fact that both the joint-angles in consideration, viz. 1 &  2 are plotted in their full ranges.Thus 'S' & 'G' are also located on the boundary lines, because other locations will be infeasible.

Case study
We have studied one real-life case of robot path planning in 3D, based on c-space modeling and v-graph searching, as delineated in the paper so far.The study was made with a five degrees-of-freedom articulated robot, RHINO-XR 3  , during its traverse between two predefined spatial locations through a collision-free path.The main focus was to maneuver this robot between 3D obstacles in reaching a goal location in a cluttered (laboratory) environment.Since RHINO is a low-payload robot, instead of standard pick-and-place tests, we designed our experiment such that it had to only touch the start ('S') and goal ('G') locations by the gripper end-point.The safe path in 3D, between the start and goal locations, was arrived using c-space slice mapping and Angular Deviation Algorithm (refer section 4.3).

Conclusions
The details of the visibility graph-based heuristic algorithm for safe path planning in 2D plane as well as 3D space have been discussed in the paper, backed up by the theoretical paradigms of the generation of c-space obstacles from their respective task-spaces.The outcome of the c-space and v-graph algorithms have been found effective in programming the robot in order to perform certain pre-specified tasks or a series of tasks, such as in somewhat off-the-track industrial applications.The best path needs to be selected out of the possible alternatives by considering the most feasible criteria, which is essentially application specific.The novelty of the developed method lies with the ease of computational burden as 2D c-space slices are being joined statistically (union).Also by not incorporating all obstacles in one c-space slice we are improving upon computational efficiency and thereby reducing undue technical details regarding the obstacles.However, the safe path obtained by the developed method may overrule some nearer nodes, because the corresponding c-space slices are based on maximum safety margins, as per the propositions of the model.In fact, the concept of formidable zones is introduced in our model to avert potentially dangerous joint-angle configurations and thus, at times, the entire jointangle range-space gets selected for the c-space map.The reason for taking this lemma is to safeguard the robot's motion between 'S' & 'G' to the best extent.Thus we may end up in some joint-angle (nodal) combinations, which might have been omitted, but it is always better to select a safe & secured path, rather than risking the robot motion for potential grazing and/or full collision with the obstacle(s).As per the proposed method, c-space slices often look trivial (e.g.regular geometrical shaped obstacles), although those are quite computationally intensive.Nonetheless, the geometrical simplification in appearance makes the v-graph map easy and subsequently the graph-search process too.

Acknowledgment
Gratitude is due to the faculties of the robotics laboratory, department of Production Engineering, Jadavpur University, Kolkata, India for supporting with the case study.The author acknowledges useful contribution made by Shri Sovan Biswas, Infosys Ltd., India in coding the path planning algorithm used in the case study.

Fig. 1 .
Fig. 1.Schematic view of 'Slicing Model' for a congested spatial robotic environment

Fig. 4 .
Fig. 4. Various possible colliding combinations of a two-link robot with circular obstacle (i) Robot base co-ordinates (x b , y b ); (ii) Length of the upper arm or shoulder (l 1 ); (iii) Length of the fore arm or elbow (l 2 ); (iv) Length of the end-effector or wrist (l w ); (v) Width of the upper arm (d 1 ); (vi) Width of the fore arm (d 2 ); (vii) Width of the endeffector (d w ); (viii) Radii of curvature for upper and fore arm (r 1 & r 2 respectively); (ix) The co-ordinates of the Point: (x 1 , y 1 ) or Line: [(x 1 , y 1 ) & (x 2 , y 2 ) as end -points ] or Circle: [centre at (x c , y c ) & radius : 'r'].

Fig. 10 .
Fig. 10.Sample view of the composite C-space map for a seven degrees-of-freedom robot

Fig. 11 .
Fig. 11.Schematic view of equivalent formidable zone for a seven d.o.f.manipulatorHowever it is possible to have two equivalent formidable zones in cases where some intermediate links are considered for c-space plots.For example, if the third & fourth links of the manipulator become active links, then there will be two formidable zones, as

Fig. 12 .
Fig. 12. Occurrence of two equivalent formidable zones for a seven d.o.f.manipulator Fig. 13.Schematic showing the analytical layout for the evaluation of equivalent radius [type I] Fig. 15.Schematic showing the disposition of the equivalent formidable circle [type II]The equivalent radius [type II] is evaluated using geometrical attributes, as detailed in fig.16.Here, the points 'A', 'C' & 'C m ' represent the locations of the centers of the maximum, equivalent & minimum formidable zones respectively.As evident from the figure, the ratio between the two line-segments, viz. the semi-chordal length of the equivalent circle and the radius of the maximum formidable zone is 'k', where 0<k<1.In-line with the numerical evaluation of 'R eq.', the location of the center, 'C' can be determined also.5

Fig. 17 .
Fig. 17.Workspace layout of the seven degrees-of-freedom articulated robot

Fig. 18 .
Fig. 18.Four c-space plots for the seven joint revolute robot amidst cluttered workspace of fig.17 Summary of the Methods Used for Collision-free Path Planning of Robots

Fig. 21 .
Fig. 21.The visibility matrix developed from the environment shown in fig.20 Features of the visibility matrix are listed below: i. Nodes are numbered in ascending order from 'S' to 'G' maintaining counter-clockwise sense for each obstacle.Backtracking of the nodes is not allowed.Symbolically, if 'n r ' is the particular node under consideration which can see nodes n j1, n j2 ,..........., n jp ,...., n jk then: n j1 > n r . The formulation of the heuristics and subsequently the solution phase are based on A* search technique, in general.Following legends have been used in formulating the algorithm.S: The 'start' location of the robot end-effector (in Cartesian or C-Space); G: The 'goal' location of the robot end-effector (in Cartesian or C-Space); SG : The imaginary line joining 'S' and 'G'; L M-Line : The geometric length of the imaginary line joining 'S' & 'G', i.e. the 'M-Line';

Fig. 28 .
Fig. 28.Photographic view of the test set-up for spatial path planning with RHINO robot on the obstacle zone map vis-à-vis waist rotation of the RHINO robot, we have discretized the workspace into three non-identical slices.The task-spaces, corresponding to these slices, are schematically shown in fig.29.In all the sliced maps, the vertices of the combined obstacles are labeled alphabetically, with a numeric indication for the slicenumber.For example, the vertex "A1" signifies the vertex number "A" in slice number1.It is to be noted that the vertex numbers are not obstacle-specific, rather those are serially numbered depending on the shape of the obstacle-zone in that very slice.

Fig. 30
Fig. 30.C-space map for the first slice pertaining to the case-study

Fig. 32
Fig. 32.C-space map for the third slice pertaining to the case -study "A": Generation of slices in task-space with co-ordinates (x,y) & node numbering; "B": Generation of cspace maps, including the critical-most; "C": Development of the v-graph and "D": Graph searching & output of the Angular Deviation Algorithm.Summary Data for the Case Study with Details of the Computational Time [PCbased]It may be noted that elemental timings for module A, B, C & D against individual slices give an apprehension regarding the relative toughness of the corresponding task-space and later on c-space & v-graphing.On the contrary, the final combined timings indicate the actual processing time (using multi-session processing of the operating system of the PC) of the problem, with usual co-processor actuations.Similar timings were observed while using A* algorithm for graph search.

Table 5 .
Collision-free Near-optimal Path between 'S' & 'G' with reference to Example in fig.26withAngular Deviation Algorithm.The other group of search algorithms, based on mathematical programming, such as Variational Methods, Hierarchical Dynamic Programming and Tangent Graph Method, are although relatively better focused, but those are highly memory-extensive.Thus, in all counts, Angular Deviation Algorithm scores high amongst the various alternatives in graph-search methods.