W23 Task Status

Ardupilot Integration


New SM Repo

stripped down version of system manager that only talks to telemetry manager & LOS layers. This is designed to allow easy and simple Ardupilot integration.

  • los layer integration

    • Integration with Ardupilot

  • controller state decoding

  • ppm output in los

Zeropilot SW ZeroPilot 3.0 Architecture - ZeroPilot - WARG (atlassian.net)


System Manager System Manager

System Manager manages the highest level operations of the drone. SM is in charge of spawning and managing the TM, AM, and PM threads, facilitating inter-thread communications, determining the drone’s state of operation, some signal decoding, and handling of drone fatal failures.

Outstanding Tasks:

  • Further testing of RC to AM passthrough barebones version

    • Hardfault in communication to AM?

  • Uncomment and update code to integrate PM

  • Uncomment and update code to integrate TM

    • Determine TM input data format and conversion to PM format

  • Add use of global flag object for PM to RC input switching

    • Already created, should be easy to use

  • Improve fatal failure detection

    • Timeout

  •  

Path Manager PM Re Architecture For MVP

PM handles path generation and autonomous path following for the drone. After receiving the drone’s current position data and our target waypoints (defined using latitude and longitude) from SM, PM will calculate the required heading unit vector, magnitude, and speed depending on what state of flight we are in (Takeoff, Cruising, Landing). This information will then be sent to AM.

Outstanding Tasks

  • Integrate takeoff/landing + comms with SM into main branch

  • Bring on newer members

  • implement Waypoint following (using list of target waypoints to continuously calculate and update AM instructions )

  • Takeoff/Landing tuning

  • Waypoint following tuning

Attitude Manager Attitude Manager 3.0 - ZeroPilot - WARG (atlassian.net)

Attitude Manager manages the position of the aicrcraft in real time, using closed-loop controls algorithms for both fixed wing and multirotor aircraft. We receive position data from LOS_Pos and instructions either from PM or SM.

Generally, our flight modes include:

Manual (Acro) → the pilot controls the control surfaces directly, or controls the rate of angular acceleration

Stabilize (Horizon/Attitude) → the pilot inputs a desired angle, and the control algorithms attempt to maintain the desired angle in a global reference frame.

GPS (hold) → the pilot inputs desired translational motion, and the control algorithms attempt to maintain a position in a global reference frame.

In person only: Tuning

Outstanding tasks:

  • Fixed Wing Stabilize algorithm + tuning

  • Fixed Wing Manual tuning

  • Fixed Wing GPS algorithm + tuning

  • Quadcopter Stabilize tuning

  • Quadcopter GPS algorithm + tuning

  • Quadcopter Acro algorithm + tuning

  • Transition state algorithms + tuning

  • Newer / better PID Algorithms?

  • PID Auto-Tune?

Related SysInt material:

  • pid tuning rig from mechanical

  • having a working & wired drone from mech/ee

  • understanding how to safely operate a drone either on a rig or in the air

Telemetry Manager

Telemetry Manager (TM) manages the data flowing into and out of zp from the ground station and the onboard jetson. TM is in charge of encoding and decoding messages and passing them to system manager. This manager makes use of LOS Comms and LOS Telem. Code uses code generation to build C++ code using LCM message generation.

Completed tasks:

  • CRC checks

  • LCM message generation

Outstanding tasks:

  • Interfacing with LOS and SM To decode and encode data (I am working on this - Aadi)

Related tasks:

  • write LOS Comms

  • Write LOS Telem

  • Characterize RFD and develop driver for CV and EFS

Laminar OS


LaminarOS is the middleware interface between the application layer (ZeroPilot Software) drivers and board support package (STM32 HAL).

LOS Interfaces:

LOS_Link

LOS_Link handles the interface for communication between the RC receiver and ZeroPilot.

Outstanding Tasks:

  • merge LOS_Link into LaminarOS main repo

LOS_Actuators

LOS_Actuators handles the interface for all moving peripherals such as servo motors and communication with motor ESCs.

Outstanding Tasks:

  • verify DSHOT300

LOS_Comms

LOS_Comms handles the interface for all on-drone communication, specifically for communication with the Jetson Nano.

Outstanding Tasks:

  • all

LOS_Telem

LOS_Comms handles the interface for all on-drone communication, specifically for communication with the Jetson Nano.

Outstanding Tasks:

  • all

LOS_Pos

LOS_Pos handles the interface for the current attitude of the drone, providing GPS, IMU, as well as VectorNAV300 data to any application module that requires it.

  • Verify VectorNav300 driver

  • Integrate VectorNav300 with LOS_Pos

LOS_Log

LOS_Pos handles the interface for the current attitude of the drone, providing GPS, IMU, as well as VectorNAV300 data to any application module that requires it.

Outstanding Tasks:

  • integrate SD card driver with LOS_Log

LOS_?

LOS Drivers

SD Card

The SD card is for storing logs. The SD card driver will allow us to read from or write to an SD card.

Outstanding Tasks:

  • Porting the SD card driver to L5 (NUCLEO-L552EZ-Q board). This means modifying some configuration files so that the driver can run on L5.

  • Write another version of the SD card driver that uses SDMMC (supported on L5) instead of SPI to communicate with the SD card.

Actuators (PWM +DShot)

Drivers for PWM and DSHOT are for communication with motor ESCs.

Outstanding Tasks:

  • verify DSHOT300

Comms ?

NEOM8

Airspeed

VN300

VectorNav 300 (VN300 for short) is a Navigation System that has GPS, gyroscope, and accelerometer functionalities. We will mainly use it as a GPS.

Outstanding Tasks:

  • Getting the VN300 to communicate with the L5 (NUCLEO-L552EZ-Q board), then testing the current driver prototype.

Optical Flow (3901 - L0X or PX4FLOW)

Barometer

PPM Output

LOS Core

TBD

 

INFRA


SIL (simulator)

The simulator validates the design of the aircraft that will be flown at competition.

Initially, the simulator was based off a MATLAB/Simulink model but now the focus has been shifted onto using a program called SIMNET (http://www.simnet.aero ).

 

Outstanding tasks:

  • Model the competition aircraft in SIMNET

  • Test the autopilot in SIMNET with using Ardupilot and Mission Planner (or another GCS)

HIL

Tracking Antenna Tracking Antenna Project - ZeroPilot - WARG (atlassian.net)

To automatically turn our directional antenna to always point at the aircraft

We use the GPS position and altitude of the drone to calculate the target yaw and pitch for the antenna, then control motors to rotate the antenna towards the target location

Outstanding task:

  • Implement the GPS position → yaw and pitch algorithm in C++ (already done in matlab)

  • Drivers for imu, GPS, and motors

  • Tune PID for motors if needed

Related:

  • Mechanical design for tracking antenna

Devops

Devops is basically the development of things that make development easier. For example: writing bash scripts for building, docker files, CI/CD.

Note: Almost all devops tasks are “nice to haves” that should make our lives easier and be very useful in the long run, but they are not critical to the upcoming competition.

Outstanding Tasks

  • add .clang-tidy with certc and MISRA-c rules

  • Add .clang-format and .clang-tidy GitHub actions

  • Setup SSH on warg laptop to allow for remote development for users that dont have a Linux machine (I have ideas about this - Aadi)

  • Dockerfile for flashing (Im doing this currently - Aadi)

  • Get our dockers to work on windows and write necessary instructions to set them up

  • Create Dockerfiles and build scripts to build LOS on its own

  • Add GitHub actions to build LOS to LOS repo

  • Make an image for the efs laptop