Sunday, February 28, 2016

Progress Report: 2/28/16

This week I focused on trying to fix some of the unexpected behavior in the drone's flight path, given a marker in frame to follow. It still doesn't work 100% accurately, but I did have some ideas while tweaking the image processing programs:

  • The environment in which I tested did result in a lot of unwanted noise. To help counter this inevitability, I want to start introducing the tracking of two different colors, and use a marker that contains more than a single identifying color. I have tested this possibility and linked a picture as a proof-of-concept below, which is a screen shot of the output I got while trying 2-color detection at home.
  • I removed erosion from the algorithm, which was slower than it was worth.
  • I added in a function which marks all blobs that the drone finds within the frame. I noticed that the drone actually seems to skip over certain candidates for the marker sometimes. I think this may be an important part of the problem.
  • The distance from the drone to the marker cannot be too large, or the resulting representation in the video appears insignificant. Therefore, it will probably be necessary to use floor markers in between junctions, perhaps using the bottom camera and a separate color + color detection algorithm.
  • Rethinking our whole approach, it may be better to keep all markers on the floor, with, for example, blue circles connected by red lines. It seems kind of rediculous to rethink the approach now, but I think this new method has potential to be better...

Detecting 2 Colors

Tuesday, February 23, 2016

Notes: 2/23/16


  • Problem:
    • The drone, though it seems to locate the target accurately enough, does not fly in an expected manner, given a target placed in front of it.
  • Possible Improvements:
    • Remove erosion (it may be that slowness is more of a hindrance than noise reduction is an improvement) and detection at edges of the image
    • Introduce multiple-color detection (make target-identification more accurate), and make a target of concentric, differently-colored circles
    • Account for the tilt of the drone, by rotating the X and Y axes of the incoming video images to fix what is “horizontal” and “vertical” 
    • Find better, more distinct color (green-blue?)
  • Possible Diagnoses:
    • The drone is not given enough time to respond to commands, and is thus responding late
    • The drone is reacting to noise (unwanted areas that are registered as within the color range)
    • The algorithm for finding the marker does not consider every blob, or does not create a blob around every cluster of pixels
  • Plans for the Near Future: 
    • Move to an area which has no possibility of noise (maybe put white posters up on hallway lockers while testing)
    • Mark all blobs, to make sure every candidate is considered
    • Look over the program thoroughly, to see what commands are paired to which conditions
    • Try removing erosion and check for improvement
    • Try putting a lag on sending new commands, and check for improvement
    • Try using target’s radius to control Z-axis movement (forward, backward)

Tuesday, February 9, 2016

Progress Report 2/8/16


  • Progress:
    • Created a more accurate image processing program, which detects "blobs" of pixels. Blobs have to be a certain size or they will be disregarded. This helps to get rid of noise and unwanted detection.
    • Added a prompt script into the code, asking the user for a room before the drone proceeds with the movement. 
    • The marker resembles a light skin color, which often gets the drone confused when a face is present within the photo. Changing the color or creating a marker with two different colors could probably fix this issue. 
    • Some future plans:
      • Blob detection through recursion
      • Creating pre-determined flight plans for rooms
    • Problems:
      • The image processing program is not constantly accurate
      • We can't get horizontal movement to work alongside with vertical movement 
      • Pre-determined flight plans, while successful, could take a long period of time to accomplish