Applications of parallel computing in robotics problems
Metadata[+] Show full item record
Many typical robotics problems involve search in high-dimensional spaces, where real-time execution is hard to be achieved. This thesis presents two case studies of parallel computation in such robotics problems. More specifically, two problems of motion planning-the Inverse Kinematics of robotic manipulators and Path Planning for mobile robots-are investigated and the contributions of parallel algorithms are highlighted. For the Inverse Kinematics problem, a novel and fast solution is proposed for general serial manipulators. This new approach relies on the computation of multiple (parallel) numerical estimations of the inverse Jacobian while it selects the current best path to the desire con- figuration of the end-effector. Unlike other iterative methods, our method converges very quickly, achieving sub-millimeter accuracy in 20.48ms in average. We demonstrate such high accuracy and the real-time performance of our method by testing it with six different robots, at both non-singular and singular configurations, including a 7-DoF redundant robot. The algorithm is implemented in C/C++ using a configurable number of POSIX threads, and it can be easily expanded to use many-core GPUs. For the Path Planning problem, a solution to the problem of smooth path planning for mobile robots in dynamic and unknown environments is presented. A novel concept of Time-Warped Grids is introduced to predict the pose of obstacles on a grid-based map and avoid collisions. The algorithm is implemented using C/C++ and the CUDA programming environment, and combines stochastic estimation (Kalman filter), Harmonic Potential Fields and a Rubber Band model, and it translates naturally into the parallel paradigm of GPU programing. The proposed method was tested using several simulation scenarios for the Pioneer P3- DX robot, which demonstrated the robustness of the algorithm by finding the optimum path in terms of smoothness, distance, and collision-free either in static or dynamic environments, even with a very large number of obstacles.