Ground Station Requirements - Firmware (Brainstorming)

PWM Outputs

  • Output percentages to each of the four motors and grabber

    • 4 uint8_t values

    • Confirmed

  • Grabber positions for debugging

    • Ideal world: Position of grabber given through potentiometer, percentage of how open it is through callibration (uint8_t) (assume, and if its limit switch than add 0 or 1)

    • Secondary - Limit Switch (boolean)

Current Aircraft Attitude

  • Pitch, Yaw, Roll

    • 3 float values

  • Would allow for sensor fusion and Attitude Manager debugging more easily

Status Display

  • 3 uint4_t values

    • One for arm/disarm state

    • One for manual/autonomous/failsafe

    • One for Landing/Takeoff/Hover/Other PM states

 

Some method to visualize controls data? It would be nice to be able to see visually in each controls axis how our drone is responding to changes in inputs. In essence, we want to be able to identify and adjust any oscillations in our PID’s in real time. In the simplest way, it would be ideal if we could get graphs that allow us to visually identify states of our PID, something like this:

As long as we can get graphs like this for each target input (x, y, z, heading), that would be amazing. We shouldn’t need to see all of them at once, being able to switch to one or the other is nice.

At some point, it would be cool if we could view the drone, the target, and the path that it is aiming for in some 3d space (once controls gets more complicated).

This would include the following data being transmitted to ground:

  • Target position data → ie, where we want to move to.

    • this can be described as a difference (50cm away, 30 degrees, etc.), or as global values (253.8m, 3285.4m, 32 degrees, etc.)

  • Current position data → ie, where we are now.

    • not needed if target position data is described as a difference.

  • Setvalues

    • All the PID constants and gains for each set of PIDs.

 

Spare Channels

  • Ideally keep 1-2 spare channels for data we plan on developing in the coming term