Project Report
Student Name : Pranalee Jadhav
Student ID : 801030690
Title : Robot Path Planning Using Trapezoidal Cell Decomposition
Problem Statement :
Given an environment having convex and non-convex polygonal obstacles, the robot has to reach the goal state using a continuous, collision free and shortest path between start and goal state.
Model of robot used:
2D, single point, holonomic robot.
Programming language: Matlab
Objective:
1. Implement trapezoidal cell decomposition using the line sweep algorithm to decompose the environment into set of trapezoids/ cells (some of the trapezoids can have a side length as zero making them triangle)
2. Find Connectivity graph between the generated trapezoids/ cells.
3. Identify cells comprising start point and goal point respectively.
3. Find shortest path using the connectivity graph from start cell to goal cell.
4. Show the path from the start point to goal point.
Assumptions:
Explanation:
Trapezoidal cell decomposition
It is useful to find obstacle-free path for robots.
To find obstacle-free path in a complex and non-convex environment, we can decompose the environment into set of convex polygons like triangles or trapezoids .
In this project, I am implementing trapezoidal cell decomposition as trapezoids consists of at least a pair of parallel sides which makes it easier to calculate path between neighbouring trapezoids as compared to triangles.
I am using sweep line algorithm for trapezoidal cell decomposition which is given below. In step 2 of below algorithm, we are finding type of vertex. There are total 6 types.
Type | Endpoints | Convex/Concave |
1 | One left and one right (in,out) | convex |
2 | One left and one right (in,out) | concave |
3 | Both right (out) | convex |
4 | Both left (in) | convex |
5 | Both right (out) | concave |
6 | Both left (in) | concave |
figure 1.1
Algorithm:
Input: Set of polygon, start and goal point
Steps:
Steps to run the code:
Open matlab->Run file main_draggablepolygon.m
In the figure window, select type of polygon (number of sides)
Click on ‘add a polygon’
Drag the polygon vertices to change polygon interface as per wish.
Drag start and goal points to required location
Click on ‘decompose environment’
After this step, you will see the shortest path from start to goal point.
External Libraries used:
Challenges faced:
Scope of the project:
As mentioned in list of assumptions, it will not work for obstacles with holes and if any side of the obstacle is parallel to y-axis.
Future Scope:
Efficiency of the algorithm can be improved by merging neighbouring trapezoids if possible. These new cells are called ‘Boustrophedon Cell’. As number of cells decreases, path finding becomes easier and faster.
Summary:
Thus, I have successfully implemented Trapezoidal cell decomposition and satisfied the objective as submitted in the project proposal. I successfully tested with varied set of obstacles. I referred technical papers, textbooks to understand the concepts of algorithm which helped me in implementing the algorithm. I understood the drawbacks of the algorithm, like, for obstacles with side parallel to y-axis, it is better to use other algorithms like approximate cell decomposition, voronoi diagram.
Apart from this, I enjoyed programming in Matlab which was new to me.
References:
Screenshots:
Webpage Link:
or
https://lee0392.blogspot.com/2018/04/robot-motion-planning-project.html