-
Notifications
You must be signed in to change notification settings - Fork 0
Modules
The Vehicle System module maintains the vehicle state model and provides actuation interfaces aligned with VSS (Vehicle Signal Specification).
Key Components:
- VehicleSystem: Central state container with VSS-aligned hierarchy
- Vehicle: Core state representation with sub-systems
- MotionManagement: Steering and powertrain management
- Exterior: External vehicle elements
Responsibilities:
- Maintains current vehicle state
- Subscribes to control commands via Zenoh
- Actuates chassis/body components
- Exposes vehicle state via standardized interfaces
The Middleware module bridges CAN bus communications with Zenoh, enabling seamless integration between vehicle hardware and software components.
Key Components:
- BatterySensor: Monitors power metrics (voltage, current, power) via I²C
- Signals: Main CAN↔Zenoh bridge for bidirectional communication
Responsibilities:
- CAN → Zenoh: Publishes vehicle telemetry (speed, battery, lights)
- Zenoh → CAN: Subscribes to control commands (steering, throttle, lights)
- Provides standardized Zenoh interfaces for vehicle communication
The Combined Controller handles all vehicle control functions, from manual inputs to autonomous steering and speed.
Key Components:
- XboxController: Reads gamepad inputs, exposes manual speed/steering
- PIDController: Steering control with fixed/predefined desired speed values
- MPCController: Optimizes both steering and desired speed based on trajectory
- SpeedPidController: Throttle control that attempts to reach the desired speed (used with both PID and MPC)
Responsibilities:
- Processes manual inputs from Xbox controller
- Switches control algorithms based on automation mode
- If using PID:
- PIDController handles only steering based on lane midpoint error
- Uses fixed/predefined desired speed values
- If using MPC:
- MPCController optimizes both steering and the desired speed target
- Determines optimal desired speed based on trajectory/curves
- In both cases:
- SpeedPidController handles the actual throttle control to reach the desired speed target
- Minimizes error between current speed and desired speed (whether from PID or MPC)
- Subscribes to perception outputs (when in autonomous modes)
- Publishes control commands to Middleware
The Detection module processes camera inputs to understand the environment, detecting lanes, objects, signs, and lights.
Key Components:
- LaneDetector: Processes images to detect lane boundaries
- ObjectDetector: Identifies vehicles, pedestrians, signs, and road surfaces
- TrajectoryDefinition: Generates path planning based on lane/object fusion
- TrafficSignClassifier: Classifies detected signs and lights
- AdaptiveCruiseControl: Estimates distances for ACC behavior
- ObstacleAvoidance: Path planning for obstacle avoidance in SAE_4
Responsibilities:
- Captures and processes camera frames
- Detects lane boundaries and calculates midpoint error
- Identifies objects and classifies them
- Determines road/non-road segments
- Generates trajectory for autonomous steering
- Classifies traffic signs and lights
- Triggers emergency braking when needed
- Publishes perception outputs to Combined Controller
While not a standalone executable, the Communication components facilitate standardized messaging across modules.
Key Components:
- ControllerPublisher: Sends control commands
- LaneDetectorPublisher: Publishes lane detection results
- SensoringPublisher: Shares sensor data
- VSSSubscriber/VSSQueryable: VSS-aligned interfaces
Responsibilities:
- Standardizes message formatting
- Encapsulates Zenoh pub/sub operations
- Provides VSS-aligned communication interfaces
Project Developed by Team02 @ SEA:ME Portugal - 2024 Cohort
A master-level curriculum empowering developers with practical, peer-driven expertise in embedded systems, autonomous driving, and mobility ecosystems.