Optimal trajectory planning of complicated robotic timber joints based on particle swarm optimization and an adaptive genetic algorithm

In this paper, a methodology for path distance and time synthetic optimal trajectory planning is described in order to improve the work efficiency of a robotic chainsaw when dealing with cutting complex timber joints. To demonstrate this approach one specific complicated timber joint is used as an example. The trajectory is interpolated in the joint space by using a quantic polynomial function which enables the trajectory to be constrained in the kinematic limits of velocity, acceleration, and jerk. The particle swarm optimization (PSO) is applied to optimize the path of all cutting surfaces of the timber joint in operating space to achieve the shortest path. Based on the optimal path, an adaptive genetic algorithm (AGA) is used to optimize the time interval of interpolation points of every joint to realize the time-optimal trajectory. The results of the simulation show that the PSO method shortens the distance of the trajectory and that the AGA algorithm reduces time intervals and helps to obtain smooth trajectories, validating the effectiveness and practicability of the two proposed methodology on path and time optimization for 6-DOF robots when used in cutting tasks.


Introduction
During the past decades, the use of robotic fabrication practices has increased in many fields, especially in architecture. Robotic fabrication shows potential for improving processes across a variety of application, from improving the sustainability of additive manufacturing (Ford and Despeisse 2016), such as reduction in waster and energy saving (Faludi et al. 2015), to its use for the execution of both standardized and customized construction assembly tasks (Keating and Oxman 2013). Robotic fabrication shows its potential benefits for complex structures in concrete (Agustí-Juan et al. 2017), lightweight timber plates through robotic milling combined with manual assembly work (Krieg et al. 2015), and brick laying using mobile robots (Helm et al. 2012). Compared to CNC technologies, which are used in timber prefabrication predominantly to manufacture standard components like beams and plates (Popovic et al. 2016;Eversmann et al. 2017), robotic fabrication shows its strength in mass customization of movements to make more complicated timber joints due to the potential for complex manipulator trajectories (Jeffers 2016). However, the complexity of the design makes the trajectory more intricate which often increases process time. Robotic chainsaw cutting has a range of applications in timber fabrication industries, however, to achieve an efficient process there are specific aspects of the task which must be taken into consideration. The surfaces in the cutting task are in different surfaces and the cutting order passing through these surfaces has significant impact on working efficiency. When dealing with complex joints, path planning for robotic chainsaw cutting can be 1 3 time-consuming and manual creation of paths can not guarantee the most efficient solution.
To generate an efficient trajectory requires the satisfaction of specific objectives like time reduction and minimizing of the quick short movements of the robot manipulator. These quick short movements create sudden jerks to the end effector and can reduce the quality of the cut of damage the chainsaw. There are diverse researches on robotic automation construction (Labonnote et al. 2016) and various trajectory optimization techniques (Ata 2007;Jeevamalar and Ramabalan 2012;Ratiu and Prichici 2017), however research on specific trajectory planning optimization methodology applied on a full-scale architecture joint fabrication is rare. Therefore, this study takes the following case as an example to test the feasibility of the trajectory optimization techniques in real practice.

Case study
In this case, tree trunks are chosen to be the material which would be firstly scanned and then cut by a robot arm equipped with a chainsaw. This case study illustrates the problems within trajectory planning of complicated timber joints in order to test optimization methods for increasing process efficiency. The complicated timber joint was designed and fabricated in a workshop at the international conference: ROB|ARCH 2018. The timber joints are designed in Rhino, and the simulation of cutting process using a KUKA robot equipped with a planar cutting tool (chainsaw) uses KUKA|prc. The details of the robotic chainsaw cutting task including the design of the timber joints and the setting work space are shown in Fig. 1.
The first parameter of the process is the shape of the cutting faces as the input surfaces. The cutting tool is always at the backside of the input surface, which could be achieved by reversing the normal direction of the input surfaces. This is to align the normal direction of the tool with the normal direction of input surfaces to be in the right offset side. The cutting direction and the cutting order of the four points within one cutting surface is consistent with the drawing order 1, 2, 3, 4, shown in Fig. 2. In this case, the surfaces that have similar orientation are grouped to reduce the amount of re-orientations to save time and avoid collisions.
When planning multiple cuts, the main difficulty is to designate the cutting order of different cutting surfaces to avoid kinematic singularities and at the same time to avoid collisions. The timber joint in this case has been divided into four cutting parts, and every part has more than 10 cutting surfaces; each surface has four cutting points. The cutting order combinations could be n! × C 3 4 , where n is the number of cutting surfaces, which means it is impractical to figure out every rational combination. Two parts of the timber joint have been fabricated in the work space ( Fig. 3) and the results are shown in Fig. 4a, the same as the initial design in Rhino. During the workshop, the cutting order was set manually. The whole process took considerable time and decreased the degree of automation of robotic fabrication. This also added uncertainty as to whether the manually designed path was the shortest travel distance or not. To tackle the difficulty found during the workshop, one part of the joint (Fig. 4b) is selected to as an example to be optimized.
This study took 13 cutting surfaces of the first part as the example for addressing complicated robotic timber joints within trajectory planning and utilizes a multi-objective technique to obtain trajectory planning optimization of robot manipulators corresponding to the specific example in this study, to put forward a feasible solution to find the best cutting order automatically to achieve the shortest distance and time.

Trajectory planning in robotics
The trajectory planning problem in robotics is to find a motion along the given geometric path, taking into account process constraints, to generate inputs for the control system of the manipulator, which ensures the implementation of the planned movement (Gasparetto and Zanotto 2010;Gasparetto et al. 2012). Trajectory planning in robotics is generally carried out in the operating space (Luh and Lin 1981) or joint space (Craig 2009). The trajectory described in the joint space returns the position for each joint of the manipulator, corresponding to the points set by the user. Though in the operating space, the trajectory of the end-effector can be described directly, it is very difficult to solve the problem analytically due to the highly coupled and highly sub-linear characteristics of robot dynamics equations. In most cases, the trajectory planning is solved in joint space to avoid kinematic singularities or manipulator redundancy (Gasparetto et al. 2015). The most common method is to transform the trajectory function from operating space into joint space, and then to control the manipulator in the joint space.
The trajectories defined in the joint space are constructed by means of interpolation functions such as polynomial, spline, Bezier, and NURBS, etc., which are restricted to kinematic constraints. Conventional polynomial interpolation has developed 343,445 and novel 5455 methods based on different orders polynomial functions (Cook and Ho 1984;Petrinec and Kovacic 2007;Boscariol et al. 2012). Trajectories interpolated by spline functions shows good performance ensuring the continuity of the acceleration or jerk (derivative of the acceleration), cubic B-spline, quantic B-spline as 7th-order B-spline have been tested to obtain trajectory smoothness (Ramabalan et al. 2009;Gasparetto and Zanotto 2008;Zhu et al. 2010).
Numerous techniques for optimal offline trajectory planning have been developed in the last decades by different researchers in the field. The trajectory planning algorithm takes the geometric path, kinematic and dynamic constraints as inputs and generates the trajectory of the joints, or of the end-effector by means of position, velocity and acceleration expressed in time sequence (Siciliano et al. 2010). The aim of the trajectory planning optimization is to improve the manufacturing productivity and the movement stability, which means the short execution time or smooth path (Huang et al. 2018). Most of the trajectory planning algorithm optimizations are based on an objective function of some parameters to improve: (1) minimum execution time, (2) minimum energy, and (3) minimum jerk, or a combination of these ).

Optimal techniques
The most common used trajectory planning optimization techniques are minimum-time algorithms, due to the need for increasing productivity in the industrial sector (Gasparetto and Zanotto 2010;Piazzi and Visioli 1998). A convex optimization for time trajectory planning was put forward by converting time-optimal problem into convex optimal control problem, neglecting the viscous friction (Verscheure et al. 2009). When robot moved at high speed, time-optimal optimization could be non-convex taking the viscous friction of robots into consideration (Shen et al. 2019). To solve this inaccuracy, a new genetic algorithm for time-optimal and collision-free trajectory in complex environments was developed (Abu-Dakka et al. 2015). Also, these algorithms meet torque and acceleration discontinuity required by assuming that robot was a rigid body. To overcome these drawbacks, the actuator jerks were introduced as an additional metric for optimization (Constantinescu and Croft 2000).
Besides time optimization, jerk minimization results in better performance in tracking capacity (Gasparetto et al. 2015;Kyriakopoulos and Saridis 1988), being able to achieve smaller excitation of resonance frequencies (Gasparetto et al. 2015). Squared jerk has also been set as the optimization object using spline interpolation (Gasparetto and Zanotto 2007;Simon 1993;Zanotto et al. 2011).
Minimizing the energy consumption is another alternative optimization objectives, which leads to the smoothness of the trajectory with smaller stresses on the robot manipulator (Field and Stepanenko 1996). Cubic B-spline functions, fifth order B-spline and Lagrange interpolation have been applied to construction trajectories within energy minimization objective (Gasparetto and Zanotto 2007;Sato et al. 2007;Luo et al. 2015).
In addition, hybrid optimizations have also been proposed instead of a single optimization objective function. Timeenergy optimal trajectories planning is composed by two terms, the first related to the travel time and the second to energy. The optimal objective is to reduce the stresses of the actuators and to promote the most efficient trajectory tracking (Balkan 1998;Shiller 1996). Similar to time-energy, time-jerk optimal trajectory planning also consists of two parts, time and jerk (third derivative of position) Zanotto 2007, 2008;Zanotto et al. 2011). The simulation and experiment results validated the effectiveness of the methods. However, the trade-off between the two criteria is controlled by two weights of the objective function which still requires artificial adjustment. To solve the multi-objective problems, there is an emerging alternative which is to employ evolutionary algorithms such as particle swarm optimization (PSO) and adaptive genetic algorithm (AGA) to solve the above-mentioned drawbacks (Ata and Myo 2005;Saravanan et al. 2008).
PSO was devised in 1995 inspired by the flock of birds' behaviour and has been applied to many fields of optimization problems . As a randomsearch algorithm, studies have verified the convergence speed of particle swarms by offering the initial behaviour of a population (Reyes-Sierra and Coello 2006; Helwig and Wanka 2008;Trelea 2003). In addition to the performance of PSO on continuous optimization problems, many studies have tested the application of PSO on discrete problems (Kennedy and Eberhart 1997;Wang et al. 2003;Shi et al. 2007), including the optimization of path planning (Hoffmann et al. 2011). PSO shows its potential in finding the shortest collision-free path for mobile robots effectively (Zhao and Yan 2005). More simulation results shows the competence of PSO in path planning in static or dynamic environments (Xu et al. 2008;Hao et al. 2007). PSO could also tackle multi-objective robot path planning with uncertainty in planar surface (Zhang et al. 2013). Apart from travel distance, a multi-objective particle swarm optimization algorithm is applied to minimize the travel time, energy and the distance of the end-effector (Xu et al. 2015).
Genetic algorithm (GA), inspired by natural genetic systems and natural selection (Davis 1991), is viewed as another advantageous evolutionary process to optimize nonlinear and complex problems which traditional method could not solve (Davis 1987). The AGA varied the probability of crossover and mutation probability depending on the fitness value of the objective function (Srinivas and Patnaik 1994). The AGA method significantly optimizes the time-intervals between each section of the trajectory so as to raise the efficiency of the robot (Liao et al. 2010). Combing the quintic polynomial function to interpolate the trajectory, time-optimal trajectory planning could be realized by AGA to reduce running time (Zhang et al. 2018). When tackling the same trajectory time-optimal problem, the simulation results show that AGA converge better than GA and reduce the probability of local best solutions to achieve better stability of robot (Fu and Ju 2011).
This study reports two optimal objectives (travel distance and execution time) to obtain smooth and short trajectories of robot manipulators. With respect to most path and time optimal algorithm techniques in scientific literature so far, the PSO along with AGA are selected to deal with the two optimization objectives, respectively. This paper is organized as follows. In Sect. 2, the trajectory optimization problem is formulated and kinematic singularities are defined; fifth-order polynomial function is chosen to construct the joint trajectory, and Modified Denavit-Hartenberg is chosen to build the robot model. In Sect. 3, the robot arm model is built in MATLAB and the data of the model in Rhino is converted to interpolate the position, velocity and acceleration of the six joints according to the setting points. Section 4, describes the whole algorithms in detail and describes the execution. Section 5 shows the results of the simulation.

Formulation of the optimization objectives
The KUKA robot with six degrees of freedom is considered in this study. The trajectory planning methodology described in this paper assumes that the geometric path is converted from the specific geometry vertices. The path is given as a sequence of points in the operating space, which represent the positions and orientations of the end-effector. The points would be transformed to consecutive points in the joint space through inverse kinematics. Based on the points in the joint space, a trajectory would be constructed and then optimized for the minimization objectives. Obstacle avoidance and collision problems are assumed solved and will not be in the scope of this study.
Considering the uniqueness of this case study, the proposed technique does not set the geometric path as a variable, which is different from the current trajectory planning. The minimization of the travel distance of the end-effector has direct effect on the time minimization. In this study, two objective functions are formulated: the travel distance and the execution time.
The two optimization problems are mathematically defined as follows and the meaning of the symbols are listed in Table 1 and Table 2: Minimize: Subject to: Minimize: Subject to: The two objective functions are related. Objectives one would be optimized first to work out the fittest travel path and based on the optimal path travel time would be optimized to get the smooth trajectory. Also, the kinematic constraints for velocity, acceleration and jerk as well as the interpolation conditions for all via-points (vertices of the cutting surfaces) must be met.

Definition of the trajectory by means of fifth-order polynomial function
To solve the optimization problems above, fifth-order polynomial function is selected to construct the trajectory in joint space. i (t) denotes the position of six joints in angle.
According to the definition of the quantic polynomial function (Thomas et al. 2010), the trajectories of six joints are expressed mathematically as follows, i means the number of joints: For one of the trajectories, the start time is set to be t 0 and end time to be t f ; the start point and end point of position, velocity and acceleration constraints are expressed as follows: Supposing the initial and ending positions of the 6-DOF robot are known, position constraints, velocity constraints, acceleration constraints of the initial and end points are also included. The 6 parameters of the fifth-degree polynomial uniquely determine a trajectory to meet the constraints. Deriving Eq. (5), the velocity expression ̇i (t) of the trajectory is obtained as Similarly, the acceleration function ̈i (t) and jerk function ⃛ i (t) are expressed as below as the second and third derivative of Eq. (5): According to the coefficients, the equation of jerk (third derivative of position) could be formed to get the constrains of the JC i .
According to Eqs. (6)-(9), the constants of a ij could be conducted, means the jth constant of the ith joint, i = 1, 2, … 6 , means the number of joint and j = 0, 1, … 5 , means the index of the constants a:

Modified Denavit-Hartenberg parameters
In 1955, Denavit and Hartenberg proposed a method for systematically describing multi-axis robots, which are now widely used in robotics research and are known as DH parameters (Denavit et al. 1955). The specific definition model of DH parameters is shown in Fig. 5. Z i−1 -axis means the rotation axis of the ith joint, and X i−1 -axis means the common perpendicular between the joint i and joint i + 1 . Y i−1 is determined by the right-hand rule following Z i −1 -axis and X i−1 -axis.

Fig. 5 Standard DH parameters
Besides the DH parameters, there is another definition used widely, which is called modified DH parameters, showing in Fig. 6 (Craig 2009). The difference between these two methods is that the coordinate system is based on the previous joint rather than the next one in standard DH, which means that the frame O i−1 is put on joint i − 1 not joint i.

Singularities identification
To identify the singularities, In Robotics, Jacobian matrix is a map that reflects the relationship between joint speed and end-effector speed, shown as Eq. (13): V e is the velocity of the end-effector, J[q] is the Jacobian matrix, and ̇q is the velocity of the joints. To be more specific, V e includes the linear velocity p e and angular velocity W e , the same as J[q]: The number of rows in the matrix is the freedom of robot manipulator in operating space, and the number of columns equals the number of joints, so the Jacobian matrix could be divided as From above, the p e and W e could be mapped from the linear velocity of the joints.
When the end-effector approaches the kinematic singularities area, the rank of the matrix would decrease, which could conclude that det(j[q]) = 0 . From Eq. (18), when |J[q]| approaches 0, q could be so large to damage the robot.
So |J[q]| = 0 is the analyzing condition of the singularity zone of the robot manipulator.

Robot model
The robot manipulator used in the case study is KUKA KR90. The DH parameters of the robot are shown in Table 3. Based on the DH parameter in Table 3, the robot link model could be built in MATLAB2018a using Robotics Toolbox 10.2, shown in Fig. 7.

Data conversion
In this study, one custom wood joint (Fig. 4b) is selected as the research object, with 13 cutting surfaces. The coordinates of 52 vertices of these 13 cutting surfaces are converted from Rhino (Fig. 8) to Matlab (Fig. 9) to construct the via-points of the geometric path, based on which the trajectory would be interpolated using the fifth-order polynomial function. According to the motion control law of the chainsaw, the end-effector cuts the timber along the cutting surfaces. A total of 66 cutting trajectories are formed: (1) trajectories within the 13 cutting surfaces; (2) trajectories from nth surface to (n + 1) th surface; (3) two additional trajectories adding the start and end points.

Kinematics constraints
The vertices in form of o-xyz coordinate would be transformed into the points in joint space from operating space using inverse kinematics. The results of the 6 joints in form of angular position, velocity and acceleration are shown in Fig. 10. In Fig. 10, there are 66 curves representing each of the six joints constructed by 66 fifth-order polynomial functions. The coefficients of the functions could be calculated according to Eq. (18) and the constraints for each joint along every trajectory would be obtained. The overall velocity, acceleration and jerk constraints for the objective function T in Eq. (4) can be obtained by setting as:

Working space
The work-space of a robot manipulator represents a set of positions that the end-effector could approach, showing the working range of its accessibility. The working space of the manipulator could be expressed as Monte Carlo method is one discretization method widely used to compute the work space for complex robots (Rastegar and Fardanesh 1990;Cao et al. 2011). Monte Carlo method gets the approximate work-space by setting the random joint angle of every joints to get the random positions of the end-effector. The angle range of every joint is shown in Table 4.

Particle swarm optimization for path minimization
Particle swarm optimization is one typical algorithm in swarm intelligence. Eberhard and Kennedy proposed this optimization technique by observing the social behavior of bird flocking . Research has shown the effectiveness of particle swarm optimization in path planning to achieve collision-free trajectories (Hereford 2006;Doctor et al. 2004). Specifically, a group of random particles (random solution) are initialized and the best solution are found through iteration. Within each iteration, the particles update itself by tracking two values: personal best and global best. After finding these two optimal values, the particles update their velocity and position using the following equations.
where v i is the velocity of the ith particle; rand() is the random number between 0 and 1; x i is the current position of the particle; c 1 and c 2 are the learning factors, usually equal 2; is the inertia weight, which is a positive number, the larger of the number, the better global searching ability and weaker local searching ability. The common method is to use the linearly decreasing weight strategy to get the dynamic .
where ini is the initial inertia weight; end is the inertia weight of maximum iteration; G k is the maximum number of iterations. In this study, ini = 1 , end = 4e (−5) . The detailed flow chart is shown as below in Figs. 11 and 12 To combine the algorithm with the parameters in this case, a population of m × 13 particles are created: swarm = {x k 1 , x k 2 , ..., x k m } , k means the kth iteration. Within the kth iteration, the ith particle is expressed in a 13-dimension vector: = 1, 2, .., m . Every element of the vector stands for the index of the cutting surface and the index of the vertices within every surface, the jth element of the ith particle is: x k ij = (s k in , ver k ip ), j = 1, 2, ..., 13, n = 1, 2, ..., 13, p = 1, 2, 3, 4 . Figure 13 explains the detailed layer information, from (23)

Adaptive genetic algorithm for travel time minimization
To validate the adaptive genetic algorithm in this study, one closed surface was chosen as an example to optimize the travel time along four edges, which means four timeintervals. The time optimization of the manipulator could be concluded as the joint optimization. The objective functions of jth join is: According to Eq. (10), the trajectories of the manipulator are constructed by the fifth-order polynomial, the general formula for the trajectories could be expressed as: h ij (t) is the fifth-order polynomial function of the ith trajectory of the jth joint. In one specific surface optimization, N = 4. The four positions of the six joints are known concluded from the inverse kinematics, expressed as X j1 , X j2 , X j3 , X j4 , X j5 , and A j1 , A j5 , V j1 , V j5 are also known as 0. Based on the known conditions, the relationship between (24) f (t) = min t j1 + t j2 + t j3 + t j4 . (25) the unknown a ij and the known X ji could be derived from A j (a 24 × 24 matrix) and b j (vector constructed from X ij ).
After integrating the John Holland genetic algorithm, the improvement of the process has developed a lot (Whitley 1994). Adaptive genetic algorithm is one method that adjusts the probability of crossover p c and probability of mutation p m dynamically according to the fitness value. The adjustment of the two operators are shown in Eqs. (29) and (30): where f is the fitness value of the solution; f ′ is the larger fitness values of the two solutions to cross; f max is the maximum fitness value of the population; f avg is the average fitness value of the population (Srinivas and Patnaik 1994). The parameters of the Fig. 12 Flow chart of robot time optimization using AGA algorithm are selected as follows: population size M = 100 ; P c1 = 0.9, P c2 = 0.4, P m1 = 0.1, P m2 = 0.01 . The M × 6 group of initial combinations of [t 1 t 2 t 3 t 4 ] as the evolution population would be taken to the algorithm as the independent variables and a j would be the dependent variables to validate the constraints. After all the optimization for all the joints, the optimized time interval should equal the maximum one within one trajectory to satisfy the kinematics constraints, that is:

Distance-optimal simulation
After 300 PSO algorithm iterations, the travel distance decreases from 16.1373 to 15.2010 m. The travel distance within every cutting surface remain the same, the reduction is diminished by the distance between two cutting surfaces. The trajectories from the start point of nth cutting surface to next start point of (n + 1) th cutting surface are compared in Figs. 14 and 15. The effectiveness of the algorithm in decreasing the distance, from 16.1373 to 15.2010 m (Fig. 16), without singularities in new cutting order, is also validated in KUKA|prc. This optimization process provides a new method in fabricating complicated components, enhancing the degree in automation in robotic fabrication tool path generation instead of setting the cutting order manually. In addition, the shorter distance could save time and energy.

Time-optimal simulation
As for the decreased in travel distance, the time optimization is operated within the cutting surface. In the optimization process, the trajectories of the six joints are composed of four fifth polynomial curves, and precision is 0.0001. The results of the first cutting surface are shown in Table 5. From the optimal results, the travel time along the four edges, four points is reduced under the kinematics constraints of joint velocity, and acceleration.
For all the six joints, the initial total time is 54s, the time is shortened at least 33.3% to 36 s. As shown in Fig. 17a-f, the operating time for each joint would converge to the optimized time, and the optimized operating times are stable. Figure 18 shows after the optimization, the curves of the position, velocity and acceleration are smoother compared to the initial ones, which means the smooth transition after every trajectory ends. Furthermore, this leads to energy saving and deviation reduction in motion control.

Conclusion
Based on this research's typical timber joint, this study briefly takes the 6 DOF KUKA-KR90 robot as an example, to convert the geometric information from Rhino into the position information in working space. To implement the objectives functions, the modified DH parameter is chosen to build the link model and the trajectories of the joints are interpolated by fifth-order polynomial functions in joint space. Particle swarm optimization and adaptive genetic algorithm are applied to optimize the path distance and travel time interval respectively.
The two optimization methods achieved the optimal objectives, satisfying the kinematics constraints, and showed effectiveness in decreasing the distance and travel time in the complicated trajectories in this case study. PSO technique improves the automation of robotic trajectory planning in complicated joint fabrication through generating a rational cutting order without singularities. At the same time the trajectory optimized by PSO is also shortened compared to the initial one. The trajectories within one cutting surface optimized by AGA results in time saving and smoother robotic paths, improves the working efficiency and stability by reducing the stress on the actuators in real practice. In real on-site fabrication, this control method could increase working efficiency and improve fabrication accuracy.   Future work would focus on different combinations of trajectories technique (like fifth-order B-spline, 3-5-3 polynomial interpolation, etc.) and optimal algorithms like grey wolf optimization (GWO), ant colony optimization (ACO) to choose the best combination to optimize the distance and Acknowledgements The case in this research was completed in the workshop in ROB|ARCH 2018 and the presented research builds on the case findings.Thanks to the team member Lynn Masuda together working on the model in Rhino.In particular, the authors would warmly like to thank: Achilleas Xydis, Florian Fend and Yuko Ishizu for their helpful technical support and the organization of ETH Zurich.
Funding Not applicable.

Availability of data and material Not applicable.
Code availability Not applicable.

Conflict of interest
The authors declare that they have no conflict of interest.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are (f) Acceleration of 6 Joints for the AGA Time-Optimal Trajectory included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http:// creat iveco mmons. org/ licen ses/ by/4. 0/.