Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Intro

This document aims to provide guidelines and standards with respect the ZeroPilot’s architecture. The goal is to have EFS members on the same page, making the project easier to both work with and build upon.

The following Knowledge Transfer (KT) videos aim serve as introductory lessons on how to work with and contribute to the ZeroPilot project.

  • TODO: make and add videos

Architecture Overview

Since the EFS team simultaneously has members both on and offsite, ZeroPilot supports two builds, one hardware dependent and another hardware agnostic. To achieve this, we interface our higher level software with STM32 firmware through a driver suite that allows for dependency injection.

The hardware dependent build (yellow + blue components) is run on either STM32’s Nucleo boards or WARG’s custom ZeroPilot board. This build is used for end-to-end hardware-software integration testing and creating the final product that will fly the drone.

The hardware agnostic build (yellow + green components) can be run on desktops and laptops. The purpose of this build is to enable remote development and provide an environment for effective unit testing.

Manager Standards

This sections outlines the requirements that must be followed when designing solutions for ZeroPilot’s managers:

Rule

Rationale

Managers must not include hardware specific functions.

As common files, managers need to be hardware agnostic. They cannot directly include code designed for specialized hardware (RTOS facilities, serial communication drivers).

Managers must not instantiate their own drivers.

Managers need to implement all their driver interactions with driver interfaces. Driver interfaces will point to a driver instance that is passed in via the manager constructor.

Managers must not directly read fields from each other.

Managers will interact with each other via CMSIS Memory Queue drivers. This promotes thread safety, and keeps hardware specific flow control features (mutexes and semaphores) out of managers.

Driver Standards

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.