Skip to content

docs: 📝 Write sections 4.1, 4.2 and 4.4 of the book: cubic splines, Pure Pursuit and rear wheel feedback - #219

Open
Dhruv-Sharma29 wants to merge 1 commit into
ShisatoYano:mainfrom
Dhruv-Sharma29:docs/book-ch4-geometric-controllers
Open

Dhruv-Sharma29 wants to merge 1 commit into
ShisatoYano:mainfrom
Dhruv-Sharma29:docs/book-ch4-geometric-controllers

Conversation

@Dhruv-Sharma29

Copy link
Copy Markdown

Closes #200

Overview

Adds the theory layer of the three remaining sections of chapter 4, one page each, following the writing guide and the Stanley section:

  • 4.1 Course generation with cubic splines (doc/path_tracking/cubic_spline.md): the natural cubic spline derived step by step (conditions, coefficients, the tridiagonal system, natural ends), the chord-length parameter of the 2D course, the yaw angle and curvature formulas, and the target speed along the course (switch-backs and the stop at the end).
  • 4.2 Pure Pursuit (doc/path_tracking/pure_pursuit.md): the look-ahead point, the arc through it (law of sines), the curvature as a proportional law on the look-ahead point's offset, the steering angle from the bicycle model, the speed-dependent look-ahead distance with a linearized analysis of why it grows with speed, and the adaptive look-ahead distance.
  • 4.4 Rear wheel feedback (doc/path_tracking/rear_wheel_feedback.md): the errors at the rear axle, the error dynamics in the course frame, the control law and its Lyapunov argument, the steering angle, and a "Pure Pursuit vs Stanley vs rear wheel feedback" comparison (what each one looks at and how it behaves at speed).

Each page has a figure script in doc/path_tracking/figures/ (cubic_spline_course.py, pure_pursuit_geometry.py, rear_wheel_feedback_errors.py) that computes its geometry with the page's equations. The pages are listed on the chapter page, and the new symbols $s$, $l_d$ and $\alpha$ are added to Notation and Units.

The Limits sections also say where the code differs from the theory, for example that RearWheelFeedbackController sets the whole yaw rate to 0 when the heading error is exactly 0, and that the simulations' course has a turn of about 1 m radius driven at a constant 20 km/h.

How I checked it

  • sphinx-build -W --keep-going -b html doc doc/_build/html builds without warnings, and pytest test/test_book_chapters.py passes.
  • Read the three pages in the built book: every equation renders, every figure loads, and the links between the pages work.
  • The spline equations of 4.1, implemented in the figure script, give the same coefficients as CubicSpline for the simulations' course.
  • The linearized Pure Pursuit result (damping ratio $1/\sqrt{2}$, the same settling distance at any speed) was checked with a short simulation at 2 and 10 m/s.
  • The references were checked against the papers: Coulter (1992), Snider (2009), Hoffmann et al. (2007), and Paden et al. (2016), whose equation (V.12) is the law of 4.4 (the original by Samson is cited as given there).

…ure Pursuit and rear wheel feedback

Add the theory layer of the three remaining sections of chapter 4 (ShisatoYano#200):
the natural cubic spline course with its yaw, curvature and target speed,
Pure Pursuit with the adaptive look-ahead distance, and rear wheel feedback
with its Lyapunov argument and a comparison of the three controllers.
Each page has a figure script, and the new symbols are added to Notation.
Copilot AI balanced review requested due to automatic review settings November 8, 2026 07:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Book chapter 4: Following a course (cubic splines, Pure Pursuit, rear wheel feedback)

2 participants