Abstract

This study describes a trajectory planning method based on execution time, acceleration, and jerk to ensure that a glass-handing robot runs smoothly at execution time. The minimised objective function consists of the weighted sum of the square of the integral of the execution time, the integral of the acceleration, and the integral of the jerk, all of which are obtained through the weighted coefficient method. A three-dimensional kinematics model of the glass-handing robot is then established and nonuniform fifth-order -splines are used to interpolate its path points. The acceleration and jerk are expressed as functions of time through mathematical simulation. Simulation results show that the designed method for robot trajectory planning not only improves the working efficiency of the glass-handing robot but also ensures that it runs smoothly.

1. Introduction

In the process of producing glass, the glass vessel is transferred from an annealing furnace to a conveyor belt for further processing. The transfer of the product in the process is currently accomplished mainly through manual operation, which is characterised by low efficiency, high labour costs, and high working intensity. The glass-handing robot can automatically transfer glass from the annealing furnace to the conveyor belt, but the vibration generated during its high-speed movement greatly influences the quality of the glass. In particular, the vibration can shake the support bracket, which sustains the main part of the robot at the start and the stop phases. When serious vibration arises during transportation, the glass may be easily damaged, which in turn increases its defect rate. Meanwhile, the vibration also accelerates the loss of robotic parts, thereby reducing the service life of the robot. The robot trajectory optimisation method is a key factor to improve the stability and reduce the vibration of the robot. This study explores how to use the robot trajectory optimisation method to plan a reasonable acceleration in the execution time, smoothen the jerk, and ultimately reduce vibration.

At present, many robot trajectory optimisation methods unilaterally reduce the execution time to optimise the objective function [14] or unilaterally decrease the energy consumption of the robot [57]. These methods can improve only the unilateral performance of the robot but not its comprehensive performance. Since the development of these methods, Verscheure et al. [8] studied trajectory optimisation in combination with time and energy. van Dijk et al. [9] proposed a trajectory optimisation method for industrial robots with a specified path. Saravanan et al. [10] discussed three kinds of trajectory optimisation methods according to the law of momentum of the limit. Simon and Isik [11] used a trigonometric spline function to interpolate the trajectory of the robot and ensure the smoothness of the change in the pulse value. Gasparetto and Zanotto [12] proposed a new type of robot trajectory planning method based on the proportional relationship between the execution time and the integral of the square of the acceleration. Chen and Li [13] combined the effects of acceleration and pulse value on trajectory optimisation and proposed a trajectory optimisation method that optimises the objective function piecewise. Hossain and Ferdous [14] analysed robot path planning based on the bacterial foraging algorithm.

The above review of the literature shows that current research on trajectory optimisation remains focused on reducing the execution time and energy consumption through kinematics and dynamics analysis or on combining the execution time and acceleration to reduce the pulse value. Decreasing both the execution time and vibration through these methods is difficult. In many practical engineering problems, based on the execution time, planning acceleration and jerk can keep the machine running smoothly and reduce its processing time rationally. For example, the cutter of the numerical control lathe can run smoothly during the acceleration and deceleration of the operation stages and also has a shorter execution time and a higher turning efficiency. A few scholars have conducted an intensive study that combines execution time, acceleration, and jerk to optimise the trajectory. The process must consider acceleration and jerk at different stages of the execution time according to the factors that significantly influence production to reasonably distribute and control the execution time, regulate the acceleration, and guarantee that the robot runs smoothly. For example, a robot significantly accelerating midway during the running time can add more execution time for a smooth change of the jerk at the start and end stages. Most studies use a low-order -spline curve to interpolate the motion curve, which makes the jerk curve discontinuous and incapable of being optimised piecewise. In this study, the use of the fifth-order -spline curve and the piecewise optimisation of the acceleration and jerk ensure that the optimisation results of the objective function at different stages become more obvious.

This study uses the glass-handing robot as research object. Firstly, the study establishes a kinematic equation for the robot and then calculates the interpolation points by substituting the path points into the kinematics equation so that the corresponding motion control points can be obtained by back-calculating the interpolation points. Secondly, the -spline curve is used to simulate the interpolation points, and the MATLAB simulation comparison chart is drawn. Finally, the feasibility of the proposed trajectory optimisation algorithm is verified through the analysis of the MATLAB simulation diagrams.

2. Optimal Trajectory Planning Based on Execution Time, Acceleration, and Jerk

The execution time, acceleration, and jerk of a robot constitute a contradiction. Any change to one part affects the other two parts. For example, increasing the acceleration reduces the execution time and improves work efficiency but also increases the jerk and vibration of the robot. Similarly, increasing the execution time can reduce the acceleration and jerk, which can make the robot run smoothly but reduce its efficiency. Moreover, an increase in jerk increases the acceleration and reduces the execution time, which can improve efficiency but can generate large vibrations. Balancing these three factors is the key to the optimisation of the trajectory of a robot.

According to the differences in the influence of the vibration of the mechanical arm on the glass at varying time periods, this study discusses the no-load and load operations (i.e., the end of the suction cup draws the glass) of a glass-handing robot to reasonably plan the execution time, acceleration, and jerk and therefore solve the contradiction among the three factors. The glass-handing robot tends to generate large vibrations at the start and stop phases, which not only reduces its service life but also damages the glass. Therefore, reducing jerk in these two phases is the key to trajectory optimisation. In addition, the execution time should be increased, and the acceleration should be decreased to avoid damage to the glass caused by large vibrations in the load operation stage and to ensure that the robot can run smoothly. Under the condition of the total execution time, the acceleration at the start and stop phases should therefore be reduced to increase the execution time and reduce the vibration, and the acceleration of the load operation should be reduced to make the robot run smoothly. This process constitutes the basic idea of optimisation of this study, which can be described as follows:

The constraint equations are as follows:where is the proportion of the acceleration in the total optimisation objective function; is the proportion of the execution time in the total objective function; represents each joint of the robot; is the execution time at the acceleration or deceleration stage; is the starting time of the smoothly running stage of the load operation; is the ending time of the smoothly running stage of the load operation; is the total execution time for the handing process; is the velocity of the robot; is the acceleration of the robot; is the jerk of the robot; is the upper limit of the speed of the robot; is the upper limit of the acceleration of the robot; is the upper limit of the jerk of the robot; is the starting time of the handing process; is the ending time of the handing process; is the starting speed of the handing process; is the ending speed of the handing process; is the starting acceleration of the handing process; and is the ending acceleration of the handing process. The -spline curve interpolation planning function is used to implement the idea of the trajectory planning algorithm. In addition, the continuity of the jerk and the “Runge phenomenon” are considered in using the fifth-order -splines curve.

2.1. Expression of the Fifth-Order -Spline Curve That Optimises the Objective Function

The -spline curve is a good curve for trajectory planning, given its advantages of locality, continuity, controllability, zooming ability, and others [15]. Its locality can limit each section of the curve in the range of the limited control points so that changes in the sections of the curve do not affect one another. The continuity of the curve at the inner and end points is beneficial to the fast calculation of the -spline basis functions. Controllability and zooming ability can make the curve change regularly and independently in different nodes. Thus, in the robot trajectory planning problem, the -spline curve can be used to construct the ideal curve with the collected interpolation points, and the variables in the joint space function are expressed as a function of time through the -spline function’s inverse calculation. Given control points and one node vector , the -order -spline curve and its -order derivative can be expressed as follows:where is the -spline basis function; , ; and the left is 0. Substituting (3) into (1), the objective function can be redefined as a -spline curve, expressed as follows:

2.2. Inverse Calculation of Fifth-Order -Spline Basis Functions

The inverse calculation of fifth-order -spline basis functions involves substituting the node vector into the -spline curve to find the basis function. The expression for the fifth-order -spline function in section is assumed to bewhere represents time; represents the fifth-order -spline basis functions; and are the control points of the fifth-order -spline curves in section . According to the continuity of the -spline curve, two -spline curves in adjacent segments must be equal at the interpolation points, which means that and meet at and , respectively. The first to fourth derivatives of the fifth-order -spline curves in the interpolation points are continuous; that is,

Through (5) and (6) and the continuity and standardisation of the -spline curves, the expression of the basis function can be obtained.

2.3. Inverse Calculation of the Control Points of the Fifth-Order -Spline

In practical applications, calculating a specific -spline curve requires the node vector to inversely calculate the control point . This study conducts trajectory planning in joint space, which expresses all the joint variables as a function of time. The expected motion of the robot can be described by these joint functions and their first and second derivatives. Therefore, , . In calculating the unknown control points , , an equation group is established:

Its boundary conditions are shown as follows:

The above-mentioned constraints can be further expressed in

The fourth derivative of the fifth-order -spline curve is continuous; thus, the node vector used is , where the numbers of and are both . For the convenience of calculation, the following are set: , , . Equation (10) contains the expressions of and . By substituting the node vector into the -spline curve basis function, the expression of matrix can be obtained. By substituting the interpolation points and constraints into vector , the expression of can be listed:

Given the above analysis and the obtained basis functions, MATLAB can inversely calculate the control point of each mechanical arm of the -spline. Substituting the node vector into MATLAB can calculate the changes in the acceleration and jerk with time before and after optimisation and can draw the simulation diagram of the said changes.

3. Glass-Handing Robot and Its Kinematics Model

3.1. Three-Dimensional Model of a Glass-Handing Robot and Its Experimental Device

Figure 1 shows the glass-handing robot and its working environment, which is composed of three parts: annealing furnace, glass-handing robot, and conveyor belt. The glass-handing robot in the figure has four degrees of freedom and moves along the , , and directions; the suction cup installed in the -axis can rotate about the -axis. The glass-handing robot runs from its point of origin to the annealing furnace to draw the glass and then runs to the conveyor belt to put the glass down. However, given that the glass is not placed very regularly, the suction cup needs to be rotated by a certain angle so that the glass can be accurately drawn. Figure 2 shows the experimental device of the glass-handing robot, which is composed of a straight line module moving along the , , and directions, a suction cup, and a support bracket. The main advantages of this kind of robot are high reliability, high speed, high bearing capacity, and high precision; this robot is also suitable for work under severe conditions. However, it runs with more vibration and less stability because of the higher rigidity.

3.2. Kinematic Modelling of the Glass-Handing Robot

Constructing the kinematic model of the glass-handing robot facilitates the calculation of the interpolation points of the spline curve, which correspond to the path points of each joint. To build the kinematic model, the robot coordinate system is established, as shown in Figure 3.

The D-H parameters of the glass-handing robot, which are inferred from the coordinates shown in Figure 3, are shown in Table 1.

In the system, is the base coordinate system, is the tool coordinate system, and is the objective coordinate system. The robot runs from the base coordinate system to the objective coordinate system to draw the glass and returns to put the glass on the conveyor belt. According to the motion of the robot, four mathematical models of the right triangle are established with the D-H parameters as the data between each coordinate system. According to the established model, the coordinate transformation formula for the position and orientation of the tool coordinate system relative to the base coordinate system is as follows:

After obtaining the expression of the position and orientation of the terminal actuator, the unknown parameters in the expression need to be further analysed to complete the calculation. When the distance between and mechanical arms and the angle between them are known, according to the right triangle established in the direction, the elongation in the mechanical arm can be obtained as . When the distance between and mechanical arms and the angle between and axes are known, according to the right triangle established in the direction, the elongation in the mechanical arm can be obtained as . Thus, combining and can obtain the other parameters in Figure 3:

Substituting (12) into the position and orientation of (11) of the terminal actuator, the original equation (11) can be expressed as follows:

After obtaining the expression of the position and orientation of the manipulator, the collected parameters should be substituted into this expression to calculate the position points of the manipulator relative to the base coordinate at each moment.

4. Analysis of the Optimisation Results of the Glass-Handing Robot Algorithm

The convergence of the objective function is verified through an iterative method. The implementation steps of the optimisation algorithm are as follows. Firstly, the objective function based on the fifth-order -spline curve obtained from the above calculation should be used as input, and the unknown parameters should be set in MATLAB. Secondly, the initial iteration value of the objective function is set as (, , ) according to the actual situation. Finally, the fminsearch function in the MATLAB toolbox is used to solve the minimum value of the objective function through the iterative method. Figure 4 shows the optimal convergence chart of the objective function.

The limiting conditions of the motion of the glass-handing robot are set according to the requirements of its actual working environment. In (2),  m/s,  m/s,  m/s,  m/s2,  m/s2,  m/s2,  m/s3,  m/s3, and  m/s3. In (11), . Figures 57 show the simulation results of the acceleration and jerk of the mechanical arms , , and before and after optimisation. The dashed lines represent the simulation results before optimisation, and the solid lines represent the simulation results after optimisation. In clarifying the results to show the advantage of the robot after optimisation, the result calculated by the algorithm in [12] is added for comparison, as expressed by the single line. Its main research on trajectory planning consists of regulating the execution time and reducing the value of jerk. The main function of the mechanical arm is to adjust the position and orientation of the mechanical arms and , which do not produce vibration at the robot load stage. Thus, as long as its vibration is controlled under the limit value, it exerts no major influence on the robot. The mechanical arm needs to drive the mechanical arm when the robot is running, and it runs mainly at the load stage with a long travel. The vibration and frequency produced by the mechanical arm greatly influence the robot body and support bracket and glass; thus, reducing the vibration and frequency produced by mechanical arm is necessary. The mechanical arm is fixed with a suction cup at its bottom and must be positioned such that it directly touches the glass. The mechanical arm greatly influences the glass at the start and stop stages, and large vibrations cause the drop and damage of the glass. Thus, the value of the vibration of the start and stop stages should be as small as possible.

Figure 5 shows the simulation results of the acceleration and jerk of the mechanical arm before and after optimisation and includes the result calculated with the algorithm in [12]. According to Figure 5(a), the optimised acceleration curve of the mechanical arm is smoother than the acceleration curve before optimisation and that from [12]. This is also reflected in the simulation results of the jerk (Figure 5(b)), which means that the optimised jerk is smaller than the jerk before optimisation and that in [12]. These smaller jerks are conducive to the smooth running of the arm of the robot and reduce the impact on the whole robot. In addition, Figure 5(a) shows that, before and after the optimisation method used in this study, the change rates of the acceleration of the axis at the start phase (0 s  s) and stop phase (3.5 s  s) decrease gradually. The result in [12] changes more smoothly than the result before optimisation, but using the method of this study, after optimisation, as reflected in Figure 5(b). This means that, in these two phases, the values of the jerk after optimisation are reduced and changes more smoothly than the jerk before optimisation and that from [12]. Moreover, the overall average value of the optimised acceleration is increased, which also ensures that the robot can accomplish the task at the execution time.

Figure 6 shows the simulation results of the acceleration and jerk of the mechanical arm before and after optimisation and includes the result calculated with the algorithm in [12]. According to Figure 6(a), in the no-load operation stage (1 s  s), the value and change rate of the acceleration after optimisation are larger than those before optimisation and those from [12], as reflected in Figure 6(b). This finding means that the optimised jerk value is larger than the values before optimisation and those in [12]. This also means that the robot has a longer execution time for mechanical arm in the load operation stage. In addition, the peak of the jerk increases but also becomes less than the limit value, and given that the robot is in the no-load operation stage, the vibration generated does not affect the glass. In addition, Figure 6(b) shows that the mechanical arm gains a longer execution time in the start phase (0 s  s) and stop phase (10 s  s), and its acceleration value and change rate decrease, as reflected in Figure 6(b) after optimisation. This finding means that the value of the jerk becomes smaller in the start and stop phases. The arm avoids the great impact on the robot body and the glass when the robot suddenly starts and stops. However, the result in [12] does not achieve this effect. In addition, in Figure 6(a), in the load operation stage (6 s  s), the value and change rate of the optimised acceleration become smaller because they have a longer execution time, as reflected in Figure 6(b). This finding means that the optimised jerk changes smoothly, and the value becomes smaller in the load operation stage. Moreover, the maximum peak is less than 1.5 m/s3. Thus, under the premise of completing the glass movement at the execution time, it ensures that the mechanical arm can run smoothly and can generate smaller vibrations, thereby protecting more effectively the glass, support bracket, and robot body.

Figure 7 shows the simulation results for the mechanical arm before and after optimisation and also includes the result calculated with the algorithm of [12]. In Figure 7(a), the optimised acceleration of the mechanical arm is smaller than the acceleration before optimisation and that in [12], and the change rate of the acceleration is significantly smaller, especially in the load operation stage (3 s  s). As reflected in Figure 7(b), the optimised jerk becomes smaller and changes smoothly in the load operation stage. In addition, Figure 7(a) shows that the value and change rate of the optimised acceleration decrease in the start phase (0 s  s) and stop phase (5.4 s  s). Figure 7(b) shows that the value of the optimised jerk becomes smaller in these two phases, which guarantees that the suction cup fixed in the -axis does not generate a larger vibration, which in turn damages the glass when the robot picks it up and places it back.

5. Conclusion

This study focuses on the analysis of the simulation results of the acceleration and jerk of a glass-handing robot before and after trajectory optimisation. It also compares the result calculated with Gasparetto’s algorithm with the current findings. The analysis method of this experiment involves minimising the objective function, which consists of the integral of the square of the execution time, integral of the acceleration, and integral of the jerk as the main objects under consideration, and achieves the purpose of trajectory optimisation by coordinating the relationship among these three factors.

This study takes the glass-handing robot as an experimental device to analyse the simulation results before and after trajectory optimisation and therefore verifies the feasibility of the algorithm. The desired effect is obtained. Directions for future work include pursuing experiments that further verify the practicability of the objective function, exploring practical applications involving the objective function of the glass packing and stacking robot in the laboratory, and combining the robot with a visual sensor to make it more flexible, efficient, and stable.

Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.

Acknowledgments

Grateful acknowledgement is given to the financial supports from the National Natural Science Foundation of China with Grant no. 51375264 and Science and Technology Major Project of Shandong Province with Grant no. 2015JMRH0218. This work was also partially supported by State Key Laboratory of Robotics and System (HIT) with Grant no. SKLRS-2015-MS-06, China Postdoctoral Science Foundation with Grant nos. 2014T70632 and 2013M530318, and Research Awards Fund for Excellent Young and Middle-aged Scientists of Shandong Province with Grant no. BS2013ZZ008.