Points-Based Safe Path Planning of Continuum Robots

Continuum robots exhibit great potential in a number of challenging applications where traditional rigid link robots pose certain limitations, e.g., working in unstructured environments. In order to enable the usage of continuum robots in safety-critical applications, such as surgery and nuclear decontamination, it is extremely important to ensure a safe path for the robot's movement. Existing algorithms for continuum robot path planning have certain limitations that need to be addressed. These include the fact that none of the algorithms provide safety assurance parameters and control for path planning. They are computationally expensive, applicable to a specific type of continuum robots, and mostly they do not incorporate design and kinematics constraints. In this paper, we propose a points-based path planning (PoPP) algorithm for continuum robots that computes the path by imposing safety constraints and improves upon the limitations of existing approaches. In the algorithm, we exploit the constant curvature-bending property of continuum robots in their path planning process. The algorithm is computationally efficient and provides a good tradeoff between accuracy and efficiency that can be implemented to enable the safety-critical application of continuum robots. This algorithm also provides information regarding path volume and flexibility in movement. Simulation results confirm that the algorithm possesses promising potential for all types of continuum robots (following the constant curvature-bending property). We believe that this effectively balances the desired safety and efficiency requirements.


Abstract
Continuum robots exhibit great potential in a number of challenging applications where traditional rigid link robots pose certain limitations, e.g.,working in unstructured environments. In order to enable the usage of continuum robots in safety-critical applications, such as surgery and nuclear decontamination, it is extremely important to ensure a safe path for the robot's movement. Existing algorithms for continuum robot path planning have certain limitations that need to be addressed. These include the fact that none of the algorithms provide safety assurance parameters and control for path planning. They are computationally expensive, applicable to a specific type of continuum robots, and mostly they do not incorporate design and kinematics constraints. In this paper, we propose a points-based path planning (PoPP) algorithm for continuum robots that computes the path by imposing safety constraints and improves upon the limitations of existing approaches. In the algorithm, we exploit the constant curvature-bending property of continuum robots in their path planning process. The algorithm is computationally efficient and provides a good tradeoff between accuracy and efficiency that can be implemented to enable the safety-critical application of continuum robots. This algorithm also provides information regarding path volume and flexibility in movement. Simulation results confirm that the algorithm possesses promising potential for all types of continuum robots (following the constant curvature-bending property). We believe that this effectively balances the desired safety and efficiency requirements.

Introduction
Robot designers have numerous design options when designing their machines. With time, the number of such design options continues to increase and/or be refined based upon technological advancements, inspiration from nature, and the designer's own imagination [1]. A number of different types of traditional rigid link robots have been proposed in the past. The design of these traditional robots is based upon a human arm-inspired mechanism, which consists of serially arranged rigid links or a joints-based architecture. Such traditional rigid link robots work fine in applications in which the environment is predefined and well-structured, but they have limitations in unstructured and congested workspaces [2]. To overcome the limitations of traditional rigid link robots, a large amount of research in continuum robotics has been published recently [2]. Continuum robots do not have rigid links/joints but present continuous flexibility in their structure. Because of their continuously bending architecture, continuum robots can manoeuvre through an unstructured congested workspace and can overcome the limitations posed by traditional robots [2,3,4].
In the literature, different types of continuum robot designs have been proposed that can be categorized as tendonbased, continuously bending actuator-based, concentric tubes-based, steerable needle-based or variable stiffnessbased continuum robots [1,4,5]. Irrespective of their underlying physical architecture, the common property of the approximately constant curvature-bending of the backbone is exhibited by all types of continuum robots [4,5]. This property has been exploited by different researchers to propose different designs and kinematics models of continuum robots [4,5]. They exhibit significant potential in many challenging applications where traditional rigid links/joints-based robots have certain limitations. Examples of such applications involve working in obstacle-filled environments and minimally invasive surgery. For a robot to move from a given start location to a goal, the robot has to follow a path. There are certain constraints that the robot needs to follow during path planning. These constraints are: goal seeking, obstacle avoidance, non-penetration, spot the shortest path and energy minimization of the robot. For traditional rigid link robots, many path planning algorithms exist which solve a certain range of problems [6,7]. For continuum robots, because of their continuously bending architecture and kinematics constraints, path planning brings many challenges that need to be addressed. Safety assurance is extremely important for the approval and usage of continuum robots in safety-critical applications, such as surgery. ISO 9000 standard norms have been updated to comply with the constraints of medical systems in the European Community. These standards allow the placement of such devices (e.g., continuum robots) in the market and their use for surgical applications.
Various research groups have proposed different methodologies for the path planning of continuum robots. However, there are certain limitations with existing approaches that need to be addressed. M. Moll and L.E. Kavraki proposed minimal energy curves-based path planning algorithms for deformable objects [8,9,10]. They introduced a new adaptive parametrization method for the representation of curves or configurations. Based on parametrization, they proposed methods for computing minimal energy curves, i.e., Lagrangian dynamics, null space sampling and constrained optimization techniques. They also proposed an algorithm for finding the sequence of minimal energy configurations between the start and goal configurations. The proposed methodology does not incorporate the obstacle avoidance and kinematics constraints that continuum robots have. This methodology is computationally expensive and is based on continuous deformation for specific shape-based path planning. R. Gayle et al. proposed a medical image processing-based path planning algorithm for continuum robots [11]. During path planning, the algorithm checks for possible collisions between the robot and obstacles at each step. A special overlap test (2.5D) is used for finding the splitting surface between the robot and obstacles. The proposed algorithm does not incorporate the kinematics and design constraints of continuum robots. The algorithm is computationally expensive and uses a GPU-based collision detection algorithm. This may result in limited accuracy due to a lack of image-space resolution. In addition, the algorithm does not provide safety measures and control for safety-critical applications. E. S. Conkur and R. Gurbuz proposed a path planning algorithm for snake-like robots [12]. The algorithm consists of two steps, firstly it computes the smoothly curved path consisting of points from a given start to a goal point, and secondly the robot performs a serpentine motion on the previously computed path consisting of a number of points. The path trace from a given start point to a goal point is computed using the numerical potential field method (PFM). However, the proposed algorithm provides a discrete serial links-based path, and does not incorporate safety parameters. L. Lyons et al. proposed a motion planning algorithm for active cannulae-type continuum robots [13]. In the proposed algorithm, given the start and goal coordinates with obstacle information, the motion planning problem is formulated as a nonlinear constrained optimization problem. The PFM has been used for obstacle avoidance and for finding the optimal configuration of an active cannula. The limitation of the proposed methodology is that it is intended for use in image-guided procedures where the target and obstacles can be segmented from preoperative images. The methodology is robot-specific (limited to active cannulae), computationally expensive, and does not provide accommodation for safety parameters and control.
I. Godage et al. proposed a path planning algorithm for multi-section continuum arms [14]. The algorithm was originally presented by Maciejewski et al. in [15] for the path planning of rigid link robots. This original algorithm was modified for continuum robots by incorporating a finite number of proximity sensors mounted along the length of the continuum robot to provide distal information. This information is used to find the repelling velocities of different sections of continuum robots, which are then used for goal seeking and obstacle avoidance. The proposed algorithm takes inputs from multiple sensors placed along the sections of the continuum robot, which might not be desirable for certain applications [1,16]. The algorithm also requires a points-based path trace as input. It is robotspecific, computationally expensive and does not provide safety parameters and control for safety-critical applications. C. Bergeles and P. Dupont proposed an algorithm for planning stable paths for concentric tube robots [17]. The rapidly-exploring random tree (RRT*) algorithm, present-ed by S. Karaman et al. in [18], is used for the path planning of the robot. For goal seeking, their algorithm navigates the robot through a sequence of locally stable configurations. Their work makes a good contribution to finding locally stable configurations for the path planning of active cannulae. However, the algorithm is robot-specific (limited to active cannulae), based on a variable curvature, computationally expensive, and does not incorporate safety parameters and control [17].
The main contribution of this paper is the proposed PoPP algorithm for continuum robots, which computes the locally optimal path by imposing safety constraints and improves upon the limitations that have been identified in existing approaches. The PoPP algorithm comprises two steps. Firstly, it computes the points-based path trace. Secondly, it finds the constant curvature (circular) curvesbased continuous path using the points-based path trace as input. Both of these algorithms are internally used by the PoPP algorithm to generate a constant curvature curvesbased continuous path for the continuum robot.
Organization: The rest of the paper is organized as follows: In Section 2, we present our PoPP methodology. Different approaches for computing the points-based trace of the path are presented in Section 2.1. The constant curvature curve-based continuous path planning algorithm is presented in Section 2.2. Section 3 discusses the proposed methodology, with its advantages and disadvantages, and makes a comparison with existing algorithms. The conclusion and possible future directions appear in Section 4.

The Points-based Path Planning Algorithm
Continuum robots can interact and perform certain tasks in a workspace by using their tip/head as an end-effector. Hence, the tip/head is considered as a point of interest of continuum robots. Continuum robots emulate snake-like motion. The path planning of continuum robots in static environments is fairly simple because the rest of the body of the robot will most probably follow the track made by the head of the robot. By finding the track of the head of the continuum robot, we can find the path of the whole robot by traversing the head trace. Based on this idea, we propose algorithms to find the points-based path trace. The problem statement for the points-based path trace algorithm is: given start and goal points, find all the intermediate points that connect the start point and the goal point such that no intermediate point collides with any obstacle and the resulting path trace satisfies the imposed safety constraints.
The PoPP algorithm is divided into two steps: points-based path trace computation and constant curvature continuous path computation. For computing a points-based path trace, we propose two algorithms in Section 2.1 -one uses a sine method (SM) and the other uses the PFM. Both these approaches differ based upon their obstacle avoidance strategy. The SM exploits the information from the shortest distance vector to the obstacle, and then the vector to the goal point, while the PFM exploits the traditional PFM. Both approaches return a path trace connecting the start point and the goal point satisfying the constraints of obstacle avoidance as well as the safety parameters. For a continuum robot to follow a certain path, it needs to be continuous and the motion produced should be based on a constant curvature [4,5]. This is so that the path satisfies the design and kinematics constraints of continuum robots. The points-based path trace returned by both approaches is discrete and does not satisfy the design and kinematics constraints for continuum robots. Hence, for this purpose, in Section 2.2, we propose a constant curvature curvesbased continuous path planning algorithm. This algorithm takes the points-based trace of the path (resulting from the algorithms proposed in Section 2.1) as input and provides us with a continuous constant curvature curves-based path that satisfies the design and kinematics constraints of a continuum robot. The notation and symbols used in this paper are mostly defined locally in the algorithms; however, some of the globally-used nomenclature is defined in Table 1.

The Points-based Path Trace
We propose two algorithms for computing a points-based path trace. Both algorithms take the start point, the goal point, the step size and the minimum marginal distance required from obstacles as input, and return the sequence of points connecting the start point and the goal point, such that none of the intermediate points collide with any obstacle and that it satisfies the safety parameters. Let us present each approach, one after another. The basic idea of the sine method (SM) is explained in Algorithm 1. The algorithm first initializes the path with the start point p s and places the head pointer over start point p s . Next, we keep on iterating until the distance between the head and goal point p g is greater than or equal to the step. With each iteration, the head pointer is updated

The Sine Method Algorithm
The basic idea of the sine method (SM) is explained in Algorithm 1. The algorithm first initializes the path with the start point p s and places the head pointer over start point p s . Next, we keep on iterating until the distance between the head and goal point p g is greater than or equal to the step. With each iteration, the head pointer is updated with the intermediate point. In the body of the iteration loop, we find the intermediate point p i at a distance step away from the head in the direction of p g . The intermediate point p i will be a shorter distance from the goal point than the head point, with a difference of step, and will be moving linearly towards the goal point p g . We then run the handleObstacle() function (Algorithm 2) over the newly computed intermediate pointp i . The handleObstacle() function returns the obstacle-free intermediate point p i * if p i was colliding with any obstacle. If p i was not colliding or else influenced by any obstacle, then it returns the same point p i at the output as p i * . Afterwards, we check whether there is influence by an obstacle on the intermediate point and whether, instead of getting closer to the goal state, we are moving away from the goal state; then, we return ∅ to show that the connection attempt has failed, i.e., that the path cannot be found. If this is not the case, then we accept In the Algorithm 1, the handleObstacle() function takes the head point, the intermediate point, the goal point and the minimum distance required from the obstacles as input, and returns the obstacle-free safe intermediate point as its output. The basic idea is explained in Algorithm 2. The algorithm first checks whether the intermediate point p i is not colliding with any obstacle and is away than min_marg_dist from the obstacle, i.e., the intermediate point is a safe point. If so, then return the same point p i as the output point. If it is colliding with or being influenced by the obstacle, then find the current angle (θ) of the intermediatep i , such that p i−1 is the centre of the circle and p i is a point on the circle. To avoid the obstacle, we either move clockwise or counter-clockwise. Hence, to find the direction to avoid the obstacle (local optimal), we compute the vector vec pg → (the vector from p i−1 to p g ) and the vector vec sp → (the vector from p i−1 to the shortest distance point on the obstacle). We then compute the cross-product vec pg  Without loss of generality, assume that we have a continuum robot with a section(s) with a diameter of 2mm and that we want to plan a path through a mathematically defined environment of 180mm × 180mm such that robot maintains a marginal distance of 3mm from the obstacles boundary. For the purpose of simulations, the obstacles' coordinates are known to the program; however, the algorithm takes the obstacles as unknown and finds the points-based path trace from the start to the goal points such that the path satisfies the imposed safety constraints. The algorithm has two safety parameters, i.e., the step size and the minimum marginal distance from the obstacles. The minimum marginal distance will be the sum of the radius of the continuum robot and the minimum distance to be maintained from the obstacles. For the above problem, the minimum marginal distance (min_marg_dist) will be passed as 1mm + 3mm = 4mm. This is the minimum min_marg_dist value to be passed to the algorithm and the step size should be less than this value or else the robot may violate the safety constraints. For the above problem, if we pass the step size as 3.5mm and run the SM algorithm, then Figure 1 illustrates the resulting points-based path trace. If we decrease the step size value, then the resulting path becomes closer to the absolute path and reduces the path error. If we increase the step size value, then the resulting path behaves the other way around, i.e., it increase the path error. The other safety parameter, i.e., min_marg_dist, maintains the provided safety distance from the obstacle for the resulting points-based path trace.
It is to be noted that there exist some apparent similarities between the SM algorithm and the tangent bug algorithm [21], e.g., the motion towards the goal and the boundary following behaviour. However, both are theoretically different from each other, as illustrated in Table 2. The SM algorithm works more efficiently in avoiding convex obstacles, does not require the computation of tangent points, and leaves the obstacle more efficiently, resulting in a shorter distance compared to the tangent bug algorithm.   other way around, i.e., it increase the path error. The other safety parameter, i.e., min_marg_dist, maintains the provided safety distance from the obstacle for the resulting points-based path trace.
It is to be noted that there exist some apparent similarities between the SM algorithm and the tangent bug algorithm [21], e.g., the motion towards the goal and the boundary following behaviour. However, both are theoretically different from each other, as illustrated in Table 2. The SM algorithm works more efficiently in avoiding convex obstacles, does not require the computation of tangent points, and leaves the obstacle more efficiently, resulting in a shorter distance compared to the tangent bug algorithm.

The Potential Field Method Algorithm
The SM algorithm results in a path trace with fewer oscillations; however, it has certain limitations, e.g., it provides a local optimal path, poses limitations in environments with special convex obstacles, and is somewhat time-expensive around the obstacles boundary.
To address these limitations posed by the SM, we present an alternative approach to determine the points-based path trace. This approach is based on the customization of the traditional PFM originally presented by O. Khatib [19]. In the PFM, the goal generates an attractive potential field while the obstacle generates a repulsive potential field. The path direction is computed by combining the two potential fields and following the force induced by the new, combined field to reach the goal by avoiding obstacles. The basic idea is explained in Algorithm 3.
Algorithm 3 first initializes the path with the start point p s and places the head pointer over the start point p s . Next, the algorithm keeps on iterating until the distance between the head and the goal point p g is greater than or equal to the step. With each iteration, the head pointer and path array will be updated with the intermediate path point. In the body of the iteration loop, we first find the attractive potential field vector −−→ PF att generated by the goal over the head using the attractiveField() function. This function returns the vector of the attractive potential field originating at head by the goal. We then compute the repulsive potential field vector −−→ PF rep generated by obstacles over the head using the repulsiveField() function. This function returns the vector of the repulsive potential field originating at head by the obstacles. The potential field values are taken between 0 and 1, inclusively. The value of the attractive potential field will be low (approaching 0) at points further from the goal as the head

Property Sine method Tangent bug
Obstacle handling Exploits the angle information between the shortest distance vector towards the obstacle and the vector towards the goal for computing the intermediate safe-path point by rotating in either clockwise or counter-clockwise around the previous safe point (head).
Computes the tangent points with the obstacle using the range sensor placed at the head. Move to the shortest-distance tangent point using the heuristic distance with the sum of the distance from the tangent point and the shortest-distanced obstacle from the goal.
Obstacle avoidance Iterate the obstacle handling mechanism (as illustrated in the above point).
Starts the boundary-following behaviour in the same way as the Bug 1 and Bug 2 algorithms.
Leaving obstacle Leaves the obstacle tangentially towards the goal.
Leaves the obstacle from the shortest-distanced point between the blocking obstacle and the goal.

The Potential Field Method Algorithm
The SM algorithm results in a path trace with fewer oscillations; however, it has certain limitations, e.g., it provides a local optimal path, poses limitations in environments with special convex obstacles, and is somewhat timeexpensive around the obstacles boundary. To address these limitations posed by the SM, we present an alternative approach to determine the points-based path trace. This approach is based on the customization of the traditional PFM originally presented by O. Khatib [19]. In the PFM, the goal generates an attractive potential field while the obstacle generates a repulsive potential field. The path direction is computed by combining the two potential fields and following the force induced by the new, combined field to reach the goal by avoiding obstacles. The basic idea is explained in Algorithm 3. Append updated head at the end of the path array end while return path after appending p g at the end of the path array moves closer towards the goal where the potential field approaches 1. The same methodology is adopted for the repulsive potential field generated by the obstacles. The value of the repulsive potential field will be around zero at distances greater than the marginal distance away from the obstacles, and approaches 1 as the head approaches the boundary of the obstacles at a distance less than the marginal distance from the obstacles.
After computing the attractive and repulsive potential fields, we compute the total potential field −−−→ PF total at the head point by summing-up both the potential fields. We then find the direction unit vector direct using the total potential field vector −−−→ PF total . Using the direction vector direct, we update the coordinates of the head with the intermediate safety moves between the head and p g satisfying the constraints. For this, we find the point at the distance step away from the head in the direction of the unit vector direct. We then update the path trace by appending the updated head coordinates. The algorithm keeps on iterating until it finds all the intermediate points from the start point p s to the goal point p g . Finally, the algorithm appends the goal point p g with the path trace and returns the complete points-based path trace as output. The safety movement, such that the path satisfies the design and kinematics constraints of continuum robots. The path trace resulting from the approaches presented in Section 2.1 is discrete and does not satisfy the design and kinematics constraints of continuum robots. Moreover, as discussed, continuum robots cannot follow such a path because of their design and kinematics constraints. To compute the path that satisfies the design and kinematics constraints of continuum robots, we have proposed a path planning algorithm based on constant curvature curves. The algorithm takes the points-based path trace (resulting from the algorithms presented in Section 2.1) and the initial tangent/orientation vector as input, and provides a constant curvature moves-based continuous path as output. The resulting path now satisfies the design and kinematics constraints of continuum robots. The algorithm is based on fitting the constant curvature curves between path points by maintaining the continuity of the path. The curvature is defined as the degree to which the curves deviate from being a straight line. For a curve, the rate at which the tangent vector changes direction with respect to the arc length is called the "curvature" (κ) [20]. In circular curves, the rate of change of the tangent vector's direction is constant; hence, these are called "constant curvature curves". The curvature is the reciprocal of the radius [3,20]. Circles with a smaller curvature imply a larger radius, and vice versa. For a circle of radius r, the curvature κ can be computed as follows: Next, we define the theoretical aspects of the constant curvature curves-based continuous path planning algorithm by exploiting it geometrically. For input, we take the path points shown in Figure 2. To fit the constant curvature curve between path points P 1 and P 2 (highlighted in Figure 2), we need the initial direction to maintain the continuity of the path. This initial direction can be maintained using the tangent vector at point P 1 . This vector will be the tangent on the previously fitted curve, e.g., between P 0 and P 1 , at point P 1 . The constant curvature curve fitted between path points P 1 and P 2 needs to maintain the continuity with the path. The tangent vector at point P 1 on the previously fitted curve should guide this continuity and help us in pruning out all the other curves that do not satisfy the continuity constraints. Hence, we take point P t such that it guides the tangent at point P 1 , as depicted in Figure 2. There are Algorithm 3. first initializes the path with the start point p s and places the head pointer over the start point p s . Next, the algorithm keeps on iterating until the distance between the head and the goal point p g is greater than or equal to the step. With each iteration, the head pointer and path array will be updated with the intermediate path point. In the body of the iteration loop, we first find the attractive potential field vector P F att → generated by the goal over the head using the attractiveField() function. This function returns the vector of the attractive potential field originating at head by the goal. We then compute the repulsive potential field vector P F rep → generated by obstacles over the head using the repulsiveField() function. This function returns the vector of the repulsive potential field originating at head by the obstacles. The potential field values are taken between 0 and 1, inclusively. The value of the attractive potential field will be low (approaching 0) at points further from the goal as the head moves closer towards the goal where the potential field approaches 1. The same methodology is adopted for the repulsive potential field generated by the obstacles. The value of the repulsive potential field will be around zero at distances greater than the marginal distance away from the obstacles, and approaches 1 as the head approaches the boundary of the obstacles at a distance less than the marginal distance from the obstacles.
After computing the attractive and repulsive potential fields, we compute the total potential field P F total → at the head point by summing-up both the potential fields. We then find the direction unit vector direct using the total potential field vector P F total → . Using the direction vector direct , we update the coordinates of the head with the intermediate safety moves between the head and p g satisfying the constraints. For this, we find the point at the distance step away from the head in the direction of the unit vector direct. We then update the path trace by appending the updated head coordinates. The algorithm keeps on iterating until it finds all the intermediate points from the start point p s to the goal point p g . Finally, the algorithm appends the goal point p g with the path trace and returns the complete points-based path trace as output. The safety parameters work in the same way as they do for the SM algorithm.

The Constant Curvature Curves-based Continuous Path Planning Algorithm
Continuum robots do not contain any rigid links or joints and consist of a continuously bending architecture [4]; hence, for a continuum robot to follow a particular path, the path needs to be continuous. Additionally, a common property of the approximately constant curvature-bending of the backbone is virtually exhibited by all types of continuum robots [4,5]. Hence, the motion produced for the continuum manipulator should be a constant curvature (circular) curves-based path movement, such that the path satisfies the design and kinematics constraints of continuum robots. The path trace resulting from the approaches presented in Section 2.1 is discrete and does not satisfy the design and kinematics constraints of continuum robots. Moreover, as discussed, continuum robots cannot follow such a path because of their design and kinematics constraints. To compute the path that satisfies the design and kinematics constraints of continuum robots, we have proposed a path planning algorithm based on constant curvature curves. The algorithm takes the points-based path trace (resulting from the algorithms presented in Section 2.1) and the initial tangent/orientation vector as input, and provides a constant curvature moves-based continuous path as output. The resulting path now satisfies the design and kinematics constraints of continuum robots. The algorithm is based on fitting the constant curvature curves between path points by maintaining the continuity of the path. The curvature is defined as the degree to which the curves deviate from being a straight line. For a curve, the rate at which the tangent vector changes direction with respect to the arc length is called the "curvature" (κ) [20]. In circular curves, the rate of change of the tangent vector's direction is constant; hence, these are called "constant curvature curves". The curvature is the reciprocal of the radius [3,20]. Circles with a smaller curvature imply a larger radius, and vice versa. For a circle of radius r, the curvature κ can be computed as follows: Next, we define the theoretical aspects of the constant curvature curves-based continuous path planning algorithm by exploiting it geometrically. For input, we take the path points shown in Figure 2. To fit the constant curvature curve between path points P 1 and P 2 (highlighted in Figure  2), we need the initial direction to maintain the continuity of the path. This initial direction can be maintained using the tangent vector at point P 1 . This vector will be the tangent on the previously fitted curve, e.g., between P 0 and P 1 , at pointP 1 . The constant curvature curve fitted between path points P 1 and P 2 needs to maintain the continuity with the path. The tangent vector at point P 1 on the previously fitted curve should guide this continuity and help us in pruning out all the other curves that do not satisfy the continuity constraints. Hence, we take point P t such that it guides the tangent at point P 1 , as depicted in Figure 2. There are other methodologies to maintain the tangent [20], but we have used a points-driven tangent vector for maintaining continuity. This will also, later on, help in the selection of curves with the same curvature to satisfy the continuity constraint.
The vector from P t to P 1 (P t P 1 → ) is the tangent on previously fitted curve, e.g., between P 0 and P 1 , at point P 1 . P t P 1 → will also be the tangent on the curve between P 1 and P 2 at point P 1 . With this methodology, we also provide the initial direction or tangent of the first section of the continuum robot with the tip placed at point P s . This initial direction/ orientation guides the continuity of the path between the path points. For the purpose of this paper, a straight lineorientation (zero curvature) of the continuum robot is placed as a guiding vector for the path to maintain continuity. This orientation is placed such that the head of the first section of the continuum robot is at point P s and the tail at the tangent point is passed to the algorithm. We can place any orientation of the continuum robot given the initial tangent vector at P s .
We exploit the properties of an isosceles triangle to fit the constant curvature continuous curve between path points P 1 and P 2 . We find the bending angle or central angle (θ) of the curve to be fitted between P 1 and P 2 . This angle is also referred as the "degree of curvature". Using angle θ, we find the radius and hence the curvature of the curve using Equation (1). We fit the isosceles triangle such that one of the equal edges follows the tangent vector P t P 1 → , while the unequal edge is the line between P 1 and P 2 (as shown in Figure 2). Using the information of the angle δ between vectors P t P 1 → and P 1 P 2 → , we find the angle θ adjacent to the unequal angle ω of the isosceles triangle. This has been represented pictorially in the Figure 2.
The unequal angle (ω) of the isosceles triangle can be computed using ω = 180 − 2(δ). Based upon ω, we can compute the degree of curvature using θ = 180 − ω. The angle θ can be directly computed from δ as follows: The angle θ known as the bending angle or the central angle of the curve provides information for the circular curve between points P 1 and P 2 . To find the curvature of the curve, we first need to find the radius of the curve to be fitted between P 1 and P 2 . The radius (r) can be computed by exploiting the properties of the isosceles triangle C P 1 P 2 and the right-angled triangle C P m P 2 , as demonstrated in Figure 3. Figure 2). Using the information of the angle δ between vectors − − → P t P 1 and − − → P 1 P 2 , we find the angle θ adjacent to the unequal angle ω of the isosceles triangle. This has been represented pictorially in the Figure 2.  Figure 2. Fitting an isosceles triangle between points P 1 and P 2 to find the degree of curvature (θ).
The unequal angle (ω) of the isosceles triangle can be computed using ω = 180 − 2(δ). Based upon ω, we can compute the degree of curvature using θ = 180 − ω. The angle θ can be directly computed from δ as follows: The angle θ known as the bending angle or the central angle of the curve provides information for the circular curve between points P 1 and P 2 . To find the curvature of the curve, we first need to find the radius of the curve to be fitted between P 1 and P 2 . The radius (r) can be computed by exploiting the properties of the isosceles triangle CP 1 P 2 and the right-angled triangle CP m P 2 , as demonstrated in Figure 3.
To find the radius (r), we need to know the angle ∠P m CP 2 and the length of the edge P m P 2 of the right-angled triangle CP m P 2 . The angle ∠P m CP 2 is equal to half of the central angle θ, i.e., In addition, the length of the edge P m P 2 is equal to half of the Euclidean distance between points P 1 and P 2 , i.e., P m P 2 = P 1 P 2 2 (4) Using E comput r As such 1. This curve to There a given t end-poi continu been pic    Using Equations (2), (3) and (4), the radius (r) can be computed as follows: As such, the curvature (κ) can be computed using Equation 1. This value of κ represents the curvature of the circular curve to be fitted between points P 1 and P 2 .
There are two possibilities for fitting the circular curve given the curvature/radius of the circle and the two end-points of the circular curve. One curve satisfies the continuity constraint, while the other does not. This has been pictorially demonstrated in Figure 4.  Figure 4. Two circular curves between points P 1 and P 2 based upon the radius/curvature.
We have exploited the tangent vector − − → P t P 1 to find the curve satisfying the continuity constraint. We find point P t1 along the tangent vector − − → P t P 1 (see Figure 3). This point is required for two purposes: 1) to prune out the curve not satisfying the continuity constraint, and 2) to find the To find the radius (r), we need to know the angle ∠ P m C P 2 and the length of the edge P m P 2 of the right-angled triangle C P m P 2 . The angle ∠ P m C P 2 is equal to half of the central angle θ, i.e., In addition, the length of the edge P m P 2 is equal to half of the Euclidean distance between points P 1 and P 2 , i.e., 1 2 2 = 2 m P P P P Using Equations (2), (3) and (4), the radius (r) can be computed as follows: ( ) As such, the curvature (κ) can be computed using Equation 1. This value of κ represents the curvature of the circular curve to be fitted between points P 1 and P 2 .
There are two possibilities for fitting the circular curve given the curvature/radius of the circle and the two endpoints of the circular curve. One curve satisfies the continuity constraint, while the other does not. This has been pictorially demonstrated in Figure 4.
computed from δ as follows: as the bending angle or the central rovides information for the circular P 1 and P 2 . To find the curvature of d to find the radius of the curve to be P 2 . The radius (r) can be computed erties of the isosceles triangle CP 1 P 2 triangle CP m P 2 , as demonstrated in we need to know the angle ∠P m CP 2 dge P m P 2 of the right-angled triangle m CP 2 is equal to half of the central h of the edge P m P 2 is equal to half of e between points P 1 and P 2 , i.e., There are two possibilities for fitting the circular curve given the curvature/radius of the circle and the two end-points of the circular curve. One curve satisfies the continuity constraint, while the other does not. This has been pictorially demonstrated in Figure 4.  Figure 4. Two circular curves between points P 1 and P 2 based upon the radius/curvature.
We have exploited the tangent vector − − → P t P 1 to find the curve satisfying the continuity constraint. We find point P t1 along the tangent vector − − → P t P 1 (see Figure 3). This point is required for two purposes: 1) to prune out the curve not satisfying the continuity constraint, and 2) to find the  We have exploited the tangent vector P t P 1 → to find the curve satisfying the continuity constraint. We find point P t 1 along the tangent vector P t P 1 → (see Figure 3). This point is required for two purposes: 1) to prune out the curve not satisfying the continuity constraint, and 2) to find the tangent vector P t 1 P 2 → at point P 2 . This tangent vector is required to maintain the continuity of the path for fitting the constant curvature continuous curve between points P 2 and P 3 . The point P t 1 lies on the intersection of the tangent vectors P t P 1 → and P t 1 P 2 → at points P 1 and P 2 , respectively. We know the value of P t P 1 → for finding the coordinates of point P t 1 -we need to know the length of edge P 1 P t 1 of the isosceles triangle P 1 P t 1 P 2 , as demonstrated in Figure 3.
For finding the iso-edge-length P 1 P t 1 of the isosceles triangle P 1 P t 1 P 2 , we drop perpendicularly from point P t 1 on edge P 1 P 2 to fit the right-angled triangle P 1 P m P t 1 . In the right-angled triangle P 1 P m P t 1 , the value of edge P 1 P m is equal to half of the Euclidean distance between points P 1 and P 2 . In the right-angled triangle P 1 P m P t 1 , using the cosine function with the angle δ, we can compute the length P 1 P t 1 as follows: Using P 1 P t 1 and the direction of the vector P t P 1 → , we find the coordinates of point P t 1 ; hence, the tangent vector P t 1 P 2 → . Now, following from Figure 4, we select the circular curve between points P 1 and P 2 whose central (centre of the circle) distance from point P t 1 is larger than the other. Because of the tangential constraint, P t 1 always lies outside the desired constant curvature curve. Accordingly, we find the Euclidean distances P t 1 C and P t 1 C ′ . The constant curvature curve with a larger central distance value from point P t 1 is the desired curve between points P 1 and P 2 , which is the curve with the centre C in the above case. After finding the tangent vector P t 1 P 2 → , we can repeat the same methodology for points P 2 and P 3 , and so on. If we run the above approach over the points-based path trace depicted in Figure 1 (a), then the resulting constant curvature curves-based continuous path for a continuum robot with a diameter of 2mm is as presented in Figure 5.

Discussion
In this section, we compare our proposed algorithm with existing algorithms and analyse the novelties of our research work. The PoPP algorithm computed the path by imposing safety constraints and catered for the limitations of existing approaches. The algorithm has two safety parameters: the step size and the minimum marginal distance. The step size should be less than the minimum marginal distance so as to ensure that the continuum robot does not collide with an obstacle. If we set the step size as so small that it becomes negligible when compared to the minimum marginal distance, then the path becomes very close to the true path and the path error becomes negligible.
There exists a good trade-off between accuracy and efficiency. By decreasing the step size, the path error decreases as well, but it increases the running time of the algorithm. This works the other way around when we increase the step size. The second safety parameter -the minimum marginal distance -maintains the safety distance from obstacles. We proposed two algorithms for computing the points-based path trace, i.e., the SM algorithm and the PFM algorithm. The SM algorithm computes the path trace with fewer oscillations, better smoothness and fewer chances of getting stuck in the local minima. However, it provides the local optimal path, works efficiently for avoiding convex obstacles, needs improvements for avoiding special concave obstacles, and is somewhat timeexpensive around the obstacles boundary. On the other hand, the PFM algorithm addresses the limitations of the SM algorithm, to some extent, but the path generated may have oscillations and may become stuck in the local minima. The PFM algorithm is faster compared to the SM algorithm, and enormous research has been carried out regarding its applications in traditional rigid link robots which can be incorporated for an efficient path trace. From Figure 6, we observed that the SM algorithm is slightly more time-consuming compared to the PFM algorithm.
tangent vector −−→ P t1 P 2 at point P 2 . This tangent vector is required to maintain the continuity of the path for fitting the constant curvature continuous curve between points P 2 and P 3 . The point P t1 lies on the intersection of the tangent vectors − − → P t P 1 and −−→ P t1 P 2 at points P 1 and P 2 , respectively. We know the value of − − → P t P 1 for finding the coordinates of point P t1 -we need to know the length of edge P 1 P t1 of the isosceles triangle P 1 P t1 P 2 , as demonstrated in Figure 3.
For finding the iso-edge-length P 1 P t1 of the isosceles triangle P 1 P t1 P 2 , we drop perpendicularly from point P t1 on edge P 1 P 2 to fit the right-angled triangle P 1 P m P t1 . In the right-angled triangle P 1 P m P t1 , the value of edge P 1 P m is equal to half of the Euclidean distance between points P 1 and P 2 . In the right-angled triangle P 1 P m P t1 , using the cosine function with the angle δ, we can compute the length P 1 P t1 as follows: Using P 1 P t1 and the direction of the vector − − → P t P 1 , we find the coordinates of point P t1 ; hence, the tangent vector −−→ P t1 P 2 . Now, following from Figure 4, we select the circular curve between points P 1 and P 2 whose central (centre of the circle) distance from point P t1 is larger than the other. Because of the tangential constraint, P t1 always lies outside the desired constant curvature curve. Accordingly, we find the Euclidean distances P t1 C and P t1 C . The constant curvature curve with a larger central distance value from point P t1 is the desired curve between points P 1 and P 2 , which is the curve with the centre C in the above case. After finding the tangent vector −−→ P t1 P 2 , we can repeat the same methodology for points P 2 and P 3 , and so on. If we run the above approach over the points-based path trace depicted in Figure 1 (a), then the resulting constant curvature curves-based continuous path for a continuum robot with a diameter of 2mm is as presented in Figure 5.

Discussion
In this section, we compare our proposed algorithm with existing algorithms and analyse the novelties of our research work. The PoPP algorithm computed the path by imposing safety constraints and catered for the limitations of existing approaches. The algorithm has two safety parameters: the step size and the minimum marginal computes the path trace with fewer oscillations, better smoothness and fewer chances of getting stuck in the local minima. However, it provides the local optimal path, works efficiently for avoiding convex obstacles, needs improvements for avoiding special concave obstacles, and is somewhat time-expensive around the obstacles boundary.
On the other hand, the PFM algorithm addresses the limitations of the SM algorithm, to some extent, but the path generated may have oscillations and may become stuck in the local minima. The PFM algorithm is faster compared to the SM algorithm, and enormous research has been carried out regarding its applications in traditional rigid link robots which can be incorporated for an efficient path trace. From Figure 6, we observed that the SM algorithm is slightly more time-consuming compared to the PFM algorithm.
Continuum robots consist of continuously bending architectures [4]; hence the path of continuum robots needs to be continuous. Furthermore, the backbones of all types of continuum robots can be visualized as a serially arranged, approximately constant, curvature curves-based configuration [4,5].
Hence, the path Continuum robots consist of continuously bending architectures [4]; hence the path of continuum robots needs to be continuous. Furthermore, the backbones of all types of continuum robots can be visualized as a serially arranged, approximately constant, curvature curves-based configuration [4,5]. Hence, the path  Continuum robots consist of continuously bending architectures [4]; hence the path of continuum robots needs to be continuous. Furthermore, the backbones of all types of continuum robots can be visualized as a serially arranged, approximately constant, curvature curves-based configuration [4,5]. Hence, the path moves should consist of constant curvature (circular) curves-based path moves such that the path satisfies the design and kinematics constraints of continuum robots. The points-based path trace resulting from the approaches presented in Section 2.1 (SM algorithm and PFM algorithm) is discrete and does not satisfy the design and kinematics constraints of continuum robots. This path trace is used by the constant curvature curves-based continuous path planning algorithm as input and computed the constant curvature curves-based continuous path for the continuum robots. From Figure 5, we can visualize that the path generated by the constant curvature curves-based continuous path planning algorithm is continuous and is based on constant curvature curves-based path moves. Hence, the resulting path satisfies the design and kinematics constraints of continuum robots. The smoothness and curvatures of the path depends upon the smoothness of the points-based path trace passed as input to the constant curvature curvesbased continuous path planning algorithm. Fewer oscillations and curvature changes in the points-based path trace result in a smoother constant curvature curves-based continuous path. Figure 5 shows the configuration of an nsection continuum robot at different time slots, following the initial configuration t 1 , t 2 ,...t n . For the path in Figure 5, n=56 (with 57 path points). Figure 7 shows the curvature variations of the path at different time slots. These curvature variations can be used for computing the volume of the path hose and dexterity for the robot's movement at a certain time slot. From Figure 6, we can observe the time complexity of the constant curvature curves-based continuous path planning algorithm (CC). We observed that the constant curvature curve fitting algorithm takes approximately 0.3 seconds for a path consisting of 1,000 path points. MATLAB 7.10 R2010a has been used with a 2.5 GHz PC processor for generating the simulations and computing the time complexities of the algorithms proposed in this paper.
input and computed the constant curvature curves-based continuous path for the continuum robots.
From Figure 5, we can visualize that the path generated by the constant curvature curves-based continuous path planning algorithm is continuous and is based on constant curvature curves-based path moves. Hence, the resulting path satisfies the design and kinematics constraints of continuum robots. The smoothness and curvatures of the path depends upon the smoothness of the points-based path trace passed as input to the constant curvature curves-based continuous path planning algorithm. Fewer oscillations and curvature changes in the points-based path trace result in a smoother constant curvature curves-based continuous path. Figure 5 shows the configuration of an n-section continuum robot at different time slots, following the initial configuration t 1 , t 2 , ... t n . For the path in Figure 5, n=56 (with 57 path points). Figure 7 shows the curvature variations of the path at different time slots. These curvature variations can be used for computing the volume of the path hose and dexterity for the robot's movement at a certain time slot. From Figure 6, we can observe the time complexity of the constant curvature curves-based continuous path planning algorithm (CC). We observed that the constant curvature curve fitting algorithm takes approximately 0.3 seconds for a path consisting of 1,000 path points. MATLAB 7.10 R2010a has been used with a 2.5 GHz PC processor for generating the simulations and computing the time complexities of the algorithms proposed in this paper. section) of the continuum robot. As such, the algorithm simply finds the configurations of the first/head section of the continuum robot, while the rest of the body follows the path trace of the head section in consecutive time slots. The 1,000 points-based path can be visualized as any number of sections of a continuum robot, ranging from 1-999, following the path in different time slots. Hence, the algorithm exhibits sound potential for applications with continuum robots with any number of sections to achieve the desired safety with speed. Additionally, the algorithm is applicable to all types of continuum robots The PoPP algorithm takes approximately 0.47 (0.3 + 0.17) seconds for computing a complete path consisting of 1,000 path points ( Figure 6). The PoPP algorithm has been demonstrated to be more efficient compared to existing algorithms (see Table 3 for a comparison). This is because, firstly, it is points-driven and, secondly, it does not find the configurations of all the sections of the continuum robot for different time slots. Rather, the body of the continuum robot follows the path trace made by the head (first section) of the continuum robot. As such, the algorithm simply finds the configurations of the first/head section of the continuum robot, while the rest of the body follows the path trace of the head section in consecutive time slots. The 1,000 points-based path can be visualized as any number of sections of a continuum robot, ranging from 1-999, following the path in different time slots. Hence, the algorithm exhibits sound potential for applications with continuum robots with any number of sections to achieve the desired safety with speed. Additionally, the algorithm is applicable to all types of continuum robots satisfying the property of constant curvature-bending for their manipulators. This also addresses the limitations of existing algorithms for the path planning of continuum robots, which are applicable to specific types of continuum robots with a limited number of sections (mostly three) and which are computationally expensive (ranging from seconds to hours) with limited accuracy.

Conclusion
In this paper, we proposed a PoPP algorithm for continuum robots in two-dimensional environments. Existing algorithms for the path planning of continuum robots are robot-specific and do not provide safety measures, assurance or control. They are computational-ly expensive and mostly they do not incorporate design and kinematics constraints. Safety assurance is extremely important for the approval and usage of continuum robots in safety-critical applications. In the PoPP algorithm, we exploited the constant curvature backbone bending property of continuum robots, and provided a constant curvature curves-based continuous path satisfying the safety, design and kinematics constraints of continuum robots. The algorithm also addresses the limitations of existing algorithms for the path planning of continuum robots. We have confirmed that the algorithm also provides information about the volume of the path hose and flexibility of movement at different time slots. The algorithm exhibits promising potential for applications with all types of continuum robotsfollowing the constant curvature backbone bending property -to achieve the desired safety with efficiency. In addition, the algorithm provides a good trade-off between accuracy and efficiency that can be exploited for safety-critical applications of continuum robots, e.g., minimally-invasive surgeries. Future research is in progress to optimize the performance of the pointsbased path trace algorithms and the constant curvature continuous path planning algorithm.