This repository was archived by the owner on Oct 6, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Rui-Pedro-Pires edited this page Aug 25, 2025
·
14 revisions
The JetsonNano module hosts the ECU software running on an NVIDIA Jetson Nano for an autonomous driving lab platform. It integrates perception, control, a CAN↔Zenoh middleware, and tooling used to operate the vehicle in manual and autonomous modes. This repo is a submodule of the Team02-Course repo.
- Architecture – System design and executables overview
- Modules – Core programs and their components
- Perception – Lane detection, object detection, and traffic classification
- Modes and Automation – SAE automation levels and behaviors
- Data Flow – Signal routing between components
- Tools – Utilities for calibration, monitoring and telemetry
- Language/Middleware: C++17, Zenoh pub/sub.
- Multi-threaded design:
- Combined Controller threads: ManualControl (Xbox), SteeringController (PID or MPC, one active), SpeedPidController.
- Detection threads: camera, lane detection, object detection, sign/light classification, trajectory definition.
- Hardware interfaces:
- CAN via Middleware (telemetry and actuation mapping).
- Camera input for perception (lane/object/sign pipelines).
- I²C for power/battery sensing (INA219) and servo/motor control via PCA9685 PWM controllers.
- Control algorithms:
- ADAS functions: ACC (Adaptive Cruise Control) and LKAS (Lane Keeping Assist System).
- Critical control measures:
- Emergency braking when obstacles detected in trajectory.
- Speed reduction at crosswalks and for yield signs.
- Adaptive velocity based on detected speed limit signs.
- Full stop response for stop signs and red traffic lights.
- Traffic light handling (red/yellow/green) with appropriate behaviors.
- TrajectoryDefinition by mode:
- SAE_4: adjusts trajectory to avoid obstacles (re-routing).
- SAE_3: keeps nominal trajectory (no obstacle-based re-routing).
- SAE_2: planned; would require ≥2 lanes to enable safe maneuvers.
JetsonNano/
├── src/ # Core code (ADAS, Controllers, Communication, Detection, Vehicle, …)
│ ├── Controllers/ # MPController, PidController, SpeedPidController, XboxController
│ ├── Detection/ # LaneDetector, ObjectDetector, TrajectoryDefinition, ACC, …
│ ├── MiddleWare/ # BatterySensor, Signals (CAN↔Zenoh)
│ ├── Vehicle/ # Vehicle system internals
│ ├── combinedControl.cpp
│ ├── detection.cpp
│ ├── middleware.cpp
│ └── vehicle.cpp
├── include/ # Headers (mirrors src/ structure)
├── config/
│ ├── Zenoh/ # *.json session/config for each executable
│ └── Systemd/ # Optional systemd service units
├── tools/ # cam_calibration, pid_calibrator, system_monitor, vss, zenoh-router
├── docs/ # Diagrams (architecture.png) and wiki pages
├── deploy/ # Dockerfiles and scripts for Jetson deployment
└── tests/ # Unit/integration tests
For detailed behavior, see the linked wiki
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.