AGV Simulator
Skills Used: Path planning (A*), Path following, Robot Kinematic Model, obstacle avoidance
This project shows a simulated 2D vehicle in an environment with static obstacles, utilizing A* for path planning and a PD controller for path following. The goal of the robot is to navigate through the environment without any collisions with the obstacles. This project is programmed in C++ using Qt for the GUI. The project is thoroughly unit tested using GTest and built using CMake.
The user can set the robot position, goal position, and the number of obstacles. The robot follows the path found by A* using a PD controller for the linear velocity and angular velocity of the robot. The controllers can be tuned directly by the user. A* finds a path with a given factor of safety around obstacles to avoid collisions.
In the future I would like to use an EKF for localization and path planning instead of using the ground truth map. Also, using dynamic obstacles would make the problem more interesting, requiring multiple solves of the path planning problem. I would also like to find a few ways to optimize the code, making the A* Solve time faster.Â