Problem Statement:
Given a starting position (xs, ys), a target position (xt, yt), and a list of the convex hull points for each obstacle, find a feasible trajectory for an omnidirectional circular robot with radius r to follow to get to the target position avoiding obstacle collisions.
Note, we've set the radius of the robot to 1.
RUNNING THE CODE:
Compile by typing "make" on terminal
Run by typing "./plan" on terminal
The above runs the default map with RRT-Connect
If you want to change the map and algo you can also provide two command line arguments.
The usage is as follows
./plan [FILENAME] [ALGO]
where Maps are in maps/ folder.
Algo is 0 for RRT-Connect and 1 for RRT-Star.
Example: ./plan maps/map1.txt 1
CODE BASE:
-
main.cpp
- Contains the first file the planner runs. It parses user input and runs either RRT-Connect or RRT*
-
Planner.cpp
- Contains RRT-Connect and RRT* Algorithms
-
Visualizer.cpp
- Contains helper functions to visualize our maps
-
utils/Graph.h
- Contains graph data structure implementation
-
utils/KDTree.cpp
- Contains kd-tree data structure implementation
-
utils/Map.cpp
- Contains Map class to keep track of all information related to environment
-
utils/Obstacle.cpp
- Contains Obstacle class to keep track of all information related to an obstacle
-
utils/Point.cpp
- Contains Point class which is utilized throughout the code base
-
utils/Search.h
- Contains A* Search Function