Graduate control engineering · interactive classroom lab

One vehicle. One virtual target.

Follow the moving Frenet frame. Switch controller terms on and off, then separate physical vehicle motion from translation and rotation of the path frame.

Offline HTML · no dependencies
0.0 s

Reset uses s = 0 m and the initial errors above. Uncheck alignment to start at β = +35°. Parameter and term changes apply live; reset for matched comparisons.

1 · Vehicle and moving Frenet frame

Navigation x right · y up · metres
Vehicle qⁿ / trailTarget pⁿ(s)tⁿ: tangent · nⁿ: left normals₁: tangent error · y₁: normal error

The curve stays fixed. The target selects the origin and orientation of the Frenet frame; it is not constrained to the closest point.

Arc length s
Tangent error s₁
Normal error y₁
Actual / desired incidence

3 · Position-error phase portrait

Error trajectory · last 40 sVₚ level setsWhite arrow: current ḋᵖ

Horizontal: s₁; vertical: y₁. The field is a snapshot at the current β and κ, with the active target-rate terms. These quantities evolve, so this is a projection of the full state, not an autonomous two-state phase portrait.

4 · CLF candidate surface

Vₚ = ½(s₁² + y₁²) [m²]
Trajectory lifted onto VₚHeight above error plane

The bowl stays the same when terms are switched; the trajectory changes. Vₚ measures position error only. It does not include β − φ and is not, by itself, a strict CLF for the complete vehicle state. A rising segment is possible during heading transients or modified control.

5 · Resolve ḋᵖ in the moving frame

Arrows: m/s · equal axis scale

Solid white arrow = full ḋᵖ; when all terms are selected, the dashed arrow coincides with it. Dashed arrow = sum of selected contributions. Selection below changes this diagram only; all transport terms remain in the physical geometry.

++
Model, notation, reading and static fallback

Ideal planar, no-current/no-sway point vehicle: q̇ⁿ = U[cos ψ, sin ψ]ᵀ, ψ̇ = r. The path is parameterized by signed arc length s [m], with tangent angle ψf and signed curvature κ [m⁻¹]. Angles increase counterclockwise; nⁿ is the left normal. dᵖ = Rₙᵖ(qⁿ − pⁿ) = [s₁,y₁]ᵀ, and Sₙₚᵖ = [[0,−κṡ],[κṡ,0]]. All dot quantities are time derivatives. y₁ is a moving-frame component, not generally closest-path distance.

ṡ₁ = U cos β − ṡ + κṡ y₁ ẏ₁ = U sin β − κṡ s₁ Full controller: ṡ = U cos β + k₂s₁; r = κṡ + φ̇ − k₁(β − φ). Straight-path check: U = 1.5 m/s, β = 0, s₁ = 4 m, k₂ = 0.4 s⁻¹. ṡ = 3.1 m/s; ḋᵖ = [1.5,0] − [3.1,0] = [−1.6,0] m/s. With correction disabled: ṡ = 1.5 m/s and ṡ₁ = 0.

“Vehicle only” forces ṡ = 0; “Target only” holds position and heading and uses actual U = 0, leaving the selected k₂s₁ term to move the target. These are explanatory interventions, outside the positive-speed full-controller assumptions. Deselected ḋᵖ arrows are hidden, not removed from the kinematics. Negative ṡ is permitted without clipping.

Circle: p(s) = [12 sin(s/12), 12(1 − cos(s/12))] m. Wavy path: ψf(s) = 0.6 sin(s/10), κ(s) = 0.06 cos(s/10) m⁻¹; integrate [cos ψf,sin ψf] over arc length to obtain p(s). Simulation uses RK4 at 0.01 s; path geometry is tabulated at 0.05 m with cubic Hermite interpolation. The run pauses at 120 s or on leaving the numerical geometry domain. No yaw limits, current, estimation errors or collision constraints are modeled. Term removal changes the controller; no convergence claim is attached to such experiments.

Based on Unit 06 virtual-target notes: “Geometry walkthrough” G9–G10 and “Single-robot design” C1–C5; blackboard Panels 1–4. The original approach-angle law is attributed there to Bibuli et al. (2009), Section 3.2, equations (7)–(9). This animation reuses that course derivation and adds no new literature. English teaching supplement; instructor review pending.