A CCD-BASED INVERSE KINEMATICS APPROACH USING FRENET–SERRET PARAMETERIZATION FOR SHR MANIPULATORS

M. Madhu, S. Pravin Kumar, S. Shriram, and R. Vignesh

References

  1. [1], [8] show that researchers have formulateda novel kinematic model using curvature approach forcontinuum style robots. Reference [9] shows a proposedmethod based on nonlinear programming techniques andforward recursion formulae resulting in an iterative numer-ical algorithm, and it was proven to be computationallyeffective in obtaining the IK solutions.These studies present us that attainment of IK solu-tions for redundant articulated structures has always beena difficult and challenging task. Further, the study il-lustrates that the kinematics for hyper-redundant robotscan be addressed in three methodologies. Closed formsolution methodology using analytic expressions, calculus-based numerical solution methodology and optimizationmethodology are the three broadly classified approachesused to solve kinematics of hyper-redundant robots.Closed form solution is a methodology that uses an-alytic expressions to find results. This way of solutionfinding is possible only when the resulting expression is apolynomial of degree 4 or less [10]. Jacobian techniquescan be used for solving manipulators of up to six DOF.The method requires high computational ability. For re-dundant manipulators, the Jacobian technique as it is canno longer be used since the mobility is more than six andtherefore yields in a rectangular matrix which is not in-vertible. Hence, a method called pseudo-Jacobian inversemethod is being widely used [11]. These methods fail toprovide solutions in the case of kinematic singularities andmay become numerically unstable.Calculus-based approaches (one of the numerical so-lution methods) such as the Newton Raphson methodwork on predictor–corrector algorithms. The difficulty incalculus-based approach is that when the Jacobian matrixis singular; it does not find a solution. In addition, if theinitial approximation of the solution vector is sufficientlynot accurate, the solution finding process may becomeunstable. It also suffers a serious issue of being slow toconverge to a solution [11].The optimization method is a fundamentally differentapproach that eliminates the matrix inversion completely.The entire problem of IK is converted into a minimizationproblem, and then standard iterative nonlinear optimiza-tion techniques can be used [10]. The joint constraints areprovided as the conditions for the objective function.The analytic and calculus techniques suffer a commondrawback of demanding huge computation power whenhigher DOFs are used, resulting in higher solving time,and hence affect the response duration of the manipulator.With the developed manipulator possessing a mobility of32, a kinematic approach which could solve IK more easilyand faster is required. Thus, a unique method that com-bines the analytic expressions of curvatures and a heuristicmodel called cyclic coordinate descent (CCD) is chosen.A heuristic method is a very intuitive approach wherethe manipulator learns from its experience. The link makesan adjustment based on error minimization logic and movesiteratively based on the logic. This method is computa-tionally fast and in addition to that if used properly canprovide the best possible solution for a configuration ofthe manipulator [12]. CCD IK method is an iterative nu-merical algorithm that is straightforward and intuitive toimplement while also boasting the added advantage of notrequiring any complex matrix math decomposition [12].Therefore, it was decided to use CCD for IK in this articlewhich will be combined with analytic expressions of curva-tures. Figure 1 shows an outline of different methodologiesthat can be used for spatial hyper redundant (SHR).Figure 1. Outline of different methodologies that can beused for SHRs.2Figure 2. SHR manipulator assembly.Figure 3. Active link geometry.2. Mechanical StructureThe design of the manipulator involves the design of activelinks, supporting links, joints, actuators and transmissionmechanisms for the proper functioning of manipulator arm.Figure 2 shows the assembly of the SHR manipulatorand a number of active links and sections present in themanipulator arm. The robot arm consists of four sectionswith four active links (links that are being controlled bymotor actuation) and twelve supporting links (links merelyused to support active links) with each link facilitating twoDOF as shown in Fig. 2.Each section of the arm has three supporting links, anactive link and is controlled by using four stepper motors.Sixteen actuators (stepper motors) are used to drive themanipulator arm with four motors driving each section.Four stepper motors facilitate a section to move in clock-wise and in counter-clockwise direction about the x-axisand y-axis through four ropes anchored at diametricallyopposite ends (two motors for rotation about x-axis andtwo motors for rotation about y-axis) as shown in Fig. 2.Thus, each active joint provides two rotational DOF aboutthe x-axis and y-axis leading to eight controllable DOFfor the SHR manipulator. A rope drive system is used totransmit the motion between the actuator and the link.Each link is provided with 16 through holes, and it is laidover a pitch circle diameter. Holes serve as a guiding ele-ment for the ropes. The active links (Fig. 3) are providedFigure 4. Supporting link geometry.Figure 5. Maximum bent angle for a section – 90 degrees(22.5 degrees/link).with pockets for anchorage of the ropes. Figures 3 and 4show the geometry of active and supporting links.The total length of the arm is 416 mm and individualsection length is 104 mm. Pulling a rope makes the targetedlink to rest over its preceding link generating a maximumoperating angle of 22.50 in a plane. Figure 5 shows thelinks with threads passing through them and illustratingthe maximum angle of 90 degrees (four links – 22.5 degreeseach) a single section can make.3Figure 6. Backbone curve of the SHR manipulator.3. Kinematic ModellingThere are two approaches for modelling the kinematics ofcontinuum robots. It can be done by using joint anglesand link parameters or by using curvatures to describe themanipulator shape. Unlike conventional manipulators, theuse of joint angles and link lengths does not provide an easyand physical realizable description of the manipulator’sshape due to continuous nature of the design, whereasa kinematic model that uses a curvature to describe theshape of the manipulator will provide more physical andintuitive description of the manipulator [1]. Hence, it wasdecided to proceed with the latter approach. A backbonecurve is a curve that passes through all the links and jointspresent in the manipulator as shown in Fig. 6.To develop a kinematic model, this backbone curvemust be parameterized and fitted to define the nature ofthe manipulator. The parameterization is done throughFrenet–Serret approach by describing the motion of a frameas it changes along the backbone curve. Equations (1)–(3)describe the motion of a curve in space, twisting androtating around in three-dimensional space:dTds= kN (1)dNds= −kT + τB (2)dBds= −τN (3)In these equations, s represents the arc length; cur-vature k and torsion τ are the scalar parameters whichmay be either positive or negative. T, N and B areunit tangent, normal and binormal vectors perpendicularto each other forming an orthonormal basis known as theFrenet frame. Reference [1] shows that Hannan and Walkerhave used the Frenet–Serret curve parameterization to de-scribe the motion of curve in terms of discrete movementsand subsequently parameterized the Denavit–Hartenbergformulation to obtain the transformation matrix for ahyper-redundant manipulator [1]. Equation (4) representsFigure 7. Simple two link chain explaining the working ofCCD.a homogeneous transformation matrix for a single sectionof the manipulator:0A4=⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣cos(∅)cos(kl) − sin(∅) −cos(∅)sin(kl) − 1k cos(∅)+ 1k cos(∅) cos(kl)sin(∅)sin(kl) cos(∅) −sin(∅)sin(kl) − 1k sin(∅)+ 1k sin(∅) cos(kl)sin(kl) 0 cos(kl) 1k sin(kl)0 0 0 1⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦(4)In the previous matrix, l is the total arc length(104 mm), and ∅ describes the curvature in space for asingle section [1]. The forward kinematics for all four sec-tions of the arm (Fig. 2) can be calculated similarly asshown in (5):0A16 = 0A4 · 5A8 · 9A12 · 13A16 (5)4. Inverse KinematicsThe IK is done through optimization technique called CCD.The link makes an adjustment based on error minimizationlogic and moves iteratively based on the logic.The CCD algorithm for a rigid link manipulator goesfrom joint-to-joint and rotates the end-effector as close aspossible to the target. After each iterative update, thealgorithm measures the distance between the end-effectorand the target to decide if it is close enough and shouldexit. Furthermore, to avoid infinite recursive loops due tounreachable and conflicting goals, the algorithm must seta maximum iteration count [12].The angle (θ) (Fig. 7) between the current positionand the target at each iterative update can be found byusing vector multiplication as shown in (6):cos(θ) =Pi − P0||Pi − P0||·Pt − P0||Pt − P0||(6)4Equation (7) is used to find the direction of rotation(r) of the link (clockwise or counter-clockwise), which hasto make to reach the target position:r =Pi − P0||Pi − P0||×Pt − P0||Pt − P0||(7)where Pi, P0 and Pt are the position of end-effector,position of joint considered in the iteration and position oftarget, respectively.This CCD approach is generally used for rigid linkmanipulators. However, for SHR manipulators, the curva-ture of the links needs to be considered. A single sectionof the manipulator is schematically illustrated in Fig. 8.The x(s) denotes the position vector of the active linkfrom the base of the section, θ denotes the angle betweenx(s) and tangent of the curve at x(0). The x(s) can becalculated from (4).Figure 8. The magnitude and angle of a section.Table 1Algorithm Adopted for Solving Kinematics of SHRwhile ((error > termination criteria) or (iter < max_iterations))for(i = 1; i<=4; i++)Calculate(θi);mechanicalConstraint = 45 /Mechanical Limitation of a section/if(θi > mechanicalConstraint)θi = mechanicalConstraintSolve for ki from θiupdateTransformMatrix()updateEndEffectorPosition()end foriter++error = dist(endEffector,targetPos)end whileFigure 9. Flowchart of procedure adopted.On observing and comparing Figs. 7 and 8, thefollowing analogy can be established:1. The joint angle in Fig. 7 is analogous to angle betweenx(s) and tangent of the curve at x(0) in Fig. 8.2. The constant link length in Fig. 7 is analogous to thevariable ||x(s)|| in Fig. 8.These established analogies are considered and used inthe CCD algorithm. The curvature variable k mentionedin (1) can be obtained with the relationship k = 2θ. Thealgorithm adopted for solving kinematics of SHR is shownin Table 1, where θ is the rotation angle, i is the index ofsection, k is the curvature of section.This algorithm is used to define the iterative proceed-ings of the links for the spatial hyper-redundant manipu-lator. The sections of the manipulator were converted intovectors in the 2D space by substituting l (total arc length)as 104 mm, θi as −1 (initial non-zero value) and ∅ as zeroin (4) and (5). A target position (4 × 4 matrix) is providedto the algorithm and it calculates the angle between thetarget and the end-effector [Equations (6) and (7)]. Then,it moves the links towards the target. The Frenet–Serretapproach is added in the CCD algorithm to describe themotion of the links as it changes along the curve. Thiscurvature is incorporated using a mathematical relationobtained from Frenet–Serret approach [Equations (1)–(3)].The flowchart of the procedure adopted is shown in Fig. 9.5The algorithm is developed in MATLAB by imple-menting the CCD approach into the kinematic model ofthe manipulator. Each segment of the manipulator’s armis considered as a vector (effective length between twotarget links) and each vector is defined using its appropri-ate transformation matrix incorporating the curvature (4).When a vector (section of manipulator’s arm) moves fromits initial position, the effective length of the vector variesdue to the curvature. The end-effector position of the ma-nipulator is determined by multiplying all the transforma-tion matrices (5). The angle θ is limited between −45 and45 degrees for each segment due to mechanical constraints.The error is calculated after each step between current end-effector position and target. The algorithm stops when theerror between the target and the end-effector is within thetermination criteria or when the error value is constant fornumerous iterations (when the target position is outsidethe feasible work space).5. Results and DiscussionTo validate and visualize the kinematic model, a graphi-cal tool capable of performing matrix multiplications withscripting interface is required. UNITY is a content cre-ation application which is used in various fields such asgame development, robotics, architectural visualization,healthcare, film, VR/AR integration and animation. Sincethe software has the capability to incorporate physics sim-ulations and scripts to code the behaviour, UNITY waschosen for prototyping the IK model developed for theSHR manipulator. The algorithm developed in MATLABis converted into scripts and used in UNITY software andactual CAD model is integrated with the algorithm for abetter visualization of the curvature and movement of themanipulator.To substantiate the credibility of the developed algo-rithm, the CCD algorithm is compared with MATLAB’s“fsolve()” function in UNITY platform. The fsolve() func-tion uses inbuilt gradient-based optimization method tofind an optimum solution for a system of nonlinear equa-tions. Table 2 and Fig. 10 show the comparison betweenCCD algorithm and MATLAB’s fsolve() function for thesame initial and target position.Table 2Active Link Positions in MATLAB Function and in CCDDistance between Distance betweenInitial and Final Initial andActive Links (from Initial MATLAB Final Position of CCD Final Final Position ofBottom to Top) Position (X, Y ) Position (X, Y ) Active Links (mm) Position (X, Y ) Active Links (mm)1 (1.82, 103.98) (−48.02, 87.35) 52.5 (−0.44, 103) 2.52 (7.26, 207.83) (−130.95, 149.91) 149.9 (−8.25, 207.63) 15.53 (16.32, 311.43) (−168.37, 243.02) 197.0 (−42.4, 305.16) 59.14 (29, 414.65) (−132.03, 339) 177.9 (−132.42, 339.07) 178.2Sum of distances 577.3 255.3The sum of distances of active links between initial andtarget positions for our CCD algorithm and MATLAB’sfsolve() function show that the former approach can pro-duce better results with less movements of links in theCartesian space, thus making it advantageous in clutteredenvironments. Also, it is possible to sight that the CCDapproach brings in a more natural and innate solution asCCD is a heuristic iterative method.Furthermore, as shown in Table 3, the MATLABfsolve() cannot produce solutions to certain problems dueto singularity/degeneracy. Figure 11 shows the movementof the manipulator from an initial position to a targetposition at various intervals of iteration along with errorvalues.An execution (exe) file is developed for windows plat-form using UNITY as a User Interface (UI) after integrat-ing the CAD model to test the algorithm. The User needsto fill in the Target position (x, y) values in the inputtab and the simulation file will execute the algorithm inbackground and will showcase the shape of the manipula-tor with error value. Figure 12 shows the UI tested for aspecific target point in the workspace.The UI also represents the error (i.e., the distancebetween the target position and the end effector position)as shown in Fig. 12. The total length of the manipulator’sarm is 416 mm, and the input target values are to beFigure 10. Comparison between CCD algorithm and MAT-LAB function in reaching target.6Table 3MATLAB Solution Failing to Converge due to Singularity/DegeneracyInitial Value Target Position CCD Solution MATLAB fsolve() Solution(θ1, θ2, θ3, θ4) (X, Y ) (θ1, θ2, θ3, θ4) (θ1, θ2, θ3, θ4)(−22.5, −22.5, −22.5, −22.5) (−220, 320) (3.57, 24.27, −1.02, −6.17) Does not convergeFigure 11. Motion of the manipulator from initial to targetposition.Figure 12. Configuration of the manipulator for a giveninput target position (250,200).given within the workspace. When the calculated erroris high, it means that the given target position is out ofthe workspace. A small amount of error (in microns) willalways be present due to the mechanical constraints of themanipulator and the mathematical approximations in thedeveloped algorithm.6. ConclusionA novel approach for kinematic modelling of continuummanipulators using CCD has been developed. The modelwas tested for its competency virtually using UNITY soft-ware for two-dimensional cases. The joint constraints ofthe manipulator’s arm were considered while calculatingthe IK solutions. The proposed approach is comparedwith MATLAB’s fsolve() function which uses gradient-based optimization technique to test the competency ofthe established approach. Further with Machine Learningand Artificial Intelligence algorithms, intelligence can beincorporated into the manipulator such that the robot un-derstands its surroundings to locate obstacles and plan itspath.References[1] M.W. Hannan and I.D. Walker, Kinematics and the imple-mentation of an Elephant’s Trunk Manipulator and other con-tinuum style robots, Journal of Robotic Systems, 20(2), 2003,45–63.
  2. [3]–[6] show thatauthors have developed a method using continuous “back-bone curve” to capture macroscopic geometric features ofa continuum manipulator and a general numerical methodfor the hyper-redundant manipulator to solve its inversekinematics (IK) using a modal approach. A numericalmethod to identify IK solution with obstacle avoidancealgorithm for variable geometry truss type robots andphysical implementation of the same was devised. Also,Reference [7] shows that authors fit spatial backbone curvein hyper-redundant robot to obtain IK of the manipulator.References [1], [8] show that researchers have formulateda novel kinematic model using curvature approach forcontinuum style robots. Reference [9] shows a proposedmethod based on nonlinear programming techniques andforward recursion formulae resulting in an iterative numer-ical algorithm, and it was proven to be computationallyeffective in obtaining the IK solutions.These studies present us that attainment of IK solu-tions for redundant articulated structures has always beena difficult and challenging task. Further, the study il-lustrates that the kinematics for hyper-redundant robotscan be addressed in three methodologies. Closed formsolution methodology using analytic expressions, calculus-based numerical solution methodology and optimizationmethodology are the three broadly classified approachesused to solve kinematics of hyper-redundant robots.Closed form solution is a methodology that uses an-alytic expressions to find results. This way of solutionfinding is possible only when the resulting expression is apolynomial of degree 4 or less [10]. Jacobian techniquescan be used for solving manipulators of up to six DOF.The method requires high computational ability. For re-dundant manipulators, the Jacobian technique as it is canno longer be used since the mobility is more than six andtherefore yields in a rectangular matrix which is not in-vertible. Hence, a method called pseudo-Jacobian inversemethod is being widely used [11]. These methods fail toprovide solutions in the case of kinematic singularities andmay become numerically unstable.Calculus-based approaches (one of the numerical so-lution methods) such as the Newton Raphson methodwork on predictor–corrector algorithms. The difficulty incalculus-based approach is that when the Jacobian matrixis singular; it does not find a solution. In addition, if theinitial approximation of the solution vector is sufficientlynot accurate, the solution finding process may becomeunstable. It also suffers a serious issue of being slow toconverge to a solution [11].The optimization method is a fundamentally differentapproach that eliminates the matrix inversion completely.The entire problem of IK is converted into a minimizationproblem, and then standard iterative nonlinear optimiza-tion techniques can be used [10]. The joint constraints areprovided as the conditions for the objective function.The analytic and calculus techniques suffer a commondrawback of demanding huge computation power whenhigher DOFs are used, resulting in higher solving time,and hence affect the response duration of the manipulator.With the developed manipulator possessing a mobility of32, a kinematic approach which could solve IK more easilyand faster is required. Thus, a unique method that com-bines the analytic expressions of curvatures and a heuristicmodel called cyclic coordinate descent (CCD) is chosen.A heuristic method is a very intuitive approach wherethe manipulator learns from its experience. The link makesan adjustment based on error minimization logic and movesiteratively based on the logic. This method is computa-tionally fast and in addition to that if used properly canprovide the best possible solution for a configuration ofthe manipulator [12]. CCD IK method is an iterative nu-merical algorithm that is straightforward and intuitive toimplement while also boasting the added advantage of notrequiring any complex matrix math decomposition [12].Therefore, it was decided to use CCD for IK in this articlewhich will be combined with analytic expressions of curva-tures. Figure 1 shows an outline of different methodologiesthat can be used for spatial hyper redundant (SHR).Figure 1. Outline of different methodologies that can beused for SHRs.2Figure 2. SHR manipulator assembly.Figure 3. Active link geometry.2. Mechanical StructureThe design of the manipulator involves the design of activelinks, supporting links, joints, actuators and transmissionmechanisms for the proper functioning of manipulator arm.Figure 2 shows the assembly of the SHR manipulatorand a number of active links and sections present in themanipulator arm. The robot arm consists of four sectionswith four active links (links that are being controlled bymotor actuation) and twelve supporting links (links merelyused to support active links) with each link facilitating twoDOF as shown in Fig. 2.Each section of the arm has three supporting links, anactive link and is controlled by using four stepper motors.Sixteen actuators (stepper motors) are used to drive themanipulator arm with four motors driving each section.Four stepper motors facilitate a section to move in clock-wise and in counter-clockwise direction about the x-axisand y-axis through four ropes anchored at diametricallyopposite ends (two motors for rotation about x-axis andtwo motors for rotation about y-axis) as shown in Fig. 2.Thus, each active joint provides two rotational DOF aboutthe x-axis and y-axis leading to eight controllable DOFfor the SHR manipulator. A rope drive system is used totransmit the motion between the actuator and the link.Each link is provided with 16 through holes, and it is laidover a pitch circle diameter. Holes serve as a guiding ele-ment for the ropes. The active links (Fig. 3) are providedFigure 4. Supporting link geometry.Figure 5. Maximum bent angle for a section – 90 degrees(22.5 degrees/link).with pockets for anchorage of the ropes. Figures 3 and 4show the geometry of active and supporting links.The total length of the arm is 416 mm and individualsection length is 104 mm. Pulling a rope makes the targetedlink to rest over its preceding link generating a maximumoperating angle of 22.50 in a plane. Figure 5 shows thelinks with threads passing through them and illustratingthe maximum angle of 90 degrees (four links – 22.5 degreeseach) a single section can make.3Figure 6. Backbone curve of the SHR manipulator.3. Kinematic ModellingThere are two approaches for modelling the kinematics ofcontinuum robots. It can be done by using joint anglesand link parameters or by using curvatures to describe themanipulator shape. Unlike conventional manipulators, theuse of joint angles and link lengths does not provide an easyand physical realizable description of the manipulator’sshape due to continuous nature of the design, whereasa kinematic model that uses a curvature to describe theshape of the manipulator will provide more physical andintuitive description of the manipulator [1]. Hence, it wasdecided to proceed with the latter approach. A backbonecurve is a curve that passes through all the links and jointspresent in the manipulator as shown in Fig. 6.To develop a kinematic model, this backbone curvemust be parameterized and fitted to define the nature ofthe manipulator. The parameterization is done throughFrenet–Serret approach by describing the motion of a frameas it changes along the backbone curve. Equations (1)–(3)describe the motion of a curve in space, twisting androtating around in three-dimensional space:dTds= kN (1)dNds= −kT + τB (2)dBds= −τN (3)In these equations, s represents the arc length; cur-vature k and torsion τ are the scalar parameters whichmay be either positive or negative. T, N and B areunit tangent, normal and binormal vectors perpendicularto each other forming an orthonormal basis known as theFrenet frame. Reference [1] shows that Hannan and Walkerhave used the Frenet–Serret curve parameterization to de-scribe the motion of curve in terms of discrete movementsand subsequently parameterized the Denavit–Hartenbergformulation to obtain the transformation matrix for ahyper-redundant manipulator [1]. Equation (4) representsFigure 7. Simple two link chain explaining the working ofCCD.a homogeneous transformation matrix for a single sectionof the manipulator:0A4=⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣cos(∅)cos(kl) − sin(∅) −cos(∅)sin(kl) − 1k cos(∅)+ 1k cos(∅) cos(kl)sin(∅)sin(kl) cos(∅) −sin(∅)sin(kl) − 1k sin(∅)+ 1k sin(∅) cos(kl)sin(kl) 0 cos(kl) 1k sin(kl)0 0 0 1⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦(4)In the previous matrix, l is the total arc length(104 mm), and ∅ describes the curvature in space for asingle section [1]. The forward kinematics for all four sec-tions of the arm (Fig. 2) can be calculated similarly asshown in (5):0A16 = 0A4 · 5A8 · 9A12 · 13A16 (5)4. Inverse KinematicsThe IK is done through optimization technique called CCD.The link makes an adjustment based on error minimizationlogic and moves iteratively based on the logic.The CCD algorithm for a rigid link manipulator goesfrom joint-to-joint and rotates the end-effector as close aspossible to the target. After each iterative update, thealgorithm measures the distance between the end-effectorand the target to decide if it is close enough and shouldexit. Furthermore, to avoid infinite recursive loops due tounreachable and conflicting goals, the algorithm must seta maximum iteration count [12].The angle (θ) (Fig. 7) between the current positionand the target at each iterative update can be found byusing vector multiplication as shown in (6):cos(θ) =Pi − P0||Pi − P0||·Pt − P0||Pt − P0||(6)4Equation (7) is used to find the direction of rotation(r) of the link (clockwise or counter-clockwise), which hasto make to reach the target position:r =Pi − P0||Pi − P0||×Pt − P0||Pt − P0||(7)where Pi, P0 and Pt are the position of end-effector,position of joint considered in the iteration and position oftarget, respectively.This CCD approach is generally used for rigid linkmanipulators. However, for SHR manipulators, the curva-ture of the links needs to be considered. A single sectionof the manipulator is schematically illustrated in Fig. 8.The x(s) denotes the position vector of the active linkfrom the base of the section, θ denotes the angle betweenx(s) and tangent of the curve at x(0). The x(s) can becalculated from (4).Figure 8. The magnitude and angle of a section.Table 1Algorithm Adopted for Solving Kinematics of SHRwhile ((error > termination criteria) or (iter < max_iterations))for(i = 1; i<=4; i++)Calculate(θi);mechanicalConstraint = 45 /Mechanical Limitation of a section/if(θi > mechanicalConstraint)θi = mechanicalConstraintSolve for ki from θiupdateTransformMatrix()updateEndEffectorPosition()end foriter++error = dist(endEffector,targetPos)end whileFigure 9. Flowchart of procedure adopted.On observing and comparing Figs. 7 and 8, thefollowing analogy can be established:1. The joint angle in Fig. 7 is analogous to angle betweenx(s) and tangent of the curve at x(0) in Fig. 8.2. The constant link length in Fig. 7 is analogous to thevariable ||x(s)|| in Fig. 8.These established analogies are considered and used inthe CCD algorithm. The curvature variable k mentionedin (1) can be obtained with the relationship k = 2θ. Thealgorithm adopted for solving kinematics of SHR is shownin Table 1, where θ is the rotation angle, i is the index ofsection, k is the curvature of section.This algorithm is used to define the iterative proceed-ings of the links for the spatial hyper-redundant manipu-lator. The sections of the manipulator were converted intovectors in the 2D space by substituting l (total arc length)as 104 mm, θi as −1 (initial non-zero value) and ∅ as zeroin (4) and (5). A target position (4 × 4 matrix) is providedto the algorithm and it calculates the angle between thetarget and the end-effector [Equations (6) and (7)]. Then,it moves the links towards the target. The Frenet–Serretapproach is added in the CCD algorithm to describe themotion of the links as it changes along the curve. Thiscurvature is incorporated using a mathematical relationobtained from Frenet–Serret approach [Equations (1)–(3)].The flowchart of the procedure adopted is shown in Fig. 9.5The algorithm is developed in MATLAB by imple-menting the CCD approach into the kinematic model ofthe manipulator. Each segment of the manipulator’s armis considered as a vector (effective length between twotarget links) and each vector is defined using its appropri-ate transformation matrix incorporating the curvature (4).When a vector (section of manipulator’s arm) moves fromits initial position, the effective length of the vector variesdue to the curvature. The end-effector position of the ma-nipulator is determined by multiplying all the transforma-tion matrices (5). The angle θ is limited between −45 and45 degrees for each segment due to mechanical constraints.The error is calculated after each step between current end-effector position and target. The algorithm stops when theerror between the target and the end-effector is within thetermination criteria or when the error value is constant fornumerous iterations (when the target position is outsidethe feasible work space).5. Results and DiscussionTo validate and visualize the kinematic model, a graphi-cal tool capable of performing matrix multiplications withscripting interface is required. UNITY is a content cre-ation application which is used in various fields such asgame development, robotics, architectural visualization,healthcare, film, VR/AR integration and animation. Sincethe software has the capability to incorporate physics sim-ulations and scripts to code the behaviour, UNITY waschosen for prototyping the IK model developed for theSHR manipulator. The algorithm developed in MATLABis converted into scripts and used in UNITY software andactual CAD model is integrated with the algorithm for abetter visualization of the curvature and movement of themanipulator.To substantiate the credibility of the developed algo-rithm, the CCD algorithm is compared with MATLAB’s“fsolve()” function in UNITY platform. The fsolve() func-tion uses inbuilt gradient-based optimization method tofind an optimum solution for a system of nonlinear equa-tions. Table 2 and Fig. 10 show the comparison betweenCCD algorithm and MATLAB’s fsolve() function for thesame initial and target position.Table 2Active Link Positions in MATLAB Function and in CCDDistance between Distance betweenInitial and Final Initial andActive Links (from Initial MATLAB Final Position of CCD Final Final Position ofBottom to Top) Position (X, Y ) Position (X, Y ) Active Links (mm) Position (X, Y ) Active Links (mm)1 (1.82, 103.98) (−48.02, 87.35) 52.5 (−0.44, 103) 2.52 (7.26, 207.83) (−130.95, 149.91) 149.9 (−8.25, 207.63) 15.53 (16.32, 311.43) (−168.37, 243.02) 197.0 (−42.4, 305.16) 59.14 (29, 414.65) (−132.03, 339) 177.9 (−132.42, 339.07) 178.2Sum of distances 577.3 255.3The sum of distances of active links between initial andtarget positions for our CCD algorithm and MATLAB’sfsolve() function show that the former approach can pro-duce better results with less movements of links in theCartesian space, thus making it advantageous in clutteredenvironments. Also, it is possible to sight that the CCDapproach brings in a more natural and innate solution asCCD is a heuristic iterative method.Furthermore, as shown in Table 3, the MATLABfsolve() cannot produce solutions to certain problems dueto singularity/degeneracy. Figure 11 shows the movementof the manipulator from an initial position to a targetposition at various intervals of iteration along with errorvalues.An execution (exe) file is developed for windows plat-form using UNITY as a User Interface (UI) after integrat-ing the CAD model to test the algorithm. The User needsto fill in the Target position (x, y) values in the inputtab and the simulation file will execute the algorithm inbackground and will showcase the shape of the manipula-tor with error value. Figure 12 shows the UI tested for aspecific target point in the workspace.The UI also represents the error (i.e., the distancebetween the target position and the end effector position)as shown in Fig. 12. The total length of the manipulator’sarm is 416 mm, and the input target values are to beFigure 10. Comparison between CCD algorithm and MAT-LAB function in reaching target.6Table 3MATLAB Solution Failing to Converge due to Singularity/DegeneracyInitial Value Target Position CCD Solution MATLAB fsolve() Solution(θ1, θ2, θ3, θ4) (X, Y ) (θ1, θ2, θ3, θ4) (θ1, θ2, θ3, θ4)(−22.5, −22.5, −22.5, −22.5) (−220, 320) (3.57, 24.27, −1.02, −6.17) Does not convergeFigure 11. Motion of the manipulator from initial to targetposition.Figure 12. Configuration of the manipulator for a giveninput target position (250,200).given within the workspace. When the calculated erroris high, it means that the given target position is out ofthe workspace. A small amount of error (in microns) willalways be present due to the mechanical constraints of themanipulator and the mathematical approximations in thedeveloped algorithm.6. ConclusionA novel approach for kinematic modelling of continuummanipulators using CCD has been developed. The modelwas tested for its competency virtually using UNITY soft-ware for two-dimensional cases. The joint constraints ofthe manipulator’s arm were considered while calculatingthe IK solutions. The proposed approach is comparedwith MATLAB’s fsolve() function which uses gradient-based optimization technique to test the competency ofthe established approach. Further with Machine Learningand Artificial Intelligence algorithms, intelligence can beincorporated into the manipulator such that the robot un-derstands its surroundings to locate obstacles and plan itspath.References[1] M.W. Hannan and I.D. Walker, Kinematics and the imple-mentation of an Elephant’s Trunk Manipulator and other con-tinuum style robots, Journal of Robotic Systems, 20(2), 2003,45–63.[2] P. Jagadeesan, S. Sivaprakasham, D. Kumar and M. Madhu, A‘Multilink Spatial Hyper-Redundant’ manipulator, in J. Dai,M. Zoppi, and X. Kong (eds.), Advances in reconfigurablemechanisms and robots I, (London: Springer, 2012), 869–875.[3] G.S. Chirikjian, A general numerical method for hyper-redundant manipulator inverse kinematics, IEEE InternationalConf. on Robotics and Automation, Atlanta, GA, 1993.
  3. [4] G.S. Chirikjian and J.W. Burdick, The kinematics of hyper-redundant robot locomotion, IEEE transactions on Roboticsand Automation, 11(6), 1995, 781–793.
  4. [6] show thatauthors have developed a method using continuous “back-bone curve” to capture macroscopic geometric features ofa continuum manipulator and a general numerical methodfor the hyper-redundant manipulator to solve its inversekinematics (IK) using a modal approach. A numericalmethod to identify IK solution with obstacle avoidancealgorithm for variable geometry truss type robots andphysical implementation of the same was devised. Also,Reference
  5. [7] shows that authors fit spatial backbone curvein hyper-redundant robot to obtain IK of the manipulator.References [1],
  6. [8] show that researchers have formulateda novel kinematic model using curvature approach forcontinuum style robots. Reference
  7. [9] shows a proposedmethod based on nonlinear programming techniques andforward recursion formulae resulting in an iterative numer-ical algorithm, and it was proven to be computationallyeffective in obtaining the IK solutions.These studies present us that attainment of IK solu-tions for redundant articulated structures has always beena difficult and challenging task. Further, the study il-lustrates that the kinematics for hyper-redundant robotscan be addressed in three methodologies. Closed formsolution methodology using analytic expressions, calculus-based numerical solution methodology and optimizationmethodology are the three broadly classified approachesused to solve kinematics of hyper-redundant robots.Closed form solution is a methodology that uses an-alytic expressions to find results. This way of solutionfinding is possible only when the resulting expression is apolynomial of degree 4 or less
  8. [10]. Jacobian techniquescan be used for solving manipulators of up to six DOF.The method requires high computational ability. For re-dundant manipulators, the Jacobian technique as it is canno longer be used since the mobility is more than six andtherefore yields in a rectangular matrix which is not in-vertible. Hence, a method called pseudo-Jacobian inversemethod is being widely used
  9. [11]. These methods fail toprovide solutions in the case of kinematic singularities andmay become numerically unstable.Calculus-based approaches (one of the numerical so-lution methods) such as the Newton Raphson methodwork on predictor–corrector algorithms. The difficulty incalculus-based approach is that when the Jacobian matrixis singular; it does not find a solution. In addition, if theinitial approximation of the solution vector is sufficientlynot accurate, the solution finding process may becomeunstable. It also suffers a serious issue of being slow toconverge to a solution [11].The optimization method is a fundamentally differentapproach that eliminates the matrix inversion completely.The entire problem of IK is converted into a minimizationproblem, and then standard iterative nonlinear optimiza-tion techniques can be used [10]. The joint constraints areprovided as the conditions for the objective function.The analytic and calculus techniques suffer a commondrawback of demanding huge computation power whenhigher DOFs are used, resulting in higher solving time,and hence affect the response duration of the manipulator.With the developed manipulator possessing a mobility of32, a kinematic approach which could solve IK more easilyand faster is required. Thus, a unique method that com-bines the analytic expressions of curvatures and a heuristicmodel called cyclic coordinate descent (CCD) is chosen.A heuristic method is a very intuitive approach wherethe manipulator learns from its experience. The link makesan adjustment based on error minimization logic and movesiteratively based on the logic. This method is computa-tionally fast and in addition to that if used properly canprovide the best possible solution for a configuration ofthe manipulator
  10. [12]. CCD IK method is an iterative nu-merical algorithm that is straightforward and intuitive toimplement while also boasting the added advantage of notrequiring any complex matrix math decomposition [12].Therefore, it was decided to use CCD for IK in this articlewhich will be combined with analytic expressions of curva-tures. Figure 1 shows an outline of different methodologiesthat can be used for spatial hyper redundant (SHR).Figure 1. Outline of different methodologies that can beused for SHRs.2Figure 2. SHR manipulator assembly.Figure 3. Active link geometry.2. Mechanical StructureThe design of the manipulator involves the design of activelinks, supporting links, joints, actuators and transmissionmechanisms for the proper functioning of manipulator arm.Figure 2 shows the assembly of the SHR manipulatorand a number of active links and sections present in themanipulator arm. The robot arm consists of four sectionswith four active links (links that are being controlled bymotor actuation) and twelve supporting links (links merelyused to support active links) with each link facilitating twoDOF as shown in Fig. 2.Each section of the arm has three supporting links, anactive link and is controlled by using four stepper motors.Sixteen actuators (stepper motors) are used to drive themanipulator arm with four motors driving each section.Four stepper motors facilitate a section to move in clock-wise and in counter-clockwise direction about the x-axisand y-axis through four ropes anchored at diametricallyopposite ends (two motors for rotation about x-axis andtwo motors for rotation about y-axis) as shown in Fig. 2.Thus, each active joint provides two rotational DOF aboutthe x-axis and y-axis leading to eight controllable DOFfor the SHR manipulator. A rope drive system is used totransmit the motion between the actuator and the link.Each link is provided with 16 through holes, and it is laidover a pitch circle diameter. Holes serve as a guiding ele-ment for the ropes. The active links (Fig. 3) are providedFigure 4. Supporting link geometry.Figure 5. Maximum bent angle for a section – 90 degrees(22.5 degrees/link).with pockets for anchorage of the ropes. Figures 3 and 4show the geometry of active and supporting links.The total length of the arm is 416 mm and individualsection length is 104 mm. Pulling a rope makes the targetedlink to rest over its preceding link generating a maximumoperating angle of 22.50 in a plane. Figure 5 shows thelinks with threads passing through them and illustratingthe maximum angle of 90 degrees (four links – 22.5 degreeseach) a single section can make.3Figure 6. Backbone curve of the SHR manipulator.3. Kinematic ModellingThere are two approaches for modelling the kinematics ofcontinuum robots. It can be done by using joint anglesand link parameters or by using curvatures to describe themanipulator shape. Unlike conventional manipulators, theuse of joint angles and link lengths does not provide an easyand physical realizable description of the manipulator’sshape due to continuous nature of the design, whereasa kinematic model that uses a curvature to describe theshape of the manipulator will provide more physical andintuitive description of the manipulator [1]. Hence, it wasdecided to proceed with the latter approach. A backbonecurve is a curve that passes through all the links and jointspresent in the manipulator as shown in Fig. 6.To develop a kinematic model, this backbone curvemust be parameterized and fitted to define the nature ofthe manipulator. The parameterization is done throughFrenet–Serret approach by describing the motion of a frameas it changes along the backbone curve. Equations (1)–(3)describe the motion of a curve in space, twisting androtating around in three-dimensional space:dTds= kN (1)dNds= −kT + τB (2)dBds= −τN (3)In these equations, s represents the arc length; cur-vature k and torsion τ are the scalar parameters whichmay be either positive or negative. T, N and B areunit tangent, normal and binormal vectors perpendicularto each other forming an orthonormal basis known as theFrenet frame. Reference [1] shows that Hannan and Walkerhave used the Frenet–Serret curve parameterization to de-scribe the motion of curve in terms of discrete movementsand subsequently parameterized the Denavit–Hartenbergformulation to obtain the transformation matrix for ahyper-redundant manipulator [1]. Equation (4) representsFigure 7. Simple two link chain explaining the working ofCCD.a homogeneous transformation matrix for a single sectionof the manipulator:0A4=⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣cos(∅)cos(kl) − sin(∅) −cos(∅)sin(kl) − 1k cos(∅)+ 1k cos(∅) cos(kl)sin(∅)sin(kl) cos(∅) −sin(∅)sin(kl) − 1k sin(∅)+ 1k sin(∅) cos(kl)sin(kl) 0 cos(kl) 1k sin(kl)0 0 0 1⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦(4)In the previous matrix, l is the total arc length(104 mm), and ∅ describes the curvature in space for asingle section [1]. The forward kinematics for all four sec-tions of the arm (Fig. 2) can be calculated similarly asshown in (5):0A16 = 0A4 · 5A8 · 9A12 · 13A16 (5)4. Inverse KinematicsThe IK is done through optimization technique called CCD.The link makes an adjustment based on error minimizationlogic and moves iteratively based on the logic.The CCD algorithm for a rigid link manipulator goesfrom joint-to-joint and rotates the end-effector as close aspossible to the target. After each iterative update, thealgorithm measures the distance between the end-effectorand the target to decide if it is close enough and shouldexit. Furthermore, to avoid infinite recursive loops due tounreachable and conflicting goals, the algorithm must seta maximum iteration count [12].The angle (θ) (Fig. 7) between the current positionand the target at each iterative update can be found byusing vector multiplication as shown in (6):cos(θ) =Pi − P0||Pi − P0||·Pt − P0||Pt − P0||(6)4Equation (7) is used to find the direction of rotation(r) of the link (clockwise or counter-clockwise), which hasto make to reach the target position:r =Pi − P0||Pi − P0||×Pt − P0||Pt − P0||(7)where Pi, P0 and Pt are the position of end-effector,position of joint considered in the iteration and position oftarget, respectively.This CCD approach is generally used for rigid linkmanipulators. However, for SHR manipulators, the curva-ture of the links needs to be considered. A single sectionof the manipulator is schematically illustrated in Fig. 8.The x(s) denotes the position vector of the active linkfrom the base of the section, θ denotes the angle betweenx(s) and tangent of the curve at x(0). The x(s) can becalculated from (4).Figure 8. The magnitude and angle of a section.Table 1Algorithm Adopted for Solving Kinematics of SHRwhile ((error > termination criteria) or (iter < max_iterations))for(i = 1; i<=4; i++)Calculate(θi);mechanicalConstraint = 45 /Mechanical Limitation of a section/if(θi > mechanicalConstraint)θi = mechanicalConstraintSolve for ki from θiupdateTransformMatrix()updateEndEffectorPosition()end foriter++error = dist(endEffector,targetPos)end whileFigure 9. Flowchart of procedure adopted.On observing and comparing Figs. 7 and 8, thefollowing analogy can be established:1. The joint angle in Fig. 7 is analogous to angle betweenx(s) and tangent of the curve at x(0) in Fig. 8.2. The constant link length in Fig. 7 is analogous to thevariable ||x(s)|| in Fig. 8.These established analogies are considered and used inthe CCD algorithm. The curvature variable k mentionedin (1) can be obtained with the relationship k = 2θ. Thealgorithm adopted for solving kinematics of SHR is shownin Table 1, where θ is the rotation angle, i is the index ofsection, k is the curvature of section.This algorithm is used to define the iterative proceed-ings of the links for the spatial hyper-redundant manipu-lator. The sections of the manipulator were converted intovectors in the 2D space by substituting l (total arc length)as 104 mm, θi as −1 (initial non-zero value) and ∅ as zeroin (4) and (5). A target position (4 × 4 matrix) is providedto the algorithm and it calculates the angle between thetarget and the end-effector [Equations (6) and (7)]. Then,it moves the links towards the target. The Frenet–Serretapproach is added in the CCD algorithm to describe themotion of the links as it changes along the curve. Thiscurvature is incorporated using a mathematical relationobtained from Frenet–Serret approach [Equations (1)–(3)].The flowchart of the procedure adopted is shown in Fig. 9.5The algorithm is developed in MATLAB by imple-menting the CCD approach into the kinematic model ofthe manipulator. Each segment of the manipulator’s armis considered as a vector (effective length between twotarget links) and each vector is defined using its appropri-ate transformation matrix incorporating the curvature (4).When a vector (section of manipulator’s arm) moves fromits initial position, the effective length of the vector variesdue to the curvature. The end-effector position of the ma-nipulator is determined by multiplying all the transforma-tion matrices (5). The angle θ is limited between −45 and45 degrees for each segment due to mechanical constraints.The error is calculated after each step between current end-effector position and target. The algorithm stops when theerror between the target and the end-effector is within thetermination criteria or when the error value is constant fornumerous iterations (when the target position is outsidethe feasible work space).5. Results and DiscussionTo validate and visualize the kinematic model, a graphi-cal tool capable of performing matrix multiplications withscripting interface is required. UNITY is a content cre-ation application which is used in various fields such asgame development, robotics, architectural visualization,healthcare, film, VR/AR integration and animation. Sincethe software has the capability to incorporate physics sim-ulations and scripts to code the behaviour, UNITY waschosen for prototyping the IK model developed for theSHR manipulator. The algorithm developed in MATLABis converted into scripts and used in UNITY software andactual CAD model is integrated with the algorithm for abetter visualization of the curvature and movement of themanipulator.To substantiate the credibility of the developed algo-rithm, the CCD algorithm is compared with MATLAB’s“fsolve()” function in UNITY platform. The fsolve() func-tion uses inbuilt gradient-based optimization method tofind an optimum solution for a system of nonlinear equa-tions. Table 2 and Fig. 10 show the comparison betweenCCD algorithm and MATLAB’s fsolve() function for thesame initial and target position.Table 2Active Link Positions in MATLAB Function and in CCDDistance between Distance betweenInitial and Final Initial andActive Links (from Initial MATLAB Final Position of CCD Final Final Position ofBottom to Top) Position (X, Y ) Position (X, Y ) Active Links (mm) Position (X, Y ) Active Links (mm)1 (1.82, 103.98) (−48.02, 87.35) 52.5 (−0.44, 103) 2.52 (7.26, 207.83) (−130.95, 149.91) 149.9 (−8.25, 207.63) 15.53 (16.32, 311.43) (−168.37, 243.02) 197.0 (−42.4, 305.16) 59.14 (29, 414.65) (−132.03, 339) 177.9 (−132.42, 339.07) 178.2Sum of distances 577.3 255.3The sum of distances of active links between initial andtarget positions for our CCD algorithm and MATLAB’sfsolve() function show that the former approach can pro-duce better results with less movements of links in theCartesian space, thus making it advantageous in clutteredenvironments. Also, it is possible to sight that the CCDapproach brings in a more natural and innate solution asCCD is a heuristic iterative method.Furthermore, as shown in Table 3, the MATLABfsolve() cannot produce solutions to certain problems dueto singularity/degeneracy. Figure 11 shows the movementof the manipulator from an initial position to a targetposition at various intervals of iteration along with errorvalues.An execution (exe) file is developed for windows plat-form using UNITY as a User Interface (UI) after integrat-ing the CAD model to test the algorithm. The User needsto fill in the Target position (x, y) values in the inputtab and the simulation file will execute the algorithm inbackground and will showcase the shape of the manipula-tor with error value. Figure 12 shows the UI tested for aspecific target point in the workspace.The UI also represents the error (i.e., the distancebetween the target position and the end effector position)as shown in Fig. 12. The total length of the manipulator’sarm is 416 mm, and the input target values are to beFigure 10. Comparison between CCD algorithm and MAT-LAB function in reaching target.6Table 3MATLAB Solution Failing to Converge due to Singularity/DegeneracyInitial Value Target Position CCD Solution MATLAB fsolve() Solution(θ1, θ2, θ3, θ4) (X, Y ) (θ1, θ2, θ3, θ4) (θ1, θ2, θ3, θ4)(−22.5, −22.5, −22.5, −22.5) (−220, 320) (3.57, 24.27, −1.02, −6.17) Does not convergeFigure 11. Motion of the manipulator from initial to targetposition.Figure 12. Configuration of the manipulator for a giveninput target position (250,200).given within the workspace. When the calculated erroris high, it means that the given target position is out ofthe workspace. A small amount of error (in microns) willalways be present due to the mechanical constraints of themanipulator and the mathematical approximations in thedeveloped algorithm.6. ConclusionA novel approach for kinematic modelling of continuummanipulators using CCD has been developed. The modelwas tested for its competency virtually using UNITY soft-ware for two-dimensional cases. The joint constraints ofthe manipulator’s arm were considered while calculatingthe IK solutions. The proposed approach is comparedwith MATLAB’s fsolve() function which uses gradient-based optimization technique to test the competency ofthe established approach. Further with Machine Learningand Artificial Intelligence algorithms, intelligence can beincorporated into the manipulator such that the robot un-derstands its surroundings to locate obstacles and plan itspath.References[1] M.W. Hannan and I.D. Walker, Kinematics and the imple-mentation of an Elephant’s Trunk Manipulator and other con-tinuum style robots, Journal of Robotic Systems, 20(2), 2003,45–63.[2] P. Jagadeesan, S. Sivaprakasham, D. Kumar and M. Madhu, A‘Multilink Spatial Hyper-Redundant’ manipulator, in J. Dai,M. Zoppi, and X. Kong (eds.), Advances in reconfigurablemechanisms and robots I, (London: Springer, 2012), 869–875.[3] G.S. Chirikjian, A general numerical method for hyper-redundant manipulator inverse kinematics, IEEE InternationalConf. on Robotics and Automation, Atlanta, GA, 1993.[4] G.S. Chirikjian and J.W. Burdick, The kinematics of hyper-redundant robot locomotion, IEEE transactions on Roboticsand Automation, 11(6), 1995, 781–793.[5] G.S. Chirikjian and J.W Burdick, Parallel formulation ofthe inverse kinematics of modular hyper-redundant manipula-tors, IEEE international Con. on Robotics and Automation,Sacramento, CA, 1991.[6] G.S. Chirikjian and J.W. Burdick, A hyper-redundant manip-ulator, IEEE Robotics and Automation Magazine, 1(4), 1994,22–29.[7] Y. Zhao, F. Yuan, C. Chen, et al., Inverse kinematics andtrajectory planning for a hyper-redundant bionic trunk-likerobot, International Journal of Robotics and Automation,35(3), 2020. DOI: 10.2316/J.2020.206-0347.[8] M.W. Hannan and I.D. Walker, A novel ‘Elephant’s Trunk’robot, International Conf. on Advanced Intelligent Mechatron-ics, Atlanta, GA, 1999.[9] B. Kenwright, Inverse kinematics – Cyclic coordinate descent(CCD), The Journal of Graphics Tool, 16(4), 2013, 177–217.[10] J.J. Craig, Introduction to robotics mechanics and control, 3rded. (Pearson Education India, 2009).[11] C. Welman, Inverse kinematics and geometric constraints forarticulated figures manipulation, MSc Thesis, Simon FraserUniversity, Canada, 1993.[12] L.-C. T. Wang and C.C. Chen, A combined optimizationmethod for solving the inverse kinematics problem of me-chanical manipulators, IEEE Transactions on Robotics andAutomation, 7(4), 1991, 489–499.

Important Links:

Go Back