/vehicle_control

Path Following Control for an Autonomous Vehicle

Primary LanguageJupyter Notebook

vehicle-control

Description

Path Following Control for an Autonomous Golf-Cart. This is a repository containing code used in our capstone project. Objectives of this project are:

  1. Estimating the states of the vehicles, i.e. position, orientation, & orientation in 2D plane, using GNSS, Accelerometer, Gyroscope, and EKF algorithm,
  2. Generating the path used in the experiment by using a pre-taken position (x,y) from GNSS,
  3. Enabling the golf cart to follow a given path and speed automatically.

You can find the controller and EKF class in src/Python folder. You can also find the Arduino code in the src folder. You can see custom messages in the msg folder. The codes executed in the previous experiment are located in the nodes folder. You can change the parameter of that code (inside the nodes folder) in the corresponding config file.

Learning Resources

To prevent conflicts that may occur, we suggest you use the ROS Melodic. You can learn some basics of ROS used in this experiment here:

  1. Installing and Configuring Your ROS Environment
  2. Navigating the ROS Filesystem
  3. Creating a ROS Package
  4. Building a ROS Package
  5. Understanding ROS Nodes
  6. Understanding ROS Topics
  7. Understanding ROS Services and Parameters
  8. Using rqt_console and roslaunch
  9. Creating a ROS msg and srv. I didn't use the ROS srv. But, feel free to explore.
  10. Writing a Simple Publisher and Subscriber (C++). Read this if you use the C++ language.
  11. Writing a Simple Publisher and Subscriber (Python). Read this if you use the Python language.
  12. Examining the Simple Publisher and Subscriber
  13. Defining Custom Messages
  14. Recording and playing back data

You can learn the basic of ROS-Arduino from here.