Skip to content

SEA:ME 2025/2026 (Portugal) - Integrated Project Repository. Contains the complete and unified software stack for the autonomous vehicle platform, integrating all core modules for a cohesive solution.

Notifications You must be signed in to change notification settings

SEAME-pt/Team04_DrivaPi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2,269 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SEAME Automotive Journey

Autonomous vehicle using PiRacer as part of the SEAME automotive program.

Team: DrivaPi (Team04)

Bernardo, Gaspar, Hugo, Melanie, Miguel


🎯 What We're Building

  • Computer vision and autonomous driving
  • Real-time control systems (ThreadX RTOS)
  • Qt-based interface
  • Automotive industry standard architecture
  • Requirements management with TSF

Platform: PiRacer with Raspberry Pi 5


πŸ› οΈ Tech Stack

Category Technology
OS Automotive Grade Linux (AGL)
RTOS ThreadX
Language C++ (+ Rust evaluation)
GUI Qt framework
Requirements TSF (Trustable Software Framework)
Standards ISO 26262

πŸ“ Repository Structure

.
β”œβ”€β”€ TSF/                   # Trustable Software Framework
β”‚   β”œβ”€β”€ reqs/             # TSF Requirements
β”‚   β”‚   β”œβ”€β”€ urd/         # User Requirements
β”‚   β”‚   β”œβ”€β”€ srd/         # System Requirements
β”‚   β”‚   β”œβ”€β”€ swd/         # Software Design
β”‚   β”‚   └── lltc/        # Low-Level Test Cases
β”‚   β”œβ”€β”€ artifacts/       # Evidence & reports
β”‚   └── .dotstop.dot     # TSF traceability graph
β”‚
β”œβ”€β”€ qt-app/               # Qt-based GUI application
β”‚   β”œβ”€β”€ src/             # Application source code
β”‚   β”œβ”€β”€ include/         # Header files
β”‚   β”œβ”€β”€ resources/       # UI resources
β”‚   └── proto/           # Protocol buffers
β”‚
β”œβ”€β”€ rust/                 # Rust implementations
β”œβ”€β”€ firmware/             # ThreadX RTOS integration
β”œβ”€β”€ meta-cross/          # Cross-compilation & build system
β”‚
β”œβ”€β”€ docs/                # Documentation
β”‚   β”œβ”€β”€ standups/       # Daily stand-up logs
β”‚   β”œβ”€β”€ sprints/        # Sprint planning & retrospectives
β”‚   β”œβ”€β”€ hardware/       # Hardware documentation
β”‚   β”œβ”€β”€ software/       # Software documentation
β”‚   β”œβ”€β”€ standards/      # Standards & compliance
β”‚   β”œβ”€β”€ presentations/  # Team presentations
β”‚   └── TSF/            # TSF workflow documentation
β”‚
β”œβ”€β”€ tests/              # Test suites
β”œβ”€β”€ scripts/            # Automation scripts
└── archive/            # Historical work & labs

πŸ“‹ TSF Documentation

Doc When to Use Time
start.md First time, setup 15 min
reference.md Cheat sheet, commands Reference
workflow.md Create requirements, review Reference
training.md Understand TSF/ISO 26262 theory 1-2h
evidence.md Link artifacts Reference

πŸ‘₯ Team Practices

Daily Stand-Ups

  • Morning: Quick sync (~10 min)
  • Facilitator: Melanie
  • Docs: docs/standups/

Agile/Scrum Process

  • Sprint Duration: 2 weeks
  • Sprint Planning: Start of each sprint
  • Sprint Review: End of sprint demo
  • Sprint Retrospective: Continuous improvement
  • Project Board: GitHub Projects with automated workflows
  • Issue Tracking: GitHub Issues linked to requirements

Code Review Standards

  • Minimum Approvals: 2 required for merge
  • Review Checklist:
    • Code follows naming conventions
    • Tests pass locally and in CI
    • Documentation updated
    • TSF requirements linked (if applicable)
    • No secrets or sensitive data
  • PR Template: Enforced via .github/PULL_REQUEST_TEMPLATE.md

Quality Gates

All PRs must pass:

  • Unit tests (90% coverage minimum)
  • Static analysis (CodeQL)
  • TSF validation
  • 2 peer reviews

Workflow

Branch naming: <type>/<issue-number>-<description>

  • Types: feat/, fix/, docs/, test/, refactor/, chore/, spike/
  • Example: feat/316-integrate-unit-test-coverage

Development Process:

  1. Start Work: Create/assign GitHub issue β†’ Move to "In Progress"
  2. Create Branch: git checkout -b <type>/<issue-number>-<description>
  3. Develop: Implement changes, write tests, update documentation
  4. TSF Integration (if applicable):
    • Create/update requirements in TSF/requirements/
    • Link evidence to requirements
    • Validate with CI/CD pipeline
  5. Local Testing: Run unit tests, static analysis locally
  6. Push & PR:
    • Push to GitHub
    • Create Pull Request using template
    • Link issue with "closes #"
  7. Review: Minimum 2 approvals required
  8. CI/CD Validation:
    • Unit tests (unit_tests.yml)
    • Static analysis (firmware_static.yml)
    • TSF validation (tsf_validation.yml)
    • Doxygen documentation (doxygen_documentation.yml)
  9. Merge: Squash and merge β†’ Delete feature branch

Commit format: <type>(<scope>): <description>

  • Types: feat, fix, docs, test, refactor, chore, ci, revert
  • Scopes: reqs, tsf, firmware, qt-app, ci, hardware, etc.
  • Examples:
    • feat(reqs): add motor control requirements
    • fix(firmware): correct servo calibration logic
    • docs(tsf): update workflow documentation
    • test(unit): add speed sensor test coverage

πŸ“ˆ Progress & Status

Completed

  • βœ… Hardware assembly and integration
  • βœ… PiRacer setup with Raspberry Pi 5
  • βœ… Qt application foundation
  • βœ… ThreadX RTOS integration
  • βœ… AGL deployment
  • βœ… TSF framework integrated
  • βœ… Unit test framework with 90% coverage minimum
  • βœ… CI/CD pipeline with automated validation
  • βœ… Static analysis with CodeQL
  • βœ… Automated evidence generation
  • βœ… Doxygen documentation generation

In Progress

  • πŸ”„ Firmware refactoring and naming conventions
  • πŸ”„ Motor/servo requirements and test suites
  • πŸ”„ Qt application development
  • πŸ”„ Computer vision integration
  • πŸ”„ Autonomous driving capabilities

πŸ“Š Traceability Status

TSF Framework: Fully operational with automated validation

Requirements Structure

  • URD (User Requirements): L0 level requirements from product backlog
  • SRD (System Requirements): L1 level system decomposition
  • SWD (Software Design): L2 level detailed design
  • LLTC (Low-Level Test Cases): L3 level unit/integration tests

Automated CI/CD Pipeline

  • βœ… Unit tests with code coverage (90% minimum)
  • βœ… Static analysis with CodeQL
  • βœ… TSF validation and traceability checks
  • βœ… Automated evidence generation and linking
  • βœ… Doxygen documentation generation

Current Coverage

  • Motor control requirements fully traced
  • Servo control requirements fully traced
  • Speed sensor unit tests implemented
  • Automated traceability updates via CI

View detailed report: TSF/artifacts/trustable-report/dashboard.md


πŸ“š Standards Compliance

  • ISO 26262: Functional safety

    • ASIL levels assigned
    • Hazard analysis
    • V-Model development
  • TSF: Trustable Software Framework

    • Requirements traceability
    • Evidence-based trust
    • Git audit trail

πŸ‘€ Team Roles

Member Primary Focus Responsibilities
Bernardo Hardware Integration & Testing PiRacer integration, hardware validation, system testing
Gaspar OS & Development Environment AGL setup, build systems, cross-compilation, toolchain
Hugo Hardware & Fabrication Mechanical design, 3D printing, custom parts, assembly
Melanie GUI & Team Coordination Qt application, HMI design, stand-up facilitation, documentation
Miguel GitHub Project & Agile/Scrum Project management, GitHub workflows, sprint planning, CI/CD

πŸ“œ License

Educational project - SEAME Automotive Program


Last update: January 14, 2025 | Active development

About

SEA:ME 2025/2026 (Portugal) - Integrated Project Repository. Contains the complete and unified software stack for the autonomous vehicle platform, integrating all core modules for a cohesive solution.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 9