Each member of a team serves a different role with unique responsibilities. Sometimes an individual may be responsible for multiple tasks simultaneously; in this case the individual team member is expected to delegate tasks to other team members who are not currently active.
It is the responsibility of each team member to ensure their respective tasks are completed. This does not mean each member has to personally do each task; they can and should delegate to other members of the team as needed to distribute work load and alleviate bottlenecks.
Pilot in Command¶
The pilot in command is responsible for the safe execution of flight tests including test prep, manual override piloting, and test tear down. When not conducting a flight test, the pilot in command plays a support role to other specialist roles.
Ensuring a safe flight space and all safety protocols are observed
Developing a test plan for each flight that includes the objective of the flight, sequence of events, and emergency plan in case of unexpected behavior from drone. This is to be communicated to other team members
Piloting any manual-controlled portions of flight tests
Hands-on remote control during all autonomous portions of flight test, ready to retake manual control
The ground commander is responsible for operating the ground station and monitoring the health of the system during flight.
Establishing communication links to drone via QGroundControl and/or ssh
Starting necessary services for autonomous flight and monitoring health of services (e.g. distance sensor, optical flow quality, local position estimates, etc.)
Starting and monitoring team-developed software during autonomous flight tests (e.g. velocity commands, computer vision modules, etc.)
Post-flight analysis of flight telemetry
The software developer is responsible for maintaining the team’s codebase and operating the ground station during flight tests.
Pulling, merging new code from instructional GitHub repositories (i.e. upstream)
Translating team’s ideas to functional, well commented code
Committing and pushing developed code back to team’s MIT GitHub repositories (i.e. origin)
The hardware specialist is responsible for the inventory and upkeep of the team’s hardware (e.g. drone, batteries, etc).
Repair of any damaged parts that result from flight test crashes
Calibrating sensors as needed
Battery charging and battery safety
End of day parts inventory and organization
The research specialist is responsible for investigating potential solutions to complex problems as well as documenting important information learned (e.g. wiring diagrams, command sequences, etc), tracking teams progress and preparing presentations.
Investigate theoretical approaches to challenging autonomy problems, understand work required to implement such approaches, and prioritize team development efforts
Documenting important command sequence to ensure repeatability of tests
Researching software errors (i.e. “googling”) in order to debug problems without the help of instructors
Prepare and deliver team challenge presentations