Cruise Control Feature

We definitely believe that there is more work that could be done in the future to improve upon this project. One of our goals that we did not have time to implement was to create a “cruise control” style control system for our car. This way, the magnitude of the speed signal sent to the motor can be updated dynamically. This would come in handy when the car tries to travel uphill and begins to slow down due to the effects of gravity.

Our idea was to create a feedback control system that adjusts the speed based off of the difference between the expected (reference) speed and the actual speed (measured by the encoder). We think that a simple PID (proportional-integral-derivative) control with zero integral and derivative gain would be enough to satisfy this goal.

Increasing Speed Even More

We estimate that our car traveled at approximately 6 miles per hour on the day of our demonstration, but we know that our car model has the capability to reach upwards of 35 miles per hour. Building off the work we have started this semester, improvements to the car design can help it reach that speed while remaining autonomous. Keeping this in mind, other factors would surely need to be considered before raising the speed:

  • Steering angles for when the purple turning markers are not centered would need to be closer to 90 (straight).
  • The amount of time it takes to turn would decrease.
  • Installing some sort of braking mechanic would help with speed changes, otherwise the car will keep its momentum and behave unexpectedly.
  • If the cruise control system were to be implemented, adding integral and derivative gain would likely help its performance.

Generalizing to Any Path

Much of the work in our project was directed towards getting the car to successfully navigate the path designated for the demonstration. However, improving the algorithms that we used will help the car be able to drive on any path. Here are some of the way we propose making improvements:

  • Using more complex control algorithms, such as LQR (Linear Quadratic Regulator) for speed and steering control
  • Make adjustments to the design so that the HSV values do not need to be updated when the lighting changes drastically
  • Installing more sensors to detect more information about the path
  • Updating and writing more code on the Raspberry Pi