9/24/2016 - Meeting #1

  • Installed QGroundControl software
  • Updated quadcopter firmware
  • Calibrated quadcopter / controller
  • Tested quadcopter flight operations
    • One motor died
    • It ran into a tree
    • Motors switched on/off
    • We believe the battery was the problem
      • The battery cells were really swollen

10/1/2016 - Meeting #2

  • Recalibrated quadcopter / controller
  • Tested quadcopter flight operations
    • It rotates on its own
    • The throttle is very sensitive
  • Downloaded april tag libraries
  • Created parts list draft
  • Emailed 3DR for factory firmware
  • Created a draft of the system level functional requirements

10/8/2016 - Meeting #3

  • Revised parts list
  • Installed factory quadcopter firmware
  • Installed Mission Planner software
  • Recalibrated quadcopter / controller
  • Tested quadcopter flight operations
    • Loiter mode operates correctly
      • Quadcopter stabilizes and holds altitude
    • Mode switching is smooth

10/15/2016 - Meeting #4

  • Tested april tag libraries on Ubuntu (linux OS distribution)
    • Detects specific april tag families
    • IDs tags with a specific number
    • Gives position, distance, and orientation of the april tag
  • Revised parts list
  • Created a draft of the subsystem level functional requirements

10/22/2016 - Meeting #5

  • Tested more advanced flight operations in loiter mode
    • Fly to a specific GPS coordinate and then return to starting location
    • Follow mission waypoints
    • Fly at an altitude of 100 meters
  • Video taped quadcopter flight operations
    • Loiter mode demo
    • Return to home demo
  • Revised subsystem level functional requirements
  • Finalized parts list

10/29/2016 - Meeting #6

  • Created the project schedule and division of labor
  • Finalized subsystem level functional requirements

11/5/2016 - Meeting #7

  • Installed Debian on the Raspberry Pi
  • Installed the AprilTag libraries on the Raspberry Pi
  • Tested AprilTag libraries on the Raspberry Pi
    • Everything operates properly
    • Raspberry Pi is slower
  • Created a draft of the project proposal

11/12/2016 - Meeting #8

  • Ran tests on Raspberry Pi to determine AprilTag specs
    • Ran tests for delay time based on resolution
      • Determined 320 x 240 resolution gives the least amount of delay
    • Ran test for FPS based on resolution
      • Determined 320 x 240 resolution gives the highest FPS
  • Revised project proposal
  • Created a draft of the ECE 498 presentation

11/19/2016 - Meeting #9

  • Ran tests on Raspberry Pi to determine AprilTag specs
    • Determined the max detection distance is roughly 8 meters. Therefore, 5 meters should lead to a more consistent detection
    • AprilTag family 25h9 proved to be the most reliable at 5 meters without mistakenly detecting other objects as valid AprilTags
  • Calculated the size of the quadcopter’s viewing area when flying at an altitude of 5 meters
  • Calculated what speed the AprilTag would have to be moving to not be detectable if it started outside of the viewing area and moved through its smallest side
  • Revised the project proposal
  • Revised the ECE 498 presentation

11/26/2016 - Meeting #10

  • Revised the project proposal
  • Finalized the ECE 498 presentation

12/3/2016 - Meeting #11

  • Finalized the project proposal

1/21/2017 - Meeting #12

  • Made connectors for the Pixhawk
  • Used Putty to SSH into the Pixhawk from a laptop
    • Tried Telem 2 port, but it failed to connect
    • Tried Serial 4 / 5 port and it succeeded
    • Looked through directories and tried different console commands
      • Changed the color of the LED
      • Made the buzzer beep
      • Failed to turn on motors

1/28/2017 - Meeting #13

  • Researched ways to use Telem 2 port for communication
    • Change parameters on the Pixhawk to set up the port
      • param function was not found
    • Looked for parameters using Mission Planner
      • parameters were not there
    • Add a file to the Pixhawk
      • Telem 2 sends out heartbeat signal
  • Researched ways to communicate with the Pixhawk using the Raspberry Pi
    • C++ demo
    • MavProxy (Python based)

2/4/2017 - Meeting #14

  • Tested C++ demo
    • Failed to grab initial position (getting stuck waiting for messages)
  • Tested MavProxy
    • Failed to fully connect
    • Failed preflight check on boot up
    • Had to boot with the top having the right orientation
  • Retested MavProxy with the correct boot up process
    • Fully connected
    • Tried arming the quadcopter and spinning the motors
      • Armed the quadcopter
      • Failed to spin the motors
  • Updated Firmware to 3.4.5
  • Retested MavProxy
    • Fully connected
    • Tried arming the quadcopter and spinning the motors
      • Armed the quadcopter
      • Motors successfully spun
  • Retested C++ app
    • Successfully completed the example code, but no motors

2/11/2017 - Meeting #15

  • Reassembled quadcopter with Raspberry Pi and camera
  • Tested flight with everything attached (camera, raspberry pi, connectors)
    • In stabilize mode the quadcopter jittered
    • In loiter mode the quadcopter jittered
  • Tightened the motors, added new propellers, and replaced the battery on the quadcopter. Replaced the batteries in the controller.
  • Retested flight with everything attached
    • Quadcopter still jittered during both modes
  • Cloned settings onto the new quadcopter and switched over all hardware
  • Tested flight with the new quadcopter
    • Quadcopter was stable during both modes

2/18/2017 - Meeting #16

  • Tested max AprilTag detection altitude with camera and Raspberry Pi on the quadcopter
    • Reliable distance is approx. 5 meters
  • Tested flight with MavProxy commands
    • Sent takeoff command to an altitude of 1 meter
      • Flew up to one meter and then landed
    • Sent takeoff command to an altitude of 2 meters and then switched to loiter mode
      • Flew up to two meters and then killed the motors
  • Tested flight with C++ app
    • Sent takeoff command to an altitude of 1 meter
      • Motors didn’t turn on

2/25/2017 - Meeting #17

  • Researched ways to use C++ app and MavProxy
    • Cython
    • Named pipes
  • Found DroneKit from 3DR
    • Tested DroneKit
    • Armed quadcopter
    • Motors spun
  • Tested flight with DroneKit commands
    • Fly up to an altitude of 1 meter and then land
      • Successfully completed all actions
    • Fly up to an altitude of 2 meters, move north 1 meter, and then return to launch location
      • Flew up to an altitude of 2 meters and then swirled until it crash landed

3/4/2017 - Meeting #18

  • Debugged and retested DroneKit script
    • Fly up to an altitude of 2 meters, move north 1 meter, and then return to launch location
      • Flew up to an altitude of 2 meters and then flew north while losing altitude and crash landed
    • Tested DroneKit example flight
      • Fly up to an altitude of 5 meters, move to three waypoints, and land
      • Flew up to an altitude of 5 meters, moved through two waypoints, and then landed. It took a while to hone in on each waypoint. (Possible time out issue)
  • Edited DroneKit example flight (Increased distance from target tolerance)
    • Fly up to an altitude of 5 meters, move to a waypoint, and land
      • Flew up to an altitude of 5 meters, moved to waypoint, and landed
  • Tested altitude and distance geofencing
    • Quadcopter stopped at geofence and didn’t allow us to fly it outside of the geofence
  • Came up with a list of things to demo for progress evaluation and video taped all the demos
    • Demo testing the AprilTag detection code using the Raspberry pi and camera
    • Demo testing quadcopter flight with mission planner commands
    • Demo testing quadcopter flight with the controller
    • Demo testing quadcopter flight with DroneKit commands (fly up, fly to a waypoint, and land)
    • Demo testing geofencing distance
    • Demo testing geofencing altitude
  • Revised project schedule for progress evaluation
  • Edited DroneKit example flight (Log flight data)
    • Flew correctly and created matlab plot from the data

3/11/2017 - Meeting #19

  • Printed new long quadcopter legs and tested.
  • Created and verified example application for communicating between C++ and Python using named pipes.
  • Tested RTL commands
  • Tested different resolutions for camera onboard
  • Tested velocity move command

  • Created and tested examples for communicating between C++ and Python using Linux named pipes
    • Python sent “CHECK”, C++ sent back “ACK”, and Python output “Acknowledged”
    • Python sent “GET”, C++ sent back “SEND”, and Python output “Got response: SEND”
  • 3D printed long legs and attached them to the quadcopter
  • Tested different detection resolutions while the quadcopter was in the air
    • Delay from the 640 x 480 resolution was reduced significantly
  • Tested velocity move commands
    • Fly up to an altitude of 5 meters, perform three velocity moves in a triangle formation, and return to launch location
      • Flew up to an altitude of 5 meters, flew in a triangle formation, and crashed when it returned to launch location
  • Swapped the battery and retested the velocity move mission
    • The mission was a success and the quadcopter landed appropriately

3/18/2017 - Meeting #20

  • Edited the interprocess communication code, fully integrated the subsystems, and tested the objective mission
    • Fly up to an altitude of 5 meters, move to a waypoint near the AprilTag, center over the AprilTag, and land
      • The quadcopter struggled to detect the AprilTag, but once it did it didn’t move
      • The quadcopter landed after the max number of detections was reached
  • Edited the velocity move code and retested the objective mission
    • The quadcopter struggled to detect the AprilTag, but once it did it tried to center itself. It couldn’t center itself within the attempts given, so it landed.
  • Adjusted centering tolerances and retested the objective mission
    • The quadcopter struggled to detect the AprilTag, but once it did it tried to center itself. During the centering process the quadcopter crash landed.
  • The battery was punctured

3/25/2017 - Meeting #21

  • Retested the objective mission multiple times while fine tuning parameters, such as centering tolerances, movement speed, movement time, and movement direction.
    • During all the tests the quadcopter struggled to detect the AprilTag
  • Retested the difference between detection resolutions
    • Tested the 320 x 240 resolution
      • Realized that a detection at 320 x 240 resolution resulted in incorrect positional data of the AprilTag
      • The quadcopter struggled to find the AprilTag when it was actually 5 meters away
      • Unnoticeable detection delay
    • Tested the 640 x 480 resolution
      • A detection at 640 x 480 resolution resulted in correct positional data of the AprilTag
      • The quadcopter reliably detected the AprilTag when it was actually 5 meters away.
      • Noticeable detection delay
  • Retested the objective mission multiple times after changing the detection resolution to 640 x 480 and fine tuning parameters, such as centering tolerances, movement speed, movement time, movement direction, and hovering time.
    • During all the tests the quadcopter detected the AprilTag more reliably
    • Completed the objective mission multiple times, so we kept reducing the centering tolerance to as low as possible while still reliably completing the mission
      • Lowest centering tolerance with reliable successes was 0.25 meters
        • Video taped the success
  • During reliability testing of the objective mission, the quadcopter crash landed
  • After the crash, the quadcopter could not take off and some of the motors would not spin.

4/01/2017 - Meeting #22

  • Attempted to determine what was causing the quadcopter’s flight issues
    • Wiped the quadcopter firmware and recalibrated the quadcopter
      • The issues were still present
    • Tried spinning and inspecting the motors
      • After spinning, some of the motors were warm, as if some motors require more power to spin properly
      • After further inspection, some of the motor shafts looked bent
    • Swapped out certain motors and replaced them with motors from the other quadcopter
      • The issues were still present
  • Created an outline of the final report
  • Created a draft of the student expo poster

4/08/2017 - Meeting #23

  • Swapped some motors from one quadcopter to another to test if the motors or the power management board was the issue.
    • The symptoms followed the motors. Therefore, we believe the motors are the issue.
    • After further investigation, we believe that we don’t have enough functioning motors to properly fly the quadcopter.
  • Created a draft of the final report
  • Finalized the student expo poster

4/15/2017 - Meeting #24

  • Revised the final report
  • Revised the final presentation

4/22/2017 - Meeting #25

  • Revised the final report
  • Revised the final presentation

4/29/2017 - Meeting #26

  • Finalized the final presentation
  • Finalized the final report
  • Created the project website