Keywords

1 Introduction

Over the past decades, industrial robots have been widely used in many fields, like aircraft industry and automobile manufacturing industry. Typical applications of industrial robots include welding, painting, assembly and material handling, etc. These kinds of tasks require high accuracy in positioning and trajectory planning. Trajectory planning is one of the most important issues of robotics. The main task of path planning for manipulator is to achieve an optimal trajectory with good dynamic and kinematic properties. It is worth mentioning that a proper trajectory can greatly reduce motion time and minimize energy consumption of robot. Robot trajectory planning has developed toward high-speed moving and high-precision controlling with the sophisticated application of interpolation technology in CNC machining system recently [1]. Various interpolation algorithms have been employed to control the robot motion trajectory [2]. Traditional interpolation of free curve usually depends on linear or circular interpolation, but there are many defects with this process [3]. In order to improve interpolation accuracy, a large number of small linear and circular segment were generated, which posed great challenge to data transmission and real-time communication of robot controlling system. Researchers have tried different kinds of curves for interpolation to overcome this problem.

Bézier curves were first developed for car surfaces design applications [4]. Once the control points are given, Bézier curve will be formed uniquely by the Bernstein basic functions and cannot be modified any more [5]. The shape of fitting curve varied with the change of control points, which hindered its application in trajectory planning to some extent. The knot vector of B-Spline curves partially overcome this deficiency. Moreover, B-Spline curves share many important properties that were particular suitable for trajectory planning [6, 7] and they are also fundamental to data fitting and approximation. B-Spline act as a special case of NURBS, the weighs of NURBS could be used to modify curve shape and thus NURBS has gained more application than B-Splines in engineering. Therefore, the concept of NURBS interpolation and its employability have been the focus of considerable research internationally [8].

Huo and Poo [9] have developed an algorithm to estimate the contour error of NURBS interpolation. In his algorithm, series of reference points adjacent to current interpolation position were used to reconstruct the NURBS curve. Contour error estimation was depended on the minimum distance between NURBS curve and present location. Park et al. [7] presented two-stages interpolation approach that used to compensated for interpolation errors. The interpolation result was confined by velocity, acceleration or jerk equation. Ahmad et al. [10] pointed out the constant federate and chord errors accuracy between two adjacent interpolation points along NURBS curves was difficult to achieve owing to the non-uniform mapping, and he has worked out a solutions of intelligent NURBS interpolation for CNC machining systems. Parametric interpolation based on NURBS has been extensively applied in CNC system but rarely used in robot trajectory planning. Traditional robot trajectory planning algorithms mainly rely on linear or circular interpolation, which involved time-consuming and low accuracy curve and was not suitable for real-time planning. In this case, the study proposed a novel high-speed trajectory planning algorithm adopting velocity adaptive control strategy to improve the path planning accuracy, which is also the novelty and contribution of this paper.

Generally, the trajectory planning algorithm was divided into two stages: curve fitting stage and trajectory interpolating stage. In the first stage, a smooth curve passing through the sample points in sequence was constructed using NURBS curve. Then large amounts of refining interpolated points would be generated based on the first stage curve according to interpolation cycle. Chord error and interpolation velocity were monitored real-time and the consecutive interpolation point chord error was pre-calculated. The interpolation movement would continue if chord error met the accuracy requirements, otherwise velocity of end-effector (namely interpolated velocity) would be lowered to guarantee the accuracy was controlled under the error range. Then the author employed 4-DOF free floating space robot to verify the availability of the algorithm.

Trajectory planning tasks of robot manipulator mainly includes the following three aspects:

  1. (1)

    Description of robot trajectory.

Operators just need to give simple description of manipulator movement rather than concrete trajectory mathematical function expression. For example, the initial and final pose (position and orientation) of end-effector were given, namely point to point control (PTP) [11], or several demonstrating points were known, the end-effector was required to travel through them by sequence, called continuous path control (CP) [12].

  1. (2)

    Choice of interpolation algorithm.

Select proper interpolation algorithm according to above robot trajectory description. Other requirements such as the constraints of maximum velocity and acceleration or movement accuracy should also be satisfied. Then a series of interpolation points would be generated by the interpolation algorithm, and the real-time data was returned to the robotic control system.

  1. (3)

    Inverse kinematic solution of robot joints.

The inverse kinematics solution of manipulator is realized by applying the inverse transformation methodology according to interpolation cycle [13]. Interpolation points will be transformed from working space to joint space coordinate system, so the dynamic properties of each joint can be determined. The author has employed D-H (Denavit-Hartenberg) [14] method to make a kinematics analysis of robot during this process.

2 NURBS and Curve Interpolation

This part was organized as follows. The definition of NURBS was shown in Sect. 2.1. Computational process relevant to curve fitting based on the sample data was presented in Sect. 2.2, accumulating chord length parametrization methodology [15] was adopted to construct the knot vectors according to the demonstrating points. All control points would be obtained by using control points matrix with weighs. After curve fitting stage, a NURBS trajectory curve was obtained. Section 2.3 gave a brief analysis of trajectory interpolation using the acquired NURBS fitting curve.

2.1 Definition of NURBS

A NURBS curve is defined by four components: knot vector, curve degree, control points and weight [16].

$$ p\left( u \right) = \frac{{\sum\nolimits_{i = 0}^{n} {d_{i} \omega_{i} } N_{i,k} \left( u \right)}}{{\sum\nolimits_{i = 0}^{n} {\omega_{i} } \omega_{i} N_{i,k} \left( u \right)}} $$
(1)

where \( d_{i} \left( {i = 0,1, \ldots ,{\text{n}}} \right) \) is control point, \( \omega_{i} \) is the corresponding weight of \( i{\text{th}} \) control point and k is the degree of NURBS curve, the first and last weight factors \( \omega_{0} ,\omega_{n} > 0 \), and others \( \omega_{i} \ge 0 \), adjacent k weight factors cannot be zero simultaneous in case of the denominator be equal to zero. \( N_{i,k} \left( u \right) \) is the basic function of B-spline defined on knot vector \( {\text{U}} = \left[ {u_{0} ,u_{1} , \ldots ,u_{i} , \ldots ,u_{n + k + 1} } \right] \), recursively defined by de Boor algorithm:

$$ N_{i,0} \left( u \right) = \left\{ {\begin{array}{*{20}c} {0,} & {if\quad u_{i} \le u \le u_{i + 1} } \\ {1,} & {otherwise} \\ \end{array} } \right. $$
(2)

where

$$ N_{i,k} \left( u \right) = \frac{{u - u_{i} }}{{u_{i + k} - u_{i} }}N_{i,k - 1} \left( u \right) + \frac{{u_{i + k + 1} - u}}{{u_{i + k + 1} - u_{i + 1} }}N_{i + 1,k - 1} \left( u \right) $$
(3)

In this paper, the author adopted three degrees NURBS to fit the demonstrating trajectory points. Assuming that the given demonstrating points were \( \left\{ {q_{0} ,q_{1} , \ldots ,q_{n - 2} } \right\} \). The procedures of generating a motion trajectory of three degrees NURBS curve \( p\left( u \right) \) was shown in Fig. 1.

Fig. 1
figure 1

Flow chart of NURBS curve fitting

2.2 Calculation of Control Points

In practical application, the non-periodic knot vector usually follows the form [17]:

$$ {\text{U}} = \left[ {\upalpha, \ldots\upalpha,{\text{u}}_{{{\text{k}} + 1}} , \ldots ,{\text{u}}_{\text{n}} ,\upbeta, \ldots\upbeta} \right] $$
(4)

where \( \upalpha \) and \( \upbeta \) appear (k + 1) times at the endpoint. The special arrangement guarantees the NURBS curve would pass through the initial and final endpoint, which coincides with the initial and final demonstrating trajectory point. In this paper, it is assumed that the knot values lie in \( u \in \left[ {0,1} \right] \), where (n + 1) represents the number of control points, and the number of demonstrating point is (n − 2).

According to NURBS Convex Hull property [18], the interpolation polynomial in knot span \( \left[ {u_{i} ,u_{i + 1} } \right] \) is merely under the control of points \( d_{i - k} ,d_{i - k + 1} ,, \ldots ,d_{i} \). In this paper, the author selected (n − 1) demonstrating points on the trajectory, so the NURBS curve p (u) of degree k was defined by (n + 1) control points and a knot vector \( {\text{U}} = \left[ {u_{0} , u_{1} , \ldots ,u_{n + 4} } \right] \) with the first and last four knots clamped.

$$ \left\{ {\begin{array}{*{20}l} {u_{0} = u_{1} = u_{2} = u_{3} = 0,} \\ {u_{i + 3} = u_{i + 2} + \Delta p_{i} ,\quad i = 1,2, \ldots ,n - 2} \\ {u_{n + 1} = u_{n + 2} = u_{n + 3} = u_{n + 4} = 1} \\ \end{array} } \right. $$
(5)

where

$$ \Delta p_{i} = \frac{{p_{i} - p_{i - 1} }}{s} $$
(6)

where \( \Delta p_{i} \) is forward differential vector [19], s is accumulating chord length. The relationship between demonstrating point \( q_{i} \) and control point \( d_{i} \) is shown as follows:

$$ q_{i} = \sum\limits_{j = i}^{i + 2} {d_{j} N_{j,3} } \left( {u_{i + 3} } \right),\quad i = 0,1, \ldots ,n - 1 $$
(7)

So, the control points can be obtained by matrix equation according to the equation with two additional boundary conditions (7), the calculation matrix is shown:

$$ \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {N_{0,3} \left( {u_{3} } \right)} & {N_{1,3} \left( {u_{3} } \right)} \\ 0 & {N_{1,3} \left( {u_{4} } \right)} \\ \end{array} } & \cdots & {\begin{array}{*{20}c} 0 & 0 \\ 0 & 0 \\ \end{array} } \\ \vdots & \ddots & \vdots \\ {\begin{array}{*{20}c} 0 & 0 \\ 0 & 0 \\ \end{array} } & \cdots & {\begin{array}{*{20}c} {N_{n,3} \left( {u_{n + 1} } \right)} & 0 \\ {N_{n,3} \left( {u_{n + 2} } \right)} & {N_{n + 1,3} \left( {u_{n + 2} } \right)} \\ \end{array} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {d_{0} } \\ {d_{1} } \\ \end{array} } \\ {\begin{array}{*{20}c} \vdots \\ {\begin{array}{*{20}c} {d_{n} } \\ {d_{n + 1} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {q_{0} } \\ {q_{1} } \\ \end{array} } \\ {\begin{array}{*{20}c} \vdots \\ {\begin{array}{*{20}c} {q_{n - 2} } \\ {q_{n - 1} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right] $$
(8)

Any coordinates of points on NURBS curve could be further obtained by Eq. (9):

$$ \left\{ {\begin{array}{*{20}c} {x\left( u \right) = \frac{{\sum\nolimits_{j = i - 3}^{i} {\omega_{j} x_{j} } N_{j,3} \left( u \right)}}{{\sum\nolimits_{j = i - 3}^{i} {\omega_{j} N_{j,3} } \left( u \right)}}} \\ {y\left( u \right) = \frac{{\sum\nolimits_{j = i - 3}^{i} {\omega_{j} y_{j} } N_{j,3} \left( u \right)}}{{\sum\nolimits_{j = i - 3}^{i} {\omega_{j} N_{j,3} } \left( u \right)}}} \\ {z\left( u \right) = \frac{{\sum\nolimits_{j = i - 3}^{i} {\omega_{j} z_{j} } N_{j,3} \left( u \right)}}{{\sum\nolimits_{j = i - 3}^{i} {\omega_{j} N_{j,3} } \left( u \right)}}} \\ \end{array} } \right. $$
(9)

2.3 Analysis of Trajectory Interpolation

A NURBS curve p(u) could be obtained based on the above calculating procedures. In order to interpolate the trajectory of robot end-effector, the first step was to determine the curve interpolation parameter \( u_{i} \). Taylor expansion method was applied in interpolation algorithm. The trajectory interpolation steps and corresponding position of end-effector in working space coordinate system could be calculated [20], interpolation increment \( \Delta u \) should meet the requirement of manipulator velocity in each cycle. \( \Delta u \) is calculated by following equation:

$$ u_{i + 1} = u_{i} + T \cdot \dot{u}_{i} + \left( {\frac{{T^{2} }}{2}} \right) \cdot \ddot{u}_{i} + o\left( {T^{2} } \right) $$
(10)

where T is interpolation cycle, \( T = t_{i + 1} - t_{i} \).

Assuming that:

$$ x = P_{x} \left( u \right),\quad y = P_{y} \left( u \right),\quad z = P_{z} \left( u \right) $$
(11)

So,

$$ \frac{du}{dt} = \frac{V\left( t \right)}{dP/du} = \frac{V\left( t \right)}{{\sqrt {\dot{x}_{i}^{2} + \dot{y}_{i}^{2} + \dot{z}_{i}^{2} } }} $$
(12)
$$ \frac{{d^{2} u}}{{dt^{2} }} = \frac{dV\left( t \right)/dt}{{\sqrt {\dot{x}_{i}^{2} + \dot{y}_{i}^{2} + \dot{z}_{i}^{2} } }} - \frac{{V^{2} \left( t \right)\left( {\dot{x} \cdot \ddot{x} + \dot{y} \cdot \ddot{y} + \dot{z} \cdot \ddot{z}} \right)}}{{\left( {\dot{x}_{i}^{2} + \dot{y}_{i}^{2} + \dot{z}_{i}^{2} } \right)^{2} }} $$
(13)
$$ \Delta u_{i} = \frac{{\Delta L_{i} }}{{\sqrt {\dot{x}_{i}^{2} + \dot{y}_{i}^{2} + \dot{z}_{i}^{2} } }} - \frac{{\left( {\Delta L_{i} } \right)^{2} }}{2} \cdot \frac{{\left( {\dot{x} \cdot \ddot{x} + \dot{y} \cdot \ddot{y} + \dot{z} \cdot \ddot{z}} \right)}}{{\left( {\dot{x}_{i}^{2} + \dot{y}_{i}^{2} + \dot{z}_{i}^{2} } \right)^{2} }} $$
(14)

where V(t) was the velocity of robot end-effector.

$$ \Delta L_{i} = V\left( {t_{i} } \right) \cdot T $$
(15)

3 Velocity Adaptive Interpolation Algorithm

This section first explained the definition of chord error and described the overall structure of trajectory planning scheme. Then velocity adaptive interpolation algorithm was discussed to make a balance between trajectory interpolation velocity and interpolated accuracy.

3.1 Chord Error

In order to improve the accuracy of interpolation, chord error should be controlled under the range. No radial error appears as all interpolation points locate on NURBS curve [20]. Trajectory planning errors mainly come from chord error by interpolation step size as a unit. There are two different methods to calculate the chord error [21], \( \delta_{i1} ,\delta_{i2} \) is shown in Fig. 2. The first method uses curvature of the point \( p\left( {u_{i} } \right) \) to calculate the chord error, which is relevant to interpolation step \( \Delta L_{i} \) and curvature \( \rho_{i} \). The mathematical equation between them is Eq. (16).

Fig. 2
figure 2

Chord error in near-arc approximation

$$ \Delta L_{i} = \sqrt {4\delta_{i} \left( {2\rho_{i} - \delta_{i} } \right)} $$
(16)

where \( \rho_{i} \) is the curvature of \( p\left( {u_{i} } \right),\Delta L_{i} \) is interpolation step, which is also defined by Eq. (15).

Generally, \( \rho_{i} \gg \delta_{i} \) in the formula, so the chord error can be solved in Eq. (17).

$$ \delta_{i} = \rho_{i} - \sqrt {\rho_{i}^{2} - \frac{{\Delta L_{i}^{2} }}{4}} \approx \frac{{\left( {V\left( {t_{i} } \right) \cdot T} \right)^{2} }}{{8\rho_{i} }} $$
(17)

where

$$ \rho_{i} = \frac{{\left[ {\left[ {x^{\prime } \left( {u_{i} } \right)} \right]^{2} + \left[ {y^{\prime } \left( {u_{i} } \right)} \right]^{2} + \left[ {z^{\prime } \left( {u_{i} } \right)} \right]^{2} } \right]^{{\frac{3}{2}}} }}{{\left[ {\left[ {\begin{array}{*{20}c} {x^{\prime } \left( {u_{i} } \right)} & {y^{\prime } \left( {u_{i} } \right)} \\ {x^{\prime \prime } \left( {u_{i} } \right)} & {y^{\prime \prime } \left( {u_{i} } \right)} \\ \end{array} } \right]^{2} + \left[ {\begin{array}{*{20}c} {y^{\prime } \left( {u_{i} } \right)} & {z^{\prime } \left( {u_{i} } \right)} \\ {y^{\prime \prime } \left( {u_{i} } \right)} & {z^{\prime \prime } \left( {u_{i} } \right)} \\ \end{array} } \right]^{2} + \left[ {\begin{array}{*{20}c} {z^{\prime } \left( {u_{i} } \right)} & {x^{\prime } \left( {u_{i} } \right)} \\ {z^{\prime \prime } \left( {u_{i} } \right)} & {x^{\prime \prime } \left( {u_{i} } \right)} \\ \end{array} } \right]^{2} } \right]^{{\frac{1}{2}}} }} $$
(18)

Another method of calculating chord error is a direct estimation method shown \( \delta_{i2} \) in Fig. 2. The \( \delta \) expression is shown in Eq. (19)

$$ \delta_{i} = \left| {P\left( {\frac{{u_{i} + u_{i + 1} }}{2}} \right) - \frac{{P\left( {u_{i} } \right) + P\left( {u_{i + 1} } \right)}}{2}} \right| $$
(19)

Obliviously, the second method is not as precise as the first one, so the author adopted the first method to calculate chord error in this paper.

3.2 Design of Trajectory Planning Interpolator

The architecture of trajectory planning interpolator consists of two modules: parameter calculation module based on the given demonstrating points and velocity adaptive adjustment module, which is shown in Fig. 3. As is displayed in Fig. 3, the input of the interpolator includes demonstrating points, maximal allowance of interpolation chord error, maximum permissible velocity and interpolation cycle. The geometric information of NURBS includes knots vector, control points and corresponding weights as aforementioned.

Fig. 3
figure 3

Architecture of trajectory planning interpolator

Parameter calculation module is applied to compute relevant parameter of curve fitting based on sampling points. Velocity adaptive adjustment module was working under the conditional of chord error going out of range. It has been divided into two parts: chord error detection part and re-interpolation part. Real time detection of interpolation chord error is based on the fitting geometrical curve of NURBS. At each interpolation point, the chord error is compared with the given tolerance. If the chord error does not exceed the required range, the interpolator will continue to interpolate the following points along the path, otherwise velocity adaptive adjustment module will lower the manipulator velocity by an increment until the chord error meet the requirement.

The trajectory planning algorithm is conducted by the following steps:

  1. (1)

    Using the given demonstrating points to calculate relevant parameters available for curve fitting based on NURBS.

  2. (2)

    Make a density of \( u_{i} \) according to the interpolation cycle between [0,1].

  3. (3)

    Calculate the knot value \( u_{i + 1} \) from \( u_{i} \) and end-effector’s velocity V.

  4. (4)

    Calculate the chord error \( \delta_{i} \) at the point of \( u_{i}. \)

  5. (5)

    Make a comparison of \( \delta_{i} \) and \( \delta_{max} \), if \( \delta_{i} < \delta_{max} \) jump to next step. Otherwise, lower the velocity by an stable increment and to make the chord error gradually meet requirements.

  6. (6)

    Exit the velocity adaptive adjustment module with the original velocity to interpolated the consecutive cycle.

  7. (7)

    Make a dynamic analysis of manipulator and acquire joints movement using the inverse transformation method.

  8. (8)

    Transmit the kinematic parameter to robot controlling system and console output control singles to motors.

For the trajectory planning problems based on given demonstrating points, the path interpolation points are continuously generated according to the above steps. Corresponding interpolation command will be sent to the robot servo system to drive the robot joints movement. Generally, the longer of interpolation steps is, the larger of chord error will be, so a designed scheme of closed loop controlling system for chord error detection is set up.

4 Experiment Verification

In this part, a 4-DOF free floating space robot (FFSR) was selected as the research object to testify the availability of the trajectory planning algorithm, as it is presented in Fig. 4. This robot consists of a free-floating platform and a manipulator with its first link mounted on the base. No external forces are applied on this system. Manipulator with a pneumatic nozzle installed at the end-effector is used to adjust the pose and position of the platform when the satellite needs to change orbit in space. Powerful gasses expelled by the pneumatic nozzle would generate great recoil force to realize the change of satellite in different operational orbits, which requires precise control of end-effector trajectory.

Fig. 4
figure 4

4-DOF free floating space robot

In order to describe the kinematic properties such as displacement, velocity and acceleration of different joints, Denavit-Hartenberg (D-H) modeling approach is introduced to construct the robot kinematical equation. A transformation matrix from initial to final position is applied to describe the spatial relationship of different links, which simplifies the analysis process into 4*4 homogeneous transformation matrix that link the working space coordinate with joints space coordinate. Figure 5 is the link coordinate system, and Table 1 is the relevant parameters of D-H methodology.

Fig. 5
figure 5

The construction of D-H coordinate system

Table 1 D-H kinematic parameters for robot manipulator

The production of the link transformations yields forward kinematic solution of robot manipulator. The transformation matrix between the platform and end effector of the free floating space robot is defined by Eq. (20)

$$ {}_{4}^{0} T = {}_{1}^{0} T\left( {q_{1} } \right){}_{2}^{1} T\left( {q_{2} } \right){}_{3}^{2} T\left( {q_{3} } \right){}_{4}^{3} T\left( {q_{4} } \right) $$
(20)

So, the joint variable values with the given pose and position of robot end effector can be obtained by inverse kinematics solution transformations. In order to evaluate the proposed interpolated algorithm, eleven demonstrating points located in robotic working space were chosen for case study. Corresponding interpolation parameters can be calculated following the law of Eqs. (1)–(8).

  • The sequential control points and weights are shown in Table 2.

    Table 2 Control points and weigh of NURBS curve
  • The knots vector is:

    $$ U = \left\{ {\begin{array}{*{20}c} {0,0,0,0,0.08,0.17,0.25,0.34,0.42,} \\ {0.5,0.59,0.67,0.75,0.86,0.93,1,1,1,1} \\ \end{array} } \right\} $$
  • The interpolation cycle is \( T = 2\;{\text{ms}} \).

  • The maximal allowed chord error is \( \delta = 2\;\upmu \text{m} \).

Curve interpolation of demonstrating points is shown in Fig. 6. In the following, the above curve trajectory is designed for robot end-effector automatic tracking using the velocity adaptive interpolation algorithm. Then the proposed motion planning structure including the constant and variable velocity is used to interpolate the NURBS curve to obtain the exact position of end-effector.

Fig. 6
figure 6

Curve interpolation of demonstrating points

The real-time pose and position of robot end-effector can be measured by sensors, then compare the interpolation chord error curves in two different occasions: with and without velocity adaptive adjustment. The result is shown in Fig. 7. According to the figure, the maximal chord error has jumped with \( 2.8009\;\upmu {\text{m}} \) on time 0.3897 s without adaptive velocity adjustment. The velocity adaptive adjustment module didn’t work until time points 0.3897 s as the chord error wasn’t going beyond the range, so the chord error curves overlapped together. After the chord error was limited, the interpolation was automatically lower the velocity and thus two errors curves were obviously different.

Fig. 7
figure 7

Chord error measurement during interpolation

Figure 8 showed the angular velocity curves of all joints with an abrupt decrease at the time 0.3897 s. It is obvious that the sharp changes in angular velocity curves were in consistent with chord error juming in Fig. 7. For velocity adaptive trajectory planning algorithm lowered manipulator velocity when the chord error exceeded the required mixmial value. The end-effector travels along the NURBS fitting curve with the maximum feedrate no more than \( V_{max} = 500\;\left( {\text{mm/s}} \right) \) at each sampling step. The experienmental result have verified the correctness of the algorithm.

Fig. 8
figure 8

Angular velocity of robot joints

5 Conclusions

In the paper, a novel robot trajectory planning algorithm based on velocity adaptive adjustment is introduced using NURBS curve. The propose of this algorithm is to present a high-accuracy trajectory planning methodology on the basis of several demonstrating points, maxmimal chord error in this paper was set as \( 2\;\upmu {\text{m}} \), so tracking errors of the NURBS fitting curve is smaller than \( 2\;\upmu {\text{m}} \). In this way, the trajectory planning algorithm is also applicable to a demonstrating curve interpolation.

The algorithm is divided into two modules: parameter calculation module based on the given demonstrating points and velocity adaptive adjustment module. Detailed calculation process of curve fitting and interpolation was given, and finally the author adopted a 4-DOF free floating space robot to testify the adaptation of the interpolated algorithm, the result confirmed that the designed algorithm have a good property to reduce the interpolating error by adjusting the velocity. Future work will mainly be focused on how to optimize the acceleration and jerk based on this algorithm.