3.2.3. IGA Work Mechanism

Based on the above analysis, the IGA work mechanism is outlined in this part. Two-hundred individuals are randomly generated, where three parts of each chromosome are encoded according to Section 3.2.1. After this, the iterative loop starts. First, the fitness value of each chromosome, i.e., the value of the objective function, is computed after decoding. The chromosome with a minimum fitness value is denoted as the elite in each generation, which is saved directly for the next iteration. Second, the terminal condition is verified, where the maximum number of iterations is defined as 500. If the terminal condition is not followed, genetic operators, including reproduction, crossover, and mutation are successively executed as per Section 3.2.2. After this, the updated chromosomes, together with the saved elite, are denoted as the initial chromosomes for the next iteration. Once the terminal condition is satisfied, the loop stops, and the optimal solution is exported. Figure 10 shows the IGA flowchart.

**Figure 10.** IGA flowchart.

## **4. Numerical Simulations**

The space robotic system employed for simulation consists of a base spacecraft and a 7-DOF manipulator, and its parameters are shown in Table 1. Two categories of numerical simulations were developed by considering the state of the base spacecraft. For FFSR1, the base attitude is controlled, and only minimum maneuver time is required. For FFSR2, attitude disturbance acting on the free-floating base should also be minimized. Therefore, the objective function of MTTP for FFSR1 is *F* : *F* = *F*1, while the objective function of MTTP for FFSR2 is *F* : *F* = *F*<sup>1</sup> + *αF*2. *F*<sup>1</sup> and *F*<sup>2</sup> are shown in Equations (6) and (8), respectively. *α* denotes the weight and is defined as 2.


**Table 1.** Physical parameters of the space robotic system.

To validate the IGA, comparisons with two other algorithms were first developed. Afterward, two simulation cases on the detailed movements of space robotics using the IGA were developed.

#### *4.1. Comparisons*

Comparisons between IGA and two other algorithms, AL1 and AL2, were developed. In the IGA, the second part of each chromosome is encoded with the binary mechanism. In AL1, the integer mechanism is employed to encode the second part. This comparison refers to [22]. In both the IGA and AL1, the variation trend of each joint between adjacent waypoints is depicted with a sine function, whose argument is a cubic polynomial. The angular velocity of each joint, shown in Equation (10), varies during the maneuver of the space robot. Therefore, the third part of each chromosome is variable. However, joint angular velocities are defined as a constant in [20–26,41], leading to joint trajectories being depicted with the linear functions, and the third part of each chromosome being depicted with a constant. In AL2, joint angular velocity is defined as 0.8 rad/s (45.8 deg/s) [41].

Based on the IGA, AL1, and AL2, the MTTP for space robotics is solved successively. Two cases of space robotics are considered, where the MTTPs for FFSR1 and for FFSR2 are solved in Case 1 and in Case 2, respectively. To further validate the developed approach, different numbers of waypoints, 5, 7, 10, 15, 20, and 30, are considered in each case. With the same number of waypoints, each algorithm is carried out for 25 times. Tables 2–4 shows the average execution time (AET), the worst fitness (WF), the best fitness (BF) and the average fitness (AF) of 25 executions. The AET using AL2 is less than that using IGA or AL2. However, the optimization results using AL2 is much worse than results using IGA or AL1. Figure 11 represents the AF values. It should be noted that the optimal fitness value denotes the minimum value of *F*<sup>1</sup> in Figure 11a and denotes the minimum value of *F*<sup>1</sup> + *αF*<sup>2</sup> in Figure 11b. First, the fitness values of AL2 are much larger than those of IGA and AL1, meaning that the joint movements with constant joint angular velocity do not work well. Second, the fitness values of AL1 grow larger than those of IGA as waypoints increase. It can also be seen that the difference between fitness values of IGA and AL1 in each case is not large. To further analyze the results using IGA and AL1, fitness values of IGA and AL1 plotted in Figure 11 are once again shown in Figure 12. In Case 1, the difference generated by IGA and AL1 is smaller than 1 when the number of waypoints is less than 10. The difference gradually becomes large as waypoints increase, and the difference is about 5 when the number of waypoints is 30. In Case 2, the difference is 0.9 when the number of waypoints is 5, and the difference is 3 when the number is 7. However, difference grows faster as waypoints increase, compared with the case of MTTP for FFSR1. It can be seen in Figure 12b that the difference is 8 when the number of waypoints is 30.

**Figure 11.** Optimal fitness values of IGA, AL1, and AL2 in two cases. (**a**) MTTP for FFSR1 and (**b**) MTTP for FFSR2.





**Table 4.** Average execution time and fitness values of AL2.


According to the above analysis, the proposed approach is validated. It can be seen that depicting each joint angular trajectory with piecewise- and continuous-sine functions makes the joint angular velocity variable and contributes to a better solution. Generally, it is almost impossible for any optimization algorithm to find the best solution. However, compared with the integer mechanism of the second part in each chromosome, the binary encoding mechanism contributes to a preferable second-best solution.

**Figure 12.** Optimal fitness values of IGA and AL1 in two cases. (**a**) MTTP for FFSR1 and (**b**) MTTP for FFSR2.

## *4.2. Simulation Cases*

Two cases of numerical simulation results, based on the IGA, were developed for detailed motion analysis of FFSR1 and FFSR2. In both cases, the end effector is constrained to visit 10 waypoints in the 3D Cartesian space. The position and attitude of the 10 waypoints are expressed in Table 5.


**Table 5.** Position and attitude of ten waypoints.
