Robotics Club · Electrical lead

Autonomous Golf Cart

Steering control, sensing, and autonomy on a full-size robotic vehicle.

Role
Electrical Lead, Princeton University Robotics Club
Timeline
Current
Stack
ROS, C++, Python, PID, Path planning

Overview

The autonomous golf cart is a subteam of the Princeton University Robotics Club, and I'm its electrical lead. The project turns a golf cart into an autonomous vehicle. It combines sensors, embedded hardware, vehicle actuation, path planning, and control. Unlike a simulation, the cart has real steering hardware, imperfect sensors, and mechanical behavior that doesn't match the ideal model.

My role

As electrical lead, I'm responsible for the cart's electrical side: the sensors, the embedded hardware, and the actuation that lets software steer a full-size vehicle. I've also spent a lot of time on steering control:

  • Implemented a steering controller in ROS.
  • Tuned it on the real vehicle.
  • Worked on sensor integration, actuation, and bringing the system together.
  • Worked with path planning on the autonomy side.

System

The planner produces a target steering angle. The controller compares it to the angle measured by a sensor on the steering system and drives the steering actuator to close the gap.

Steering control loop: a target steering angle from the planner is compared with the measured angle; the error feeds a PID controller, which drives the steering actuator on the golf cart. A sensor measures the resulting angle and feeds it back.Plannertarget angleΣ+−errorPIDtune Kp, KdActuatorsteering motorGolf cartreal dynamicsAngle sensormeasured angle
The steering control loop. Tuning happened on the real cart, not just in simulation.

Tuning on the real vehicle

The steering controller is a PID loop. The gains that matter came from testing, not a textbook. My workflow was:

  1. Implement the controller and run it on the cart.
  2. Watch how the real steering responds: overshoot, oscillation, lag.
  3. Figure out whether the cause is the controller, the sensor, the actuator, or the mechanics.
  4. Adjust the gains and test again.

Most experiments ended up with a proportional gain around 11 and a derivative gain around 1.4. The exact numbers matter less than the process: find the source of the overshoot, change one thing, and check the result on the vehicle.

Challenges

  • Real sensors and actuators aren't ideal. Noise, delay, and mechanical play all show up in the response.
  • Problems cross disciplines. A response issue can be software, control theory, electronics, or mechanical, and you have to rule each one out.

What I learned

A controller that works in simulation is only the starting point. Getting it to behave on a real vehicle means understanding the whole loop, hardware included.