Skip to content

Latest commit

 

History

History
129 lines (85 loc) · 6.96 KB

File metadata and controls

129 lines (85 loc) · 6.96 KB

Project 3: Control

CS6963: Algorithmic Foundations of Robotics, 2025 Fall, University of Utah

  • Name: Seongil Heo
  • UID: u1527760
  • Date: November 7th, 2025

1. What tradeoffs did varying the Kp gain have on your PD controller’s performance?

When Kp was set to a low value (0.01), the robot reacted slowly to the tracking error.
This made the motion stable, but the path-following accuracy was poor.
So the robot couldn’t reach the destination.

When Kp increased (10), the robot corrected errors more quickly.
However, this caused overshoot and oscillation, making the motion unstable.

Therefore, simply increasing Kp does not guarantee better performance.
It is important to find a proper balance between fast response and stability.


2. Describe the tuning process for your PD controller. Justify your final gains Kp, Kd and include the controller plots for three reference paths on the default sandbox map (pid_circle.png, pid_left.png, pid_wave.png).

PID Paths
PID Left
PID Wave

The tuning process began with the circle path as the main reference.
Starting with Kd = 0, I gradually increased Kp to find a value that allowed the robot to follow the path as smoothly as possible without oscillation.
Through several trials, the best range was between 0.5 and 0.7.
After this, I gradually increased Kd to reduce overshoot and lateral oscillations that occurred when entering and exiting corners.
Then, I adjusted both parameters by increments of 0.1 to achieve a good balance between responsiveness and stability.

As a result, the final gains Kp = 0.7 and Kd = 0.4 provided the most stable tracking performance.
These gains were validated across three different reference paths.


3. Describe the lookahead distance tuning process for your Pure Pursuit controller.

PP Wave

After confirming that the maximum configurable lookahead distance was 3.9,
I gradually increased the value starting from 0.1.
When the lookahead distance was too small, the vehicle reacted excessively to small changes in the path, causing large oscillations and unstable motion, making normal driving impossible.

On the other hand, when the distance was too large, the vehicle followed the wave path almost like a straight line, failing to properly track the curved sections.

Through multiple experiments, a lookahead distance of 0.9 produced the most stable and smooth tracking, minimizing both oscillation and path deviation.
Therefore, the final lookahead distance was set to 0.9.


4. Include controller plots on the wave path for cases where the lookahead distance is too small/large.

PP Small
PP Large

When the lookahead distance was set to 0.01, the vehicle became very unstable.
Because the reference point was too close, the controller overreacted to small path changes, resulting in sharp steering movements.
At first, the vehicle tried to follow the path, but it repeatedly circled near the starting point and failed to follow the path.

When the lookahead distance was set to 3.9, the motion appeared stable but the path-following accuracy significantly decreased.
The reference point was too far ahead, causing the vehicle to treat the wave path almost like a straight line and fail to track the curved sections properly.

Therefore, a too small lookahead distance causes oscillation and instability, while a too large lookahead distance leads to low accuracy and curve neglect.


5. How does varying the radius of the circle path affect the robustness of the Pure Pursuit controller?

Radius 0.5
Radius 5

When the radius of the circle path was small (0.5), the curve was very sharp, and the vehicle had trouble following the path smoothly.
The controller made large steering movements, which caused the car to shake and overshoot.

When the radius was large (5), the curve was smooth, and the vehicle followed the path much more stably and consistently.
The steering changes were smaller, and the car stayed close to the reference path.

The Pure Pursuit controller works better on paths with larger radius than smaller radius.


6. Describe the tuning process for the MPC optimization parameters.

MPC Circle
MPC Wave
MPC Saw

Both K and T were randomly adjusted from small to large values during the tuning process.
When K = 1, the controller assumed only one steering angle, causing the robot to spin in place without following the path.
When K ≥ 2, the robot was initially unstable but eventually succeeded in tracking the path.
When T was too large (over 20), the robot became unstable and oscillated because it predicted too far ahead but reacted too late, resulting in delayed control responses.
In other cases, no significant difference was observed.

When testing around K = 10 and T = 10, considering the robot’s physical size and control frequency, 8 control samples were found to be sufficient.
Therefore, the final parameters were set to K = 8 and T = 10, which provided the smoothest and most stable tracking performance.

The saw path was very difficult to track because the robot’s predicted future trajectories are fan-shaped curved paths.
Since these trajectories are generated based on the robot’s kinematic model, each path is inherently smooth and curved.
Therefore, sharp direction changes are not possible.


7. Controller plots for slalom_world map

Slalom Line
Slalom Wave


8. What other terms might you include if you customized your MPC cost function?

I would include a heading or orientation term in the cost function to align the robot’s direction with the path’s direction.
For example, adding a heading error term helps the vehicle maintain its orientation along the path and prevents it from deviating from the desired heading.
This would help address instability in sharp curves.

I would also add a clearance term to maintain a minimum safe distance from obstacles.
Including an obstacle clearance cost would impose an additional penalty when the vehicle comes too close to an obstacle.


9. Which controller is most robust? Which worked best in high-speed regimes?

All three controllers operated robustly in every case except for the saw path.
As expected, they performed perfectly robust on both the circle and line paths, showing stable and accurate tracking throughout the entire trajectory.

Both the PID and MPC controllers showed a significant drop in path accuracy at higher speeds and failed to complete the full path.
However, the Pure Pursuit controller successfully completed all paths, and except for the saw path, it also achieved high tracking accuracy on the other paths.