Evolutionary Artificial Potential Field for Path Planning: A GPU Implementation Ulises Orozco-Rosas, Oscar Montiel, Roberto Sepúlveda March 2015
Outline Introduction Evolutionary Artificial Potential Field GPU Implementation Results Conclusions and Future Work 2
Introduction Motivation Robotics is one of the most important technologies since it is a fundamental part in automation and manufacturing process. In particular, there is an increasing demand of autonomous mobile robots in various field of application. http://blogs.nvidia.com/blog/2014/01/07/audi-will-deploy-tegra-k1-to-power-piloted-driving-initiatives/ http://www.nasa.gov/centers/goddard/news/features/2012/msl-post-landing_prt.htm. http://www.canada.com/technology/futuretech/self+driving+cars+almost+here+expect+tomorrow/6806156/story.html 3
Introduction Problem This work addresses the problem of autonomous navigation of a mobile robot to take it from one position to another one without the assistance of a human operator, in particular, planning a reachable set of mobile robot configurations to accomplish its mission. Path planning of a mobile robot is to determine a collision-free path from a starting point to a goal point optimizing a performance criterion such as distance, time or energy, distance being the most commonly adopted criterion. http://www.mobilerobots.com/researchrobots/p3at.aspx 4
Introduction Research objective The main objective is to design and develop an efficient path planning algorithm, that it is capable to find an optimal collision free path in a reasonable time to take the robot from the start to the goal point, considering static and dynamic environments with obstacles. 5
Evolutionary Artificial Potential Field Literature review Artificial Potential Field (APF) Khatib (1986) proposed the APF, this approach is based on two potential field (attractive + repulsive) to drive the robot to its goal. Evolutionary Artificial Potential Field (EAPF) Vadakkepat et al. (2000) proposed Evolutionary APF (EAPF) to derive optimal potential field functions using GAs. Population Parallel Evolutionary Artificial Potential Field (PEAPF) Montiel et al. (2014) proposed the Parallel EAPF algorithm using the CPU threads to accelerate the fitness function evaluation. Gen. Ops. Evaluation Selection 6
Evolutionary Artificial Potential Field Artificial Potential Field Potential Surface Potential Area Obstacle Goal Start Total potential field U(q) total = U(q) att + U(q) rep Attraction potential field U(q) att = 1 2 k a(q q f ) 2 Repulsive potential field 1 U(q) rep = 2 k r 1 ρ 1 ρ 0 2 if ρ ρ 0 0 if ρ > ρ 0 Total force F(q) = U(q) total 7
Evolutionary Artificial Potential Field Artificial Potential Field ADVANTAGES DISADVANTAGES Y Path Y Robot X X 8
Evolutionary Artificial Potential Field Evolutionary Artificial Potential Field Population (chromosomes) Genetic operators Genetic Algorithms (GAs) are adaptive heuristic search algorithm premised on the evolutionary ideas of natural selection and genetic. The basic concept of GAs is designed to simulate processes in natural systems necessary for evolution. Selection (mating pool) Evaluation (fitness) 9
GPU Implementation Parallel Evolutionary Artificial Potential Field Population (k a, k r ) 00 (k a, k r ) 01 (k a, k r ) 02 (k a, k r ) 0n Genetic operators (chromosomes) Selection Evaluation (fitness) (k a, k r ) 10 (k a, k r ) 11 (k a, k r ) 12 (k a, k r ) 1n (k a, k r ) m0 (k a, k r ) m1 (k a, k r ) m2 (k a, k r ) mn (mating pool) 10
GPU Implementation GPU Implementation The APF is blended with an Evolutionary Algorithm The potential functions are implemented in GPU (parallel) Potential field Potential force Path evaluation The genetic operators are implemented in the CPU (sequential) Selection Crossover Mutation The path planning system was implemented with Matlab and CUDA programming platforms 11
GPU Implementation Host Matlab call CUDA % Create CUDAKernel object kernel_apf_potential = parallel.gpu.cudakernel( apf_gpu_eval.ptx,... apf_gpu_eval.cu, APF_Potential ); % Set object properties kernel_apf_potential.gridsize = [gridsize, 1, 1]; kernel_apf_potential.threadblocksize = [blocksize, 1, 1]; % Call feval with defined inputs [dev_ua, dev_ur,...] = feval(kernel_apf_potential,...); % Collect data Ua = gather(dev_ua); Ur = gather(dev_ur);... eapf.m 12
GPU Implementation Device CUDA kernel apf_gpu_eval.cu // CUDA kernel for potential field computation global void APF_Potential(float *Ua, float *Ur,...) { int id = blockidx.x * blockdim.x + threadidx.x;... } Potential field Potential force Evaluation U(q) total = 1 2 k a(q q f ) 2 + 1 2 k r 1 ρ 1 ρ 0 2 2 F(q) = U(q) total S = (q i+1 n i=0 q i 2 ) 1/2 13
Results: off-line path planning 1 2 3 4 5 Results 14
Results: on-line path planning 1 2 3 4 5 Results 15
Computation time (s) 1 2 3 4 5 Results EAPF computation time results In EAPF the solution quality improves with larger populations. The experimental results show a speedup of 4.2 on GPU implementation. 140 120 CPU (sequential) Intel Core i7-4710hq CPU @ 2.50Ghz GPU (parallel) GeForce GTX 860M 100 80 Population size (N x 10) Mean (µ) seconds Std. Dev. (σ) Mean (µ) seconds Std. Dev. (σ) Speedup 32 4.491 1.128 5.902 0.985 0.8 64 8.255 0.770 5.784 0.068 1.4 128 16.895 1.165 6.120 0.033 2.8 256 33.832 1.478 10.762 0.230 3.1 512 67.957 2.430 17.402 0.257 3.9 1024 134.701 3.548 32.003 0.528 4.2 60 40 20 0 32 64 128 256 512 1024 Population size (N x 10) CPU GPU 16
Conclusions and Future Work Conclusions Through the integration of the APF with GAs using parallel computing, it has been presented a path planning system capable of obtaining good solutions (even the global optimum) in a moderate run time. It has been demonstrated that parallel EAPF on GPU is capable to solve the path planning for off-line and on-line cases. Due to the simulation results, it can be concluded that parallel EAPF on GPU can be capable of facing more complex and bigger planning problems. 17
Computation time (s) 1 2 3 4 5 Conclusions and Future Work Future work In the future, the work will be expand to complex sceneries. The approach will also be expanded to real-world implementation. 140 120 expected results 100 80 60 40 20 0 32 64 128 256 512 1024 Population size (N x 10) 1024*1024 1048576 http://www.futura-sciences.com/magazines/high-tech/infos/actu/d/robotique-robots http://www.dailygalaxy.com/my_weblog/2012/02/newsflash http://www.darpa.mil/newsevents/releases/2014/03/13.aspx CPU GPU 18
Conclusions and Future Work 19
Acknowledgments We thank to the (Instituto Politécnico Nacional - IPN), to the Comisión de Fomento y Apoyo Académico del IPN (COFAA), and the Mexican National Council of Science and Tehnology (CONACYT) for supporting our research activities. Special thanks to Dr. Antonio Sanz Montemayor from University of Rey Juan Carlos, Spain. For his valuable advice to improve this work 20
Thanks for attending! ulises.or@gmail.com uorozco@citedi.mx mx.linkedin.com/pub/ulises-orozco-rosas/44/50/714 https://www.researchgate.net/profile/ulises_orozco-rosas 21