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.