Sampling Based Planner (Motion Planning)
Here I implemented a sampling-based planner for the point robot Kilobot from K-Team, using RRT and A* search.




First, I used the Rapidly exploring Random Trees (RRT) method to "grow" a tree of nodes in a 1x1 meter C-space (plane) with obstacles, and then I used A* search to generate a path from the start to the goal node.
The RRT algorith generates (x-y) random samples within 1x1m plane and evaluates for collision with the predefined obstacles. If the sample is collision free, it finds the nearest node to the sample and creates the new node in the direction of the sample, using a straight-line local planner, with an edge from the nearest to the new node.
The algorithm ends when a new node is within the tolerance of the goal node. After all nodes ad edges were generated, I used the A* Search algorithm to find the optimal-cost path from the start node to the end goal.
RRT Sampling and A* Search
I used Python 3.7 to develop this program, with the libraries numpy and csv. I also used the library 'modern_robotics' provided in the Modern Robotics wiki website.
http://hades.mech.northwestern.edu/index.php/Modern_Robotics
For the simulations, I used the software V-REP EDU PRO software.

I followed the assignments in the Course 4: Motion Planning, which is part of the online specialization Modern Robotics: Mechanics, Planing and Control, offered by Nortwestern University and Coursera.
