ITC: Infused Tangential Curves for Smooth 2D and 3D Navigation of Mobile Robots †

Navigation is an indispensable component of ground and aerial mobile robots. Although there is a plethora of path planning algorithms, most of them generate paths that are not smooth and have angular turns. In many cases, it is not feasible for the robots to execute these sharp turns, and a smooth trajectory is desired. We present ‘ITC: Infused Tangential Curves’ which can generate smooth trajectories for mobile robots. The main characteristics of the proposed ITC algorithm are: (1) The curves are tangential to the path, thus maintaining G1 continuity, (2) The curves are infused in the original global path to smooth out the turns, (3) The straight segments of the global path are kept straight and only the sharp turns are smoothed, (4) Safety is embedded in the ITC trajectories and robots are guaranteed to maintain a safe distance from the obstacles, (5) The curvature of ITC curves can easily be controlled and smooth trajectories can be generated in real-time, (6) The ITC algorithm smooths the global path on a part-by-part basis thus local smoothing at one point does not affect the global path. We compare the proposed ITC algorithm with traditional interpolation based trajectory smoothing algorithms. Results show that, in case of mobile navigation in narrow corridors, ITC paths maintain a safe distance from both walls, and are easy to generate in real-time. We test the algorithm in complex scenarios to generate curves of different curvatures, while maintaining different safety thresholds from obstacles in vicinity. We mathematically discuss smooth trajectory generation for both 2D navigation of ground robots, and 3D navigation of aerial robots. We also test the algorithm in real environments with actual robots in a complex scenario of multi-robot collision avoidance. Results show that the ITC algorithm can be generated quickly and is suitable for real-world scenarios of collision avoidance in narrow corridors.


Introduction
It is well understood that, in the near future, mobile robots will replace many works currently done manually by people. These is mostly dull (moving stuff in warehouse), dangerous (handling hazardous materials), and demanding (lifting heavy items) work. In order ro set the scene for the 1.
The proposed ITC algorithm generates smooth curves that are tangential to the original path. Thus, G 1 continuity is always guaranteed. 2.
The smooth curves are infused in the original global path to smooth out the turns. Thus, the original global path is kept intact. 3.
The straight segments of the global path are kept straight and only the sharp turns are smoothed. This is advantageous to keep a safe distance from the walls while navigating a narrow corridor. 4.
Safety is embedded in the ITC trajectories, and robots are guaranteed to maintain a safe distance from the obstacles.

5.
The curvature of ITC curves can easily be controlled and smooth trajectories can be generated fast in real-time. 6.
The ITC algorithm smooths the global path on a part-by-part basis thus local smoothing at one point does not affect the global path. 7.
The path smoothing is possible for both 2D navigation of ground vehicles, and 3D navigation of aerial robots. 8.
We present ITC as a smoothing extension that can work in conjunction with any of the traditional path planners.
A map is a prerequisite for path planning. A map is generated by using any of the SLAM (Simultaneous Localization and Mapping) algorithms available in the literature (see [52][53][54]). A SLAM module basically builds a map of the environment, and simultaneously localizes the robot in it. However, if the map has already been generated, it can be reused and the robot just needs to localize itself in it by matching sensor data using different algorithms [52,55]. Most commonly used sensors are Lidar, camera, and inertial sensors like IMU (Inertial Measurement Units). In this paper, it is assumed that there are sensors attached to the robot to avoid obstacles, and localize the robot in the map that has been generated already.

Induced Tangential Curves: 2D Path Smoothing Case
This section discusses the path smoothing for the 2D case. The 3D path smoothing case is discussed in Section 5.
Most of the traditional path planning algorithms generate a path which has many sharp and angular turns. Let us assume that the path ABCD (shown in black in Figure 1) is a section of the robot's path with a sharp turn at point B, and point C. The coordinates of the point A (x 1 , y 1 ), B (x 2 , y 2 ), C (x 3 , y 3 ), and D (x 4 , y 4 ) are also shown in Figure 1a. The obstacle is shown in gray color. The sharp turns at points B and C needs to be smoothed out.
First, we find two points P 1 and P 2 such that the line joining the two points P 1 P 2 is at a safe threshold distance (δ thresh ) from the obstacle. To find these points, we find intermediate points P 1 on the line BA at a fixed small distance from the point B. We fix another intermediate point P 2 on the line BC at the same fixed distance from the point B, i.e., BP 1 = BP 2 . We define this process of finding intermediate points from the turn-point as 'diffusion'. The turn point B is diffused into points P 1 and P 2 along the directions BA and BC, respectively. A P 2 (p x2 ,p y2 ) The turn point B is diffused into points P 1 and P 2 along the directions BA and BC, such that the line joining the two points P 1 P 2 is at a safe threshold distance (δ thresh ) from the obstacle. If χ = {δ 1 , δ 2 , · · · , δ n } is a set of perpendicular distances from line P 1 P 2 to the obstacle at different points on the line, then there are three cases for such diffusion.

1.
Under Diffusion: This case is shown in Figure 1b. The line P 1 P 2 is too far from the obstacles and the minimum perpendicular distance from the line is greater than the minimum safety threshold distance, or min δ i ∈χ > δ thresh .

2.
Over Diffusion: This case is shown in Figure 1c. The line P 1 P 2 cuts through the obstacle.

3.
Appropriate Diffusion: This case is shown in Figure 1d. The line P 1 P 2 is at an appropriate distance δ thresh from the obstacle. To facilitate programming, we define an The parameter enables adjusting the threshold distance considering the width of the robot.
To find the minimum distance of the line P 1 P 2 from the obstacle (min δ i ∈χ ), we discretize the line P 1 P 2 into several intermediate points (x t , y t ) separated by a small distance ∆, as shown in Figure 2. We then estimate the distance of the obstacle from each intermediate point (x i t , y i t ). The total points are Discretizing the line P 1 P 2 into points x i t , y i t separated by ∆ distance.
To find the intermediate point 'T' (x i t , y i t ) at the distance ∆ from P 1 , we first find the unit vector (û) from the point P 1 to P 2 . The unit vector iŝ wherex andŷ are the unit vectors in the x and y directions. Point T(x i t , y i t ) at a distance ∆ from the point P 1 along the line P 1 P 2 is Splitting up the respective x and y components gives Thus, the intermediate points are calculated as We briefly explain the calculation of the minimum distance min δ i ∈χ from each intermediate point (x i t , y i t ). The slope of the line P 1 P 2 is The slope of line perpendicular to the line P 1 P 2 is Using Equation (6), we generate points on the line from each point (x i t , y i t ) with slope m ⊥ in small units until the point touches the obstacle. Since the process is the same as explained above, we omit the explanation as it is straightforward.
Notice that Equation (6) is also used to diffuse the turn point B into intermediate points P 1 and P 2 along the directions BA and BC by the same distance ∆. Diffusion is stopped when appropriate points are found within the safe distance from the obstacle.
The two diffused points acts are points of contact of an induced smooth curve that is tangential at these points. In order to find the curve, we first find the circle and its radius whose arc will replace the angular path. The center of this circle is the point of intersection of the two perpendicular segments from these diffused points P 1 and P 2 . The steps are explained below.
The slope of line AB in Figure 1a is and the slope of line BC in Figure 1a is In Figure 1a, the line P 1 O is perpendicular to the line AB from point P 1 (p x1 , p y1 ). Hence, the slope of line P 1 O is Similarly, line P 2 O is perpendicular to the line BC from point P 2 (p x2 , p y2 ), and the slope of line P 2 O is The point of intersection of lines P 1 O and P 2 O (point O(c x , c y ) in Figure 1a) is the center of the circle whose arc will define the smoothed path.
The general equation of a line of slope m passing through a point (x 1 , y 1 ) is Since the lines P 1 O and P 2 O intersect at O(c x , c y ), Thus, the x-coordinate of the center of the circle is The y-coordinate of the center of the circle can be obtained by plugging the value of c x in the equation of line P 1 O or P 2 O , The radius of the circle r is The circle with center (c x , c y ) and radius r is shown in Figure 1a. We take the arcP 1 P 2 of the circle between points P 1 and P 2 shown in magenta in Figure 1a. This curveP 1 P 2 has the following properties: • CurveP 1 P 2 is tangential to the robot's original path. Hence, G 1 geometric continuity is guaranteed. • CurveP 1 P 2 is smoother to traverse compared to the original path of the robot. In Figure 1a, the original path of the robot is ABC with sharp turn at the point B. The smooth path is¸ AP 1 P 2 C. • CurveP 1 P 2 is 'infused' inside the original path of the robot.
Due to the three properties above,P 1 P 2 is called an 'Infused Tangential Curve'.

Accelerating ITC Path Smoothing Algorithm
The smoothing algorithm is accelerated on two fronts. First, we accelerate the diffusion of the point of sharp turn. Second, we also accelerate the algorithm to estimate the minimum distance from the obstacles. These are explained below. Figure 3a shows the normal approach of diffusing the node B (x 2 , y 2 ) into points P 1 and P 2 . The normal algorithm diffuses the point into small increments of ∆ diff . As shown in Figure 3a, if P 1 (p x1 , p y1 ) and P 2 (p x2 , p y2 ) are the appropriate diffused positions which maintain a safe threshold distance (δ thresh ) from the obstacles, the total steps n diff are

Accelerating the Diffusion Algorithm
Hence, normal diffusion algorithm would have a complexity of O(n diff ). We accelerate the algorithm using binary search. The idea is shown in Figure 3b, and it is used for explanation. In the binary search, the first diffusion of point B (x 2 , y 2 ) occurs at the maximum distance at point C (x 3 , y 3 ). This is shown by a magenta-colored arrow in Figure 3b. A check is performed if the line joining the diffused points i.e., AC maintains a safe threshold from the obstacles. As shown in Figure 3b, the line AC crosses over the obstacle, and it is a case of 'over-diffusion'. Therefore, in step 2, the diffusion distance is half the distance of the previous diffusion (i.e., ). This is shown by a blue arrow in Figure 3b, and the safety threshold is checked again. This is again a case of over-diffusion, so, in step 3, the new diffusion distance is half the distance of the previous diffusion (i.e., ) and shown with a green arrow. A check for safety clearance is performed, and it is determined to be a case of 'under-diffusion'. Due to this, in the next step 4, the diffusion is increased by half of the previous distance (i.e., ). This process is repeated until the appropriate diffusion point (P 2 ) has been found.  Compared to the normal process, the accelerated algorithm takes log (n diff ) steps, and the complexity of the algorithm is O(log n diff ). The pseudo-code is given in Algorihtm 1.

Accelerating the Minimum Distance Calculation
Similarly, we also accelerate the perpendicular distance estimation using the binary search algorithm. Figure 4a shows the normal incremental approach of finding the perpendicular distance from the obstacle on the line with starting point (x, y) and slope m ⊥ . The normal algorithm diffuses the point into small increments of ∆ ⊥ . As shown in Figure 4a, the total steps n clearance are Hence, the algorithm has a complexity of O(n clearance ).
(p x1 ,p y1 ) The accelerated algorithm using binary search is explained in Figure 4. Since the idea is similar to that explained in the previous section, we omit explanation, and the complexity of the algorithm is O(log n clearance ). The pseudo-code is given in Algorithm 2.
The values of n diff , n clearance , and n total_pts are given in Equations (2), (17), and (18), respectively. Compared to the incremental algorithm, the overall speedup is

Robot's Proximity from Obstacles on the Smooth Path
In Figure 5, the original path ABCD of the robot with sharp turns at points B and C has been smoothed by the pathȦP 1 P 2 . Originally, the robot would make a turn at point B keeping a distance BQ from the obstacle. On the smooth path, the robot comes closer to the obstacle while traversing the smooth green curve, and the distance is B Q. The proximity difference (shown as e in Figure 5) is e = BB . Since the robot itself has some width, the overall proximity to the obstacle will be increased while traversing the smooth curve. Hence, it is important to calculate this difference in proximity.
In Figure 5, we calculate the ∠ABC = θ using the cosine law as where, In P 1 OB and P 2 OB, we have Figure 5) Figure 5). In other words, BO bisects ∠P 1 BP 2 , and ∠P 1 BO = θ 2 . In P 1 OB, point P 1 is the tangent point, Hence, the distance e = BB is calculated as Assuming that the robot has a width of W r and it accurately traverses the curve, the proximity to the obstacles is increased by a distance W r 2 . If the proximity of the robot is less than the threshold distance δ thresh , the diffusion points P 1 and P 2 are moved closer to the point B by a distance of W r 2 , and the curve is recomputed to ensure safety.

Induced Tangential Curves: 3D Path Smoothing Case
We now explain the case of 3D path smoothing for UAVs (Unmanned Aerial Vehicles) and drones. The overall idea for the 3D case is an extension of the 2D case. 'Node' or the point of turn is now a point in 3D space. First, the overall path is generated by using traditional path planners. Commonly used robot path planning algorithms like A* algorithm [3], D* algorithm [4,5], potential fields algorithm [6], Probabilistic Roadmap Planner (PRM) [7], rapidly exploring random tree algorithm (RRT) [8][9][10], etc. generally have 3D extensions. Hence, any of the traditional algorithms can be used to generate the overall path. Figure 6 shows three points A (x 1 , y 1 , z 1 ) , B (x 2 , y 2 , z 2 ), and C (x 3 , y 3 , z 3 ) in 3D space. These points mark the original path of the robot. Point B is the point with sharp turn on the robot's path. As explained in the previous sections, point B has been diffused to points A and C which are equidistant from point B, i.e., |AB| = |BC|. The line joining the two 3D points AC is at a safe distance (d = δ thresh ) from the obstacle in 3D space shown in green in Figure 6. The aim is to find the circle (shown in yellow in Figure 6).
Plane in 3D made from points A,B,C 3D sphere The yellow circle in Figure 6 lies on the plane which is formed by the three points A (x 1 , y 1 , z 1 ), B (x 2 , y 2 , z 2 ), and C (x 3 , y 3 , z 3 ). The plane is shown in gray color.
The equation of the plane formed by three points is where The equation of line AB and BC is given as and respectively. The normal of the plane is calculated by taking the cross product, n is the vector (A, B, C) formed by three of the coefficients from the equation of the plane in Equation (24). The direction within the plane and perpendicular to AB is Similarly, the direction within the plane perpendicular to BC is A point on these lines can be represented as The equation of a point which lies on both of them is We solve for λ and µ. There are actually three equations, one for each coordinate, and two variables, so the system is over-determined. We can use pseudo inverse to avoid special cases and get the center of the sphere. Once we have the center, we can calculate the radius (r) of the circle with center O (c x , c y , c z ), As shown in Figure 6, the plane defined from the points A, B, and C cuts through the blue sphere. The boundary of the intersection of the sphere and the plane is a circle shown in yellow in Figure 6. The circle can be described with a parametric description, for which we require two orthonormal vectors within the plane. One such vector is and the other is Once the circle has been calculated, we take the arcÃC to generate the smooth trajectory.
The original path of the robot was A BC . The smooth path is¸ A ACC .

Experiments and Results
We now discuss the results of path smoothing using the proposed ITC algorithm. Section 6.1 first shows the 2D results. The 3D path smoothing results are shown in Section 6.2. Section 6.3 discusses the comparison with interpolation based smoothing algorithms. Section 6.4 shows results of smooth path generation with different curvatures. Section 6.5 shows smoothing results with actual robots in a real environment while discussing a multi-robot collision avoidance scenario.

Results of 2D Path Smoothing
We first discuss path smoothing in indoor corridor environments which are frequently navigated by mobile service robots. Such an environment is shown in Figure 7 in which the smooth paths are also shown. In such environments, robots generally navigate the center of the corridor maintaining a safe distance from the walls on both sides. On the other hand, some robots are programmed to navigate the corridors on the left or right side. We discuss these cases below.

•
Case I: As shown in Figure 7, if the robot is programmed to navigate the center of the corridors, the original path of the robot is AC 1 C 2 D with A as the starting point and D as the goal point.
The path has two 90-degree turns at points C 1 and C 2 . Two smooth curvesb 3 c 3 andc 4 c 5 have been induced in the original path. The smooth path isˇ Ab 3 c 3 c 4 c 5 D. • Case II: For 'left-traversal' robots, the original path of the robot is AB 1 B 2 D with A as the starting point and D as the goal point. This path also has two 90-degree turns at points B 1 and B 2 . Two smooth curvesb 1 b 2 andb 5 b 6 have been induced in the original path. The smooth path iš Two other curvesb 3 b 4 andb 5 e 1 have also been induced in the original path for different curvature requirements. In any case, all of the induced curves are tangential and guarantee G 1 continuity. Figure 8a shows a complex scenario with many sharp turns of different angles. The original path of the robot is shown in black with the start point as P1 and the goal point as P14. There are sharp turns at points P2, P3, · · · , P13. A major advantage of the proposed ITC algorithm is that it is possible to have a different safe threshold distance (δ thresh ) at different turn points based on several factors. In the simulation, we fixed different thresholds for different turn points as shown in Figure 8a. This is evident from the fact that the curvature of different induced curves (ā 1 a 2 ,b 1 b 2 ,c 1 c 2 , · · · ,î 1 i 2 ) shown in red in Figure 8a is different. For example, the curvature of the induced curveā 1 a 2 is less than that of curveĵ 1 j 2 , as the safety threshold distance for the curveā 1 a 2 (δ thresh = 3) was more than the safety threshold distance for the curveĵ 1 j 2 (δ thresh = 1).
The curvatures of different curves can also be checked visually from Figure 8b, which shows the different circles whose segments are used for smoothing the turns. It is also visually evident thatĵ 1 j 2 andb 1 b 2 are generated from arcs of circles with different radii, and hence different curvatures. Table 1 summarizes the coordinates of the points and distance thresholds set for the different curvesā 1 a 2 ,b 1 b 2 ,c 1 c 2 , · · · ,î 1 i 2 shown in Figure 8a.
The threshold distances summarized in Table 1 should not be confused with the radius of the circles used to generate the tangential curves. The radii of different circles used to generate tangential curves at points P2, P3, · · · , P13 of Figure 8 are shown in Figure 9a. Similarly, the curvature of the different ITC curves are shown in Figure 9b. The ITC curve at point P6 (ē 1 e 2 ) had the minimum radius of 0.7082 units and thereby the minimum curvature, whereas the ITC curve at point P8 (ḡ 1 g 2 ) had the maximum radius and thereby the minimum curvature. Table 1. 2D coordinates of turn points in Figure 8a .

Coord
P-1 P-2 P-3 P-4 P-5 P-6 P-7 P-8 P-9 P-10 P-11 P-12 P-13 P-14  2D path smoothing using ITC in a complex scenario. (a) tangential curves a 1 a 2 ,b 1 b 2 ,c 1 c 2 , · · · ,î 1 i 2 have been induced to smooth sharp turns with different δ thresh ; (b) visual representation of the different curves and their curvatures.  Figure 10 shows three complex scenarios of path smoothing for UAVs in 3D space. The original path of the UAV is shown in red. The smoothed paths are shown in black. The 3D points have been marked in green. Figure 10a shows the first case of 3D path smoothing. The original path of the UAV is a closed-loop path with the same start and goal points (x = y = z = 0). Different values of threshold distances have been used to generate smooth curves of appropriate curvatures. The 3D coordinates of different points and different clearance thresholds have been summarized in Table 2. Table 2. 3D coordinate of turn points in Figure 10a. Similarly, Figure 10b also shows a closed path closed-loop UAV path with the same start and goal points (x = y = z = 0). Compared to the path in Figure 10a, the path is more complex with difficult maneuvers and sharp turns. However, the proposed method is still able to smooth the sharp and angular turns. Different values of threshold distances have been used to generate smooth curves of appropriate curvatures. The 3D coordinates of different points and different clearance thresholds have been summarized in Table 3. Table 3. 3D coordinate of turn points in Figure 10b.  Figure 10c shows an open-loop UAV path with different start (P1 : x = y = z = 0) and goal points (P8 : x = 0, y = 45, x = 90). There are six sharp turns at points P2, P3, P4, · · · , P7. It is clear from Figure 10c that the proposed method keeps straight paths of the UAV straight. The turns can be smoothed for different curvatures. In this case, we used the same clearance threshold distance for the different turns. Hence, the curvature of all the smooth induced curves is the same. The 3D coordinates of different points and different clearance thresholds have been summarized in Table 4. Figure 11 shows the different 3D spheres for path smoothing in case of Figure 10c. The coordinates of the points are the same as given in Table 4. In this case, the surface of the 3D sphere is used to smooth out the sharp turns. It should be noted that the spheres in Figure 11 look like a circle as only a particular projection of the 3D space is shown. Table 4. 3D coordinate of turn points in Figure 10c.

Comparison with Other Works
In order to compare the strengths of our work, we compare our work with the path smoothing method proposed in the works of Huh and Chang in [56]. The method proposed in this paper uses an interpolation technique to smooth the sharp turns of the robot's path. Interpolation technique was first proposed by Warning [57,58]. Precisely, given m + 1 pairs (x i , y i ), the problem consists of finding a function φ = φ(x) such that φ(x i ) = y i for i = 0, · · · , m, y i being some given values, and say that φ interpolates {y i } at the nodes {x i }. We speak about polynomial interpolation if φ is an algebraic polynomial, trigonometric approximation if φ is a trigonometric polynomial, or piecewise polynomial interpolation (or spline interpolation) if φ is only locally a polynomial [1]. As interpolation based methods are widely used in path smoothing algorithms [41,59,60] found in the state-of-the-art, comparison with this method can highlight the merits as well as drawbacks of the proposed method.
In the comparison, we used the same dataset of points as used in work [56]. The dataset contains total ten points in a grid of size 50 × 50 units. The 2D coordinates of the ten points have been summarized in Table 5. As shown in Figure 12, the ten points (P1, P2, · · · , P10) are marked in green. The starting point is P1 :x = 8, y = 5, and the goal point is P10 :x = 25, y = 25 with many sharp turns at different points. In Figure 12, the original path is marked in black, whereas the smooth path is shown in red.
To smooth the paths, we used four sets of thresholds. The results of smoothing with different thresholds are shown in Figure 12a-d. The values of different thresholds along with the 2D coordinates of the points are summarized in Table 5 for the different figures. Table 5. Coordinates of different points in the comparative work of Figure 12 for different cases.  Figure 12e is the same as Figure 12d, but the obstacles are also shown. Notice that the path between the points P5 and P6 is a straight corridor between the walls shown in gray color. A robot traversing this path is expected to maintain a safe distance from the walls and move as straight as possible. The proposed method is able to achieve exactly that goal. The straight paths are kept straight, while only the sharp turns are smoothed out. For comparison, we direct the readers to paper [56] (page 7, Figure 11 of [56] to be exact). In work [56], since interpolation techniques are used, the path between the points P5 and P6 is not straight but dangerously close to the walls at multiple points. This also happens at other locations, and the robot's proximity to the obstacles is compromising safety. Moreover, since interpolation is used, it is difficult to control the curvature of paths, especially at the turns. On the other hand, in the proposed method, it is easy to control the curvature.
However, our proposed method has a disadvantage that G 2 continuity is not possible. G 2 continuity is important for a robot that accelerates significantly on the paths. In fact, the reason why the work in [56] brings the robot close to one of the walls is because it emphasizes achieving a G 2 continuity. Adjusting a particular point on paths using interpolation is difficult as changing one point changes the whole path. Hence, there is a possibility that adjusting one point to a safe distance brings other portions of the continuous path close to the obstacles. The proposed method only guarantees a G 1 continuity that is tangential continuity. The G 1 continuity is important so that the robot does not experience a sudden kink or bump while traversing from a straight line to a curve. G 2 continuity is important for robots traveling at high speeds. However, most of the service robots have limited speed (generally around 2 m/s) to ensure operational safety. Although ensuring a G 2 continuity is beneficial, G 1 continuity is enough for operations at lower speeds. Since the proposed method only smooths the turns and keeps the straight paths straight, a robot can always navigate the straight segments of the path at high speeds and slow down before approaching a turn.  Figure 12. Comparison with interpolation based smoothing proposed in [56] using the same set of points. The various thresholds δ thresh in (a-e) are given in Table 5.

Generation of Smooth Paths with Variable Curvature
A strong merit of the proposed ITC path smoothing is that the curvature of the smooth trajectories can be controlled easily. Figure 13 shows the results of path smoothing in which the ITC curves have been generated with different curvatures. The original path is P 1 P 2 P 3 P 4 shown in black color with sharp turns at points P 2 and P 3 . The coordinates of the four points are: P 1 : (50, 50), P 2 : (250, 250), P 3 : (500, 50), P 4 : (750, 250).
As shown in Figure 13, at the same turn point P 2 , different ITC curves (ĀA ,BB , · · · ,HH ) have been generated. The radius and curvature of the different ITC curves are shown in Figure 14a,b, respectively. Thus, depending on the kinematics of the robot and the configuration of obstacles, appropriate path smoothing can easily be achieved using the proposed method.

Results of Smoothing in Real Environment with Actual Robots
This section discusses results in a real environment with actual robots. Figure 15 shows the robots used and its motion model. We used a Pioneer-P3DX [61] robot and Turtlebot robot [62] shown in Figure 15a,b, respectively. Both the robots were equipped with distance sensors (Microsoft Kinect [63] and UHG-08LX laser range sensor [64]) and cameras. The distance sensor is accurate within ±30 mm within 1 m, and within 3% of the detected distance between 1 and 8 m. The angular resolution is approximately 0.36 degrees, and other specifications can be found in [64]. Specifications of Kinect sensors can be found in [63]. The robots were programmed in ROS [65]. Both are differential drive robots. We adopt the motion model from our previous work [52] and briefly describe here. The distance between the left and the right wheel is W r , and the robot state at position P, is given as [x, y, θ]. From Figure 15c, turning angle β is calculated as and the radius of turn R as The coordinates of the center of rotation (C, in Figure 15c) are calculated as The new heading θ is from which the coordinates of the new position P are calculated as If r = l, i.e., if the robot motion is straight, the state parameters are given as and ñ x y Figure 16 shows the experiment environment and its grid map. As shown in Figure 16a, the environment was conducted in a narrow corridor of our university. The corresponding grid map is shown in Figure 16b, in which the actual experiment section of the corridor is marked and shown enlarged.

Non-Smoothed Collision Avoidance and Navigation (Real Environment with Actual Robots)
Path smoothing in open and static environments can easily be demonstrated. However, real-time path smoothing for multiple robots in a dynamic and realistic scenarios is more challenging. We tested the proposed path smoothing method in a dynamic multi-robot collision avoidance scenario. In the experiment, the Pioneer P3DX robot and Turtlebot robot navigated towards each other in the narrow corridor and tried to avoid collision. We compared the trajectories in both traditional (non-smoothed) and the proposed (smoothed) method.
The direction of movement of both the robots is indicated in Figure 16b. Pioneer P3DX robot robot navigated from North to South direction with the starting point marked as P. The Turtlebot robot navigated in the opposite direction in the same corridor from South to North with the starting point marked as T in Figure 16b. The width of the corridor was 234 cm, and both the robots were programmed to navigate the center of the corridor (i.e., ≈ 127cm from either of the walls). The threshold collision avoidance distance was set to 4 m. Once an obstacle at this distance is found, the robots were programmed to avoid it using the traditional and proposed smooth algorithms. Figure 17 shows the timely snapshots ( Figure 17(ns-1), · · · , Figure 17(ns-30)) of the experiment with traditional path planning and navigation. For the ease of readability, we have summarized the various actions take by the two robots at different time-steps in Figure 17 in Table 6. The flowchart of the non-smoothed collision avoidance and navigation is shown in Figure 18a.
In the traditional navigation without smoothing, the robots stopped when the frontal distance was less than the threshold distance. Then, the robots took a sharp 90-degree turn towards the left, moved towards the wall, stopped, and again took a 90-degree right turn. The robots crossed-over, and then repeated the process to come to the center of the corridor from where they continued to navigate towards their respective goals.
Readers are advised to see the attached video to see the traditional navigation and multi-robot collision avoidance. It is clear that such a robot navigation with abrupt stops, and sharp turns, is not natural, potentially hazardous for the items carried on the robot, and even dangerous for people moving in the vicinity.  Figure 17. Timely snapshots of the non-smoothed navigation and collision avoidance. The robot actions at different steps are summarized in Table 6. Please see the supplementary video. Table 6. Description of robot actions at different steps (non-smooth case of Figure 17).  Figure 19 shows the timely snapshots ( Figure 19(sm-1), · · · , Figure 19(sm-30)) of the navigation with the proposed smoothing algorithm. The experiment was conducted in the same environment with the same direction, start, and goal locations of Turtlebot and Pioneer robots. The flowchart of the smoothed collision avoidance and navigation is shown in Figure 18b.

Smoothed Collision Avoidance and Navigation (Real Environment with Actual Robots)
The two robots approached each other while traversing the center of the corridor. When the frontal threshold distance was less than the threshold distance, the robots essentially generated three control points over which the tangential curve could be induced. As shown in Figure 18b, if W is the width of the corridor, the robot is traversing the corridor on a line { W 2 , y}, y ∈ IR map the robot generates a set (P-Set1) of three points: Essentially, the point A = ( W 2 , y) and B = ( W 2 , y+ψ 1 ) lies on the straight line on the center of the corridor. Point C =( W λ , y + 2ψ 2 ) lies on the left side of the corridor. The parameter λ controls the distance of the trajectory from the left wall of the corridor. For collision avoidance, λ is generally set to 4, which generates a trajectory at a distance of W 4 from the left wall of the corridor. The parameter ψ 1 controls the turning point in front of the robot. The parameter ψ 2 controls the point on the frontal left side of the robot. The effect of the parameter ψ is explained later. From the point set (P-Set1), an ITC curve is generated and induced in the original trajectory.
Once the robots have shifted left, they move in a straight line and cross each other. Once the robots have crossed over, the robots need to get back to the center of the corridor again. This is done by generating a set (P-Set2) of three points: An ITC is generated again from set (P-Set2), and the robots smoothly traverse it to come back to the center of the corridor and navigate towards their respective goals.
We have summarized the various actions taken by the two robots at different time-steps in Figure 19 in Table 7 Figure 19. Timely snapshots of ITC based smoothed navigation and collision avoidance. The robot actions at different steps are summarized in Table 7. Please see the supplementary video. Table 7. Description of robot actions at different steps (smooth case of Figure 19). Figure 19(sm-1)∼(sm-7)

Figure Action Description
Move Straight Robots navigate towards each other  Figure 20 shows the trajectories of the two robots. In Figure 20, 'T and 'P show the starting positions of Turtlebot and Pioneer robots, respectively. The trajectory of Turtlebot is shown in red, whereas the trajectory of Pioneer robot is shown in blue. The original trajectories are shown in black. As shown in Figure 16, the width of the corridor was 234 cm, and both the robots initially started from the center of the corridor. The center line is shown as a dotted line in Figure 20.
In the experiment shown in Figure 20, we set the parameters ψ 1 = ψ 2 = 50. The Turtlebot's starting position of turn was (x = 117, y = 0) and the Pioneer robot's starting position at a smooth turn was (x = 117, y = 400). Setting the values in Equation (42) Figure 20). Figure 20 also shows a zoomed out section of the trajectory to visually confirm the induced G 1 tangential curves. In the experiment, the same values of both the parameters ψ 1 and ψ 2 were set for both of the robots. Hence, the generated trajectories in Figure 20 are symmetrical. The smooth ITC trajectories were generated in 39.73 ms on Ubuntu 16.04 with Core-i7 processor and 16 GB RAM using Python 3.6 language. This is fast enough for real-time applications. Figure 20. Trajectories of the two robots. Pioneer P3DX and Turtlebot are marked as P and T, respectively. The parameters were set as ψ 1 = ψ 2 = 50.

Effect of ψ on a Smooth Trajectory
We now discuss the effect of parameters ψ 1 and ψ 2 on the smoothness of ITC curves. The parameter ψ 1 controls the robot's frontal starting point of trajectory generation. Parameter ψ 2 is crucial in controlling the curvature of the smooth trajectories. This is explained using Figure 21, in which the robot is assumed to be on the center of the corridor shown as a dotted line. Point A marks the starting of the smooth trajectory generation, and the second point B is at a distance of ψ 1 from point A. The points C, C , and C are generated using different values 50, 75, and 100 of ψ 2 , respectively.
It should be noted that point B is common for the different ITC curves generated in Figure 21. However, the values of ψ 2 were different generating different set of points on the left side of the corridor. The blue ITC curve in Figure 21 corresponds to ψ 2 = 50. The green and magenta ITC curves corresponds to ψ 2 = 75, and ψ 2 = 100, respectively. The seed point set for blue ITC curve generation was P-Set1 = {A : (117, 0) The radius of the three curves seen in Figure 21 are shown in the plot of Figure 22a. Similarly, the curvatures of the three curves are given in Figure 22b. It is clear that increasing the value of ψ 2 generates an ITC curve with lesser curvature. The actual radii and curvatures of the three curves are shown in Figure 22a

Effect of λ on Smooth Trajectory
The parameter λ in Equation (42) controls the distance of the trajectory from the left wall of the corridor. Figure 23 shows the smooth ITC trajectory generation with different values of λ. For generating the left turn, the condition is: where W robot is the width of the robot, and δ thresh is the safety threshold from the corridor's left wall. Setting λ = 2 generates points on the straight line in the center of the corridor which does not require smoothing. As shown in Figure 23, the black ITC curve marked 'A' is generated with λ = 2.5, and is closest to the corridor's center. On the other hand, the magenta ITC curve marked 'F' is generated with λ = 12, and is the farthest from the corridor's center and closest to the corridor's left wall. The other curves with different values of λ are also shown. The radii and curvatures of the different curves are shown in Figure 24a,b, respectively. The same parameter is also used for generating the smooth right turn of the robot. Figure 25 shows right turn trajectory generation. The value of λ for right turn generation is As shown in Figure 25, the black ITC curve marked 'A' is generated with λ = 1.8, and is closest to the corridor's center. On the other hand, the magenta ITC curve marked 'F' is generated with λ = 1.05, and is the farthest from corridor's center, and closest to the corridor's right wall. Setting λ = 1 generates a trajectory touching the right wall of the corridor. The other curves with different values of λ are also shown. The radii and curvatures of the different curves are shown in Figure 26a,b, respectively.
Thus, depending on the width of the robot and the obstacle ahead, appropriate value of λ can be chosen to avoid collision, for both right and left turns.

ITC as a Path Smoothing Extension
An ITC path smoother is proposed to work in conjunction with traditional path planning algorithms, and not to replace them. The overall idea of ITC as an 'extension' is shown in Figure 27. The input to the global path planner is: (a) map with obstacles and free space marked, (b) start, and (c) goal location in the map. Any of the global path planners like A*, D*, PRM, or RRT path planners can be used. The output of the global path planner is the input to the proposed ITC path smoother. The ITC smoother first detects the sharp turns and then smooths only the turns while keeping the straight segments straight. It can be seen in Figure 27 that the map information is also input to the ITC block. This is because ITC trajectories are generated keeping a safe distance from the obstacles. Thus, a map which marks the location of obstacles is required. The outputs of the ITC smoother are smooth trajectories whose angular turns have been smoothed out. In this way, the proposed ITC algorithm can be used as an extension with existing planners. A major benefit of such extension is that there is no need to replace the already tested planning algorithms used with the robots. The embedded software used in robot platforms is generally tightly coupled with the hardware and replacing the existing algorithms with new algorithms is generally avoided unless absolutely necessary as additional testing and benchmarking must be performed for the new algorithm. In this regard, the proposed ITC extension will integrate easily with existing algorithms. In addition, there is a lot of scope to customize the ITC smoother as generation of smooth trajectories is done on a part-by-part basis and there is much less computational overhead.

Conclusions
We presented a new algorithm called ITC for smooth trajectory generation for mobile robot robots. The algorithm can smooth out the sharp turns in the path generated by the global path planner. The trajectories generated by the algorithm are tangential to the path, thus preserving G 1 continuity. The curves can be generated fast in real-time by using only three key points on the path. Safety is embedded in an ITC algorithm, and it is guaranteed that the robot maintains a safe threshold distance from the obstacles, which is a crucial feature of mobile robot navigation. An essential feature of the algorithm is that only the turns are smoothed out, while the straight paths are kept straight. This feature is highly desired in case of mobile robot navigation in narrow corridors. We discussed ITC curve generation for both 2D path smoothing for UGVs, and 3D path smoothing for UAVs.
We compared the proposed ITC algorithm with interpolation based approaches. The comparison shows that ITC paths maintain a safe distance from the walls of the corridors and enables the robot to move in the center. Unlike interpolation algorithms, it is easier to define the control points in ITC algorithm. Moreover, unlike interpolation based methods, changing one point does not alter the whole path. This is another merit of the proposed ITC algorithm-that it is easy to define control points, and smoothing is done on a part-by-part basis for each turn. Thus, smoothing one section of the path with sharp turns does not affect other paths. It is difficult to follow such an approach in interpolation based algorithms as smoothing has to be done on a global basis, otherwise discontinuities or kinks get introduced in the overall path. The proposed ITC algorithm has a disadvantage that G 2 continuity is not guaranteed. This may be a limitation for mobile robots moving at high speed. However, for lower to medium speed robot navigation, this is not a problem. In fact, robots can traverse the straight sections of the ITC path with high speed, and slow down at the turns while executing a smooth turn, which is normally the case seen in robot's navigation to ensure safety due to a change in view, and the sudden appearance of moving obstacles at turn points. We showed how ITC curves can be generated for different curvatures for smooth left and right turns by easily defining the parameters. Finally, we showed a complex real world scenario of collision avoidance with real robots. We compared the traditional navigation of the robots for collision avoidance with the proposed ITC based navigation and collision avoidance. It was clear that traditional navigation required the robot to stop and execute sharp turns. However, the ITC based navigation was smooth, natural, and robots could avoid collision by computing the smooth trajectories in real-time. Our current work presented a real-world 2D navigation of mobile robots and complex scenarios of collision avoidance. In the future, we will test the algorithm with multiple UAVs. A ground robot's 2D navigation and collision avoidance will be compared to other algorithms with actual robots. In addition, apart from collision avoidance, we also consider trajectory smoothing of robotic arm manipulators as future work.