Nowadays, robot manipulators have become increasingly important for automation, and a lot of researches have been disused and developed, such as painting, welding, machining and handling. Recently, robot manipulators are designed for more difficult and complicated tasks, such as rescuing task, cleaning in harsh environments, and training prosthesis. Therefore, redundant manipulators are needed to handle these complicated tasks. A robot is termed kinematically redundant as it possesses more degrees of freedom (DOF) than the required one to execute a given task. When the manipulator is not fully constrained for the trajectory planning, there are chaotic inner motions with unpredictable arm configuration if kinematic redundancy occurs. Most of the research on kinematic redundancy uses these extra degrees of freedom to deal with other task-priority problems; a functional constraint task is imposed to be satisfied along with the end-effector task; typical constraints include cost energy minimization,1–3 avoidance from obstacles,4–7 improved manipulability,8–9 singularity avoidance,10–12 and repetitive motion with joint-velocity limitations.13,14 In general, an analytical inverse kinematics relationship for redundant robots may not be obtained by a straight forward derivation. A class of techniques for solving the inverse kinematics of the redundant manipulators was suggested using the pseudo inverse of the Jacobian matrix through the rates at which the joints are driven. The pseudo-inverse method is also called the generalized inverse method and it is first introduced to the robot control problem by Whitney.15
The pseudo-inverse of the Jacobian matrix guarantees an optimal reconstruction of the desired end-effector velocity with the minimum-norm joint velocity in the least squares sense. Moreover, Klein et al.16 were the first to observe the other undesirable property of the pseudo-inverse method that the repetitive end-effector motions do not necessarily yield repetitive joint motions. Baillieul17 proposed an extended Jacobian matrix, which is a square matrix contains the additional information to optimize a specified cost function. The algorithms, which are based on the extended Jocobian matrix, have a locally cyclic property. Many researchers have been produced in the last few years in this topic. A large volume of research has been proposed in this topic in the last few years such as the quadratic-programming method, optimal-perturbation method,4 Non-dominated Sorting Genetic Algorithm (NSGA-II) and Differential Evolution (DE) methods,18 a multi-objective genetic algorithm for obstacle avoidance,19 the closed-loop inverse kinematics algorithm with GA (CLGA) method20 and hybrid-motion planning method.21 These constrained optimization problems are very complicated, especially as the robot manipulator has hyper-redundant degrees of freedom. Therefore, how to increase the computation performance is a big challenge for the redundant robots in real-time implementation. To solve singularity of redundant robot with task priority problems, this paper proposed a CUDA evolution algorithm to implement real-time motion planning. Genetic algorithm (GA) is a stochastic optimization method for solving many practical problems in engineering, science and business domains, but its execution time may become a limiting factor for some huge optimization problems. Fortunately, the evolution of natural population is very suitable with a parallel architecture, because the most time-consuming fitness evaluations can be performed independently for each individual in population. There are various types of parallelization in GAs: master-slave models, coarse-grained models, fine-grained models, hierarchical models, island models, and hybrid models. The emergence of many-core architectures for GPGPU provides the opportunity to significantly reduce the runtime of many complicated bioinformatics algorithms, such as Sequence and Genome Analysis.22 Using CUDA supplies the system based on commonly available and inexpensive hardware (CPU and GPUs) with more powerful high-performance computing power, which are generally not provided by conventional general-purpose processors. To obtain the optimal inverse kinematic solution for motion planning of a redundant robot with obstacle avoidance, the computation load is very large if the grid search algorithm is used. The motivation of this work is to use a real-coded genetic algorithm (or called evolutionary algorithm, EA) to replace the grid search algorithm to speed up the computation. Genetic algorithm (GA) is a stochastic optimization technique based on the idea of natural evolution and its search process based on natural selection developed by Holland.23 Nowadays graphic processing units (GPU) is emerging as one of the most powerful parallel processing devices due to increasing requirements for real-time 3D rendering. GPU have evolved into very powerful processors, which are especially well suited to address problems that are expressed as data-parallel computations, and their price remained in the range of consumer market. GPUs are optimized especially for SIMD-type processing with massive parallelism. Additionally, a general-purpose computing on graphics processing units (GPGPU) is the means of using a GPU to perform computation in applications traditionally handled by the central processing unit (CPU). CUDA is the computing engine that is accessible to software developers through variants of industry standard programming languages, such as C with NVIDIA extensions and certain restrictions.24,25 CUDA has been enthusiastically received in the area of scientific research. For implementing the real-time motion planning of redundant robots, a CUDA-based evolution algorithm method is proposed to reduce the computing time and make the real-time computing possible. The paper is organized as follows. Section 2 introduces the inverse kinematics of redundant manipulators and the experimental equipment. Section 3 presents the proposed EAMP based on compute unified device architecture (CUDA) programming to speed up real-time computation performance. Section 4 presents the experimental results for motion planning with obstacle avoidance in a workspace. Finally, Section 5 draws the main conclusions.
A redundant manipulator possesses more degrees of freedom (DOF) than the required to execute a given task. Consider a redundant robot with n DOF and a vector of joint variables is denoted by
Dimensional task space, where the class of tasks are described by a vector with m variables,
. If the DOF of the joint space is more than the DOF of the task space, n>m, the manipulator is redundant and not fully constrained for the task.
A redundancy for the redundant robot is defined as follows.
Where n>m however, the redundancy of a robot is not usually the same, but is determined with respect to a given task. For example, a planar robot with 3R joints (n=3) is redundant for the task of positioning its end-effector in the XY-plane (m=2), but not for the task of positioning and orienting the end-effector in the XY-plane (m=3). Another example is that the dimension of m-3 is required for a positioning task in 3D space. However, the dimension of m=6 is required for this task where the robot performs the positioning and orienting task in 3D space, because there are 3 dimensions for positioning and 3 dimensions for orientation. Therefore, the redundancy of the robot is determined by the joint space’s and the task space’s dimensions. Consider the forward kinematic relation for a redundant robot defined as follows.
(1)
The purpose of the inverse kinematics is to obtain q(t) that realizes the task:
at all times t. In general, the inverse kinematic relation is nonlinear and an analytical inverse relationship may not be obtained easily. However, the redundant robot has infinite solutions even for r(t)=constant as the manipulator is not fully constrained. During the tracking task is executed via the end-effector motion, the redundant robot arm may have a self-motion that can be chosen so as optimize the specified cost function in some manipulator’s behaviors, such as obstacle avoidance or avoiding singularities. The meaning of the self-motion is defined as an arm reconfiguration in the joint space that does not affect the task variable r(t)= constant . The inverse kinematics problem with redundancies has historically been solved through the Moore-Penrose pseudo-inverse methods by Whitney.14 By differentiating Equation (1) with respect to time, the differential relation between the andrq is as follows
(2)
Where
and J(q) is called the Jacobian matrix. For a redundant robot, the inverse kinematic relation of Eq. (2) can be obtained as follows.
(3)
Where is
called the pseudo inverse or Moore-Penrose generalized inverse of J (q) always exists and is the unique matrix satisfying
(4)
If J is full (row) rank, the pseudo inverse can be obtained as follows.
(5)
Else, it is computed numerically using the singular value decomposition (SVD) of J. However,
minimizes the norm of
and it is a particular solution of
the general solution of
is defined as follows.
(6)
Where using
can obtain all homogeneous solutions with respect to the associated homogeneous equation
that causes self-motions. The matrix
is the projection matrix with respect to
in the null-space
. Based on the null-space method, the choice
can be obtained via a linear quadratic optimization and is computed based on a projected gradient as follows
(7)
Where
is the projected gradient which realizes one step of a constrained optimization algorithm. For different task-priority problems, the objective function
can be designed based on the priority task.
(8)
To solve this singularity problem, some researchers applied the Greville algorithm26 or the singular value decomposition SVD method27-29 to solve this singularity problem and the null-space methods are also used to solve this problem.8,9,30 On the other hand, a redundant manipulator with degree-of-redundancy (DOR) is well suited to a multiple criteria problem besides the basic motion task, such as obstacles avoidance, torque minimization, dexterity measures, task priority control, energy minimization.1-13
System description
In this study, a robot manipulator with 8 DOFs is designed as shown in Figure 1. Tables 1 & 2 show the specification of the motors used for the system and the D-H parameters of the 8-DOF robot manipulator. Figure 2 shows the control architecture of this robot manipulator, where an NI Compact RIO 9074 is used as the real-time embedded controller for the whole system. The Compact RIO (cRIO) is a combination of a real-time controller, reconfigurable IO Modules (RIO), FPGA module and an Ethernet expansion chassis. The modules NI 9512, 9516 and 9505 are installed in the cRIO 9074 for the purposes of controlling servo motors and DC motors in P-command, I-command drive and PWM-command. The motion commands, which are computed in the PC, are transmitted to cRIO via the internet. In this study, a real-time control code is developed in Lab VIEW and embedded in cRIO 9074 for the real-time implementation. The control architecture is divided into three parts, which are the supervisor control, the trajectory generator, and the hardware-in-loop (HIL) control, and Figure 3 shows the block diagram of the whole system. The user can set the parameters into the system by the supervisor control block, such as the departure and destination, the increment or velocity constraints. After that, the supervisor control block transfers the command to the trajectory generator to produce the trajectory planning path. Finally, the HIL code in cRIO 9074 is used to make the robot manipulator track the desired trajectory and perform the priority task such as obstacle avoidance.
|
Motor Type |
Gear Reducer |
Related Torque(Nm) |
Joint 1 |
Servo motor |
1:20 |
6 |
Joint 2 |
Servo motor |
1:40 |
76 |
Joint 3 |
Servo motor |
1:40 |
76 |
Joint 4 |
Servo motor |
1:20 |
6 |
Joint 5 |
DC motor |
0.09306 |
5.772 |
Joint 6 |
Smart servo |
0.18056 |
6.4 |
Joint 7 |
Smart servo |
0.16944 |
10.672 |
Joint 8 |
Smart servo |
0.18056 |
6.4 |
Table 1 The motor parameter of robot manipulator with 8DOF
Cartesian trajectory tracking and motion planning with obstacles avoidance
To search the optimal motion planning of a predefined end-effector trajectory with obstacle avoidance, a multi objective optimization problem involves multiple objective functions and the optimization problem can be formulated as follows.
(9)
Subject to
, where the set X is the feasible set of end-effector’s coordinate points constrained by the desired trajectory in the Cartesian space. The first task is to minimize the tracking error and the cost function is chosen as
the optimization problem of motion planning for tracking is described as follows.
(10)
subject to
and
where
is the desired end-effector position,
is the actual end-effector position vector at the k-th sampling, and
is a positive scalar, which is used to limit the joint angle’s variation. The optimization is used to obtain the best inverse kinematic solution from the set
so that the tracking error
is minimized and the joint angle’s variation is limited in the permissible range in one sampling time.
(11)
|
|
|
|
|
A0 |
0 |
28 |
0 |
0o |
A1 |
q1 |
15 |
0 |
−76o |
A2 |
q2 |
27.5 |
0 |
90o |
A3 |
q3 |
0 |
0 |
−90o |
A4 |
q4 |
40 |
0 |
−90o |
A5 |
q5 |
17 |
0 |
−90o |
A6 |
q6 |
34 |
0 |
90o |
A7 |
q7 |
0 |
0 |
−90o |
A8 |
q8 |
24 |
0 |
0o |
Table 2 The D-H parameters of the 8 DOF robot manipulator.
Figure 1 Prototype of robot manipulator with 8DOF.
Eq. (10) describes the optimization problem to obtain the inverse kinematic solution for minimizing tracking error. To standardize the multi objective optimization problem, the second priority task of the obstacle avoidance in Eq. (11) is modified as follows.
(12)
Solving a multi objective optimization problem is understood as a representative set of Pareto optimal solutions. One of the solving methods is formulating a single objective optimization problem to represent the multi objective optimization by linear scalarization such that optimal solutions to the single-objective optimization problem are Pareto optimal solutions to the multi objective optimization problem. In this study, the multi objective method using linear scalarization for the two task-priorities is described as follows.
(13)
Where the weighting factors of the objectives
the parameters of the secularization, and ε-constraint method is applied to this optimization as follows.
(14)
Figure 2 Controller architecture of robot manipulator with 8 DOF.
Figure 3 Software architecture of controller.
Subject to
,
for
where the parameters are the εi upper bounds of the objectives which are
to be minimized. Is the permissible zone for trajectory tracking tasks. X In this study, a multi objective genetic algorithm (MOGA) method is studied to solve this problem. First, the positioning error is defined as follows.
(15)
Where
the trajectory references and the actual end-effectors’ position are
Therefore, the tracking for each direction can be defined as
and
. If the tracking error
is smaller than the permissible value
then the end-effectors’ position
is located in the permissible zone
.
An evolution algorithm (EA) based motion planning method is proposed to produce the motion planning and trajectory tracking with obstacle avoidance. The processes for the proposed EA-based motion planning (EAMP) are described as follows.
- An initial population of EA is randomly composed of a large set of gene with chromosomes as described in Figure 4, where k is the time indexing, j is the joint indexing and i represents the index of the gene. The initial population is produced using the stochastic selection. The algorithm allocates a population of gene Pi (0) using the stochastic selection from the permissible set at each step, where Pi (0) is the ith gene, whose chromosomes are
which is defined as the gene
. The gene
whose chromosomes are constrained in the permissible sets
.
- Filter the gene
in this population to satisfy the following condition.
(16)
Subject to
where n is the number of joints, N is the number of the population and ρ is the radius of the permissible zone. After this filtering process, the permissible chromosomes should satisfy the condition where the end-effector positions are located in the region of
.
- The objective function
is used to evaluate the fitness of each individual in this population. The set of fitness values are used to sort the population, eliminate the badly-fitted individuals, mate the best-fitted chromosomes, and then propagate the “good” genes (parameter combinations) to the upcoming generation. These processes are repeated until reaching a certain number of generations. The procedures of the RGA are described as follows.
- Compute the fitness function: the fitness values are used to sort the population, eliminate the badly-fitted individuals; the individual with the higher fitness function has the better survival chance. In this case, the fitness function is defined as follows
(17)
- Selection: determine pairs of genes for mating. The gene with higher fitness value has the higher priority to become the parents for the evolution.
- Crossover with the random selection: the genes after the selection operation can produce the next generation using the crossover operation. Whether the crossover operation performs is determined by the crossover rate and the crossover rate is defined as 0.8 in this study. The crossover method used in this study is a linear combination of two vectors (chromosomes) with two random weighting variables as follows.
(18)
Where P1 and P2 are the gene of the parents; 1 C and 2 C are the gene of the children; , αβ are the uniformly distributed random variables between 0 and 1.
- Gaussian mutation operation: if the offspring are determined by the crossover and selection operations, the optimization may fall into local minimum. Using the mutation operation can maintain genetic diversity from one generation of a population to the next. Mutation occurs during evolution according to mutation probability. The mutation probability should be set low to avoid making the RGA turn into a primitive random search and the mutation probability is defined as 0.03 in this work. If the gene is chosen to perform the mutation operation, its chromosomes are obtained as follows.
(19)
Where Y is a random variable of the Gaussian probability distribution between -1 and 1
is the upper bound of the angular change for the Joint j in one step.
- Reproduction with elitist strategy: after the above RGA operations, two elites in the parents’ generation are guaranteed to survive to the next generation.
Figure 4 Illustration of the i-th gene at the k-th sampling.
Genetic algorithm (GA) is a stochastic optimization method for solving many practical problems in engineering, science and business domains, but its execution time may become a limiting factor for some huge optimization problems. Fortunately, the evolution of natural population is very suitable with a parallel architecture, because the most time-consuming fitness evaluations can be performed independently for each individual in population. There are various types of parallelization in GAs: master-slave models, coarse-grained models, fine-grained models, hierarchical models, island models, and hybrid models. The emergence of many-core architectures for GPGPU provides the opportunity to significantly reduce the runtime of many complicated bioinformatics algorithms, such as Sequence and Genome Analysis.31 Using CUDA supplies the system based on commonly available and inexpensive hardware (CPU and GPUs) with more powerful high-performance computing power, which are generally not provided by conventional general-purpose processors. To obtain the optimal inverse kinematic solution for motion planning of a redundant robot with obstacle avoidance, the computation load is very large if the grid search algorithm is used. The motivation of this work is to use a real-coded genetic algorithm (or called evolutionary algorithm, EA) to replace the grid search algorithm to speed up the computation. Genetic algorithm (GA) is a stochastic optimization technique based on the idea of natural evolution and its search process based on natural selection developed by Holland.29 The original GA operates using binary code of chromosomes, but RGA or evolutionary algorithm (EA) uses real-coded chromosomes.30,31 Figure 5 shows the procedure for the EA-based motion-planning method and the optimal solution
are determined at each tracking points in sequence. To implement real-time motion planning with obstacle avoidance, the EAMP is implemented on the CUDA target. Figure 6 shows the flowchart of CUDA for the proposed EAMP. In this study, the code is developed on Lab view IDE, but the CUDA code is performed in the GPU and only supported in C language. Therefore, the CUDA kernel code should be transferred into a DLL file first and then it can be executed in the GPU as the main code (in the host) calls the DLL function file. If the main code is executed in Labview to call the initializing population program (DLL file), then the DLL file would copy data from host memory to the global memory in the GPU, where the program is performed using CUDA kernel. After the CUDA code is finished in the GPU, the program would copy the result from the global memory to the host memory and finish the initial population process. Figure 7 shows the flowchart of the RGAMP in Lab view and the program from left to right are initial population, fitness function calculation, tournament selection, crossover and mutation. The main idea and the detail functions are described as follows.
Initial population using CUDA
The CUDA thread is different from PC thread. In order to generate the initial population in parallelism, the first thing is to determine how many core needed to use. In this study, the number of CUDA thread depends on the number of chromosomes as shown in Figure 8. The main idea is to generate a lot of random value by M cores on CUDA target and each core generates random values using “FOR” loop where N is determined by the DOF of the redundant robot; MN × random values are generated finally. The pseudo random number generator (PRNG) is very important for the proposed Method, because the GPU cannot generate random seeds by time and random seeds are needed to be generated on host. There are many different ways for PRNG.32 Before 2010, CUDA libraries did not include the function for generating random numbers, so the kernel has to generate random numbers using an original process. CUDA SDK comes with a sample random number generator based on Messene twister proposed by Matsumoto et al.34-36 The process is to operate the random seed array in the global memory, and then an array of random numbers, based on the seed array, is produced to the shared memory. In 2010 August, CUDA 3.2 released CURAND, a library for PRNG using Xorwow generator was selected as the PRNG standard of CUDA.36 XORWOW PRNG is introduced by Marsaglia in 2003 to add xor-shift with Weyl sequence.36 First, the PRNG is performed in the host for the proposed method, where the random numbers are produced by CPU. As shown in Figure 8, the random numbers are generated using standard C language routines in the host. This includes the set of random numbers,
as follows.
Figure 5 Procedure for the EAMP.
Where
are the sets of random numbers required by crossover, mutation, and selection stages. For each generation, the random numbers are generated in the host and they are copied to the device for the computation of the proposed method. Each core obtains the random seeds from the seed memory and produces the random numbers using the random seeds. The “for” loop generates N random values and transmits them to the chromosome memory by specific arrangement
. The index i is the number of the current core, the index j is the number of the joint.
Calculate fitness function using CUDA Using CUDA
The GPU with many cores could calculate the fitness values for each chromosome in parallelism. Figure 9 shows that the core number is determined by Number of chromosome. For each core, the first thing is to calculate fitness value of each chromosome from the memory space and the next step is to calculate the position of end-effort of robot manipulator. Then, the fitness values are transmitted to the GPU memory and the GPU returns M fitness values for each chromosome.
Selection and crossover for the selection operation
The tournament selection is used to choose the better chromosomes and put them into the crossover pool. The single-point crossover method is used for the EA. The main idea of CUDA code is shown in Figure 10, where each core exchanges its genes from two chromosomes. Thus, this component only employs M/2 cores and each core obtains the joint parameters using the selection and crossover operations from the memories of chromosome1 and chromosome 2, respectively. The crossover rate is designed as 0.8 in this study. First, the program produces a random value and compares it with the crossover rate, where the random value is used to determinate whether the crossover process is performed or not. Second, if the crossover rate is bigger than the random number, then the crossover process is achieved. If the crossover condition is satisfied, the program produces a random crossover point. Then, the “for” loop function is used to perform the crossover operation, where the elements of chromosome 1 and chromosome 2 are exchanged before the index of the crossover point and they are remained as the same after the index of the crossover point. Finally, the GPU transfers the data back to new Chromosome1 memory and the Host obtains M chromosomes.
Figure 6 Flowchart of genetic algorithms based on CUDA.
Mutation for the mutation operation
The component generates N random value for each thread and makes each gene have an opportunity to mutation. Figure 11 shows the main idea and the mutation rate is configured 0.03 in this study. First, a random value is generated by the program. Second, if the mutation rate is bigger than the random number, then the mutation process is achieved. As the mutation condition is satisfied, the GPU regenerates a new gene using
randomly and transmits the chromosome data into the chromosome memory. For each generation of the EAMP, the crossover, mutation, and selection operations are performed in parallel for the device. The parallel computing processes in the device are described as follows.
- Launch GPU Kernel to calculate the fitness of each individual in parallel and copy the fitness values from the GPU to the HOST for comparison.
- Reproduction copies the random angular solution in the permissible range from the random pool to the device.
- Launch GPU Kernel and generate the random numbers in parallel for the crossover and mutation operations.
- Launch GPU Kernel to perform the crossover operation for the EAMP in parallel.
- Launch GPU Kernel to perform the mutation operation for the EAMP in parallel.
- Initialize the offspring in the next generation and return to Step 1. Finally, the host is used to receive the optimal result where the individual with the best fitness from the device.
To check the feasibility of real-time motion planning, a trajectory planning task with obstacle avoidance is designed to discuss the positioning accuracy and computation performance for the proposed method.
System description in this study
A robot manipulator with 8 DOFs is designed as shown in Figure 1. Tables 1 & 2 show the specification of the motors used for the system and the D-H parameters of the 8-DOF robot manipulator. Figure 2 shows the control architecture of this robot manipulator, where an NI Compact RIO 9074 is used as the real-time embedded controller for the whole system. The Compact RIO (cRIO) is a combination of a real-time controller, reconfigurable IO Modules (RIO), FPGA module and an Ethernet expansion chassis. The modules NI 9512, 9516 and 9505 are installed in the cRIO 9074 for the purposes of controlling servo motors and DC motors in P-command, I-command drive and PWM-command. The motion commands, which are computed in the PC, are transmitted to cRIO via the internet. In this study, a real-time control code is developed in Lab VIEW and embedded in cRIO 9074 for the real-time implementation. The control architecture is divided into three parts, which are the supervisor control, the trajectory generator, and the hardware-in-loop (HIL) control, and Figure 3 shows the block diagram of the whole system. The user can set the parameters into the system by the supervisor control block, such as the departure and destination, the increment or velocity constraints. After that, the supervisor control block transfers the command to the trajectory generator to produce the trajectory planning path. Finally, the HIL code in cRIO 9074 is used to make the robot manipulator track the desired trajectory and perform the priority task such as obstacle avoidance. 4.2 Motion planning using CUDA architecture the proposed EAMP method is studied to solve this problem to implement Realtime motion planning. The fitness function of the RGA motion planning with avoidance obstacle method is shown in Eq. (14). Table 3 describes the robot parameters for this experimental case study. The initial position of the end-effector is
(mm) with
the first step is to make the end-effector follow a straight-line trajectory between
and
. Therefore, the reference tracking point in Cartesian space can be obtained by
(21)
where
and N is the number of the tracking reference. The second step is to make the robot away from an obstacle, which is a rectangular box. The coordinate of the four edges for the obstacle’s top plane are [15, 50, 50], [5, 50, 50], [5, 100, 50] and [15, 100, 50]. The third step is to calculate the forward kinematic using the D-H matrix. For this 8-DOF robot, the parameters of the D-H matrix are described in Table 2, where qi denotes the joint angle between the incident normal of a joint axis, ai is offset distance between two adjacent joints axes, di is link offset along this common axis from ith link denotes the position of the end to the (i+1)th link, and αi is twist angle between two adjacent joint axes. Hence, using the transformation of the DH matrixes, A0 to A8, the position of the end-effector at the ground coordinate system can be obtained as follows.
Figure 7 Flowchart of Lab view program based on CUDA.
Figure 8 Schematic diagram for population initialization.
Figure 9 Schematic diagram for calculate the Fitness function.
Figure 10 Schematic diagram of crossover operation.
Figure 11 Schematic diagram of mutation operation.
Where
and
denotes the position of the end effector with respect to the 8th coordinate system and
denotes the position of the end-effector, P0, which is relative to the base coordinate system. The fourth step is to obtain the inverse-kinematic solutions using the proposed EAMP method for the tracking task with the consideration of obstacle avoidance. To compare the computing performance for the serial and parallel RGAMP methods from the perturbation motion planning method,5 the designed parameters of perturbation are described in Table 3. In addition, the results for the CUDA-based EAMP using GPU with the PRNG of the GPU are denoted as CEA. The experimental results for him EAMP using CPU only are denoted as GA. The parameters of GA for the proposed EAMP, which are the crossover rate, mutation rate, generation number, and population number, are also described in Table 3. From Figure 6, the communication needs 4 times to copy data in the crossover and mutation process, because the initial data is needed to copy to GPU from Host and then it is copied from GPU to Host as calculating finished. Therefore, the CUDA EA program is modified to combine crossover and mutation operator as shown in Figure 12 so that the number of copying can reduce to 2 times.