Skip to content

Codaero/ece470_final_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My project involves controlling a simulated 4 wheel car with ackerman steering geometry to follow a desired path. Using Gazebo, ROS Noetic, and Python, I am able to simulate the car with a basic physics model and write code that can directly send control commands to the vehicle. The first part involves generating curved paths which is a Python function that takes in a starting point, end point, and two control points to define the curve. This versatile function allows me to create different shapes of cubic Bevier curves that I can tune with. The next part involved creating a controller that can take in these waypoints and move the vehicle so it can follow the path. Following a simple bicycle model which approximates the vehicle’s kinematics, I implemented a pure pursuit controller to get the car to steer towards desired setpoints. I added interpolation between the current vehicle’s position and the target waypoint to make it easier to implement a lookahead distance for the pure pursuit controller. For controlling the vehicle’s velocity I created two different methods to approach the problem. The first one is a dynamic velocity controller that changes the car’s velocity based on the cross track error between the vehicle’s current yaw heading and its required yaw to face the target point. The goal of this was to help get the car to slow down in steep turns so it is easier for the car to follow the target without having a high velocity creating instability with the control. This essentially at its core is a basic P controller. The second method involves a full PID control setup with a desired constant velocity I want the car to achieve. This method also involved tuning constants needed for achieving desirable results.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published