Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Modules

Rui Pires edited this page Aug 13, 2025 · 6 revisions

Modules

Vehicle System (src/vehicle.cpp)

  • Maintains vehicle state (VSS-aligned), actuates chassis/body.
  • Publishes/subscribes via Zenoh.

Middleware (src/middleware.cpp)

  • CAN → Zenoh: telemetry (e.g., speed, battery, lights).
  • Zenoh → CAN: control (steering, throttle, lights).
  • Configured by config/Zenoh/MiddleWareConfig.json.

Combined Controller (src/combinedControl.cpp)

  • Threads:
    • ManualControl (XboxController): reads inputs, exposes manual speed/steering.
    • PIDController or MPCController: steering control (same behavior in current code; MPC is a drop-in alternative to PID).
    • SpeedPidController: throttle control using desiredSpeed and currentSpeed.
  • In SAE_0 / SAE_1_*: uses manual inputs. In higher levels: uses Detection outputs.

Detection (src/detection.cpp)

  • Lane Detection: midpoint error (PID input) and trajectory line (MPC input).
  • Object Detection: obstacle/road checks; supports ACC; emergency brake triggers.
  • Signs/Lights: crops ROIs and classifies; feeds behavior (speed/brake).
  • TrajectoryDefinition behavior by mode:
    • SAE_4: can alter trajectory to avoid obstacles (re-routing).
    • SAE_3: no obstacle-based re-routing (keeps nominal trajectory).
    • SAE_2: planned; would require at least two lanes to allow safe lateral maneuvers.

Clone this wiki locally