Monday, July 25, 2016

Summer Research Week 4 (07/25 - 07/29) and Beyond

Your group has started entering the core of your project - "the code" that autonomously navigate the drone based on the camera input. A few different technologies needed to be put together in order to solve the puzzle.
  1. AR Drone data and control communication protocol: You can find some info from the latter chapters of the AR Drone Developer Guide. You will receive navigation data and video stream from the drone, and after processing, send flight control commands to the drone. This process needs to happen in real time, i.e., within a fraction of second. The main issue the former team had was that the processing time took too long (or the drone responded too slow) and thus the drone drift away too much. 
  2.  Node.js: It's the language of "the code". You can continue watching the video tutorials to build up your programming skills. It will help you read/write the code more efficiently.
  3. Open CV: The most important part of the project is to make the drone "intelligent" enough to navigate by itself. It can be achieved by a technology called "computer vision (CV)". Computer vision is a branch of artificial intelligence that aims for making the computer understand what it "see". The are tons of CV techniques developed over decades, and you don't need to re-invent the wheel. Instead, you can download and import a library called OpenCV. There are many existing functions you can call to fulfill your needs, ranging from basic image processing to facial recognition. You can search the web to find many general OpenCV tutorials, and you may find some specific ones for OpenCV and Node.js. (Don't forget to add the new resources to the "Project Resource" page.)
  4. Navigation schemes: How could we make the drone accomplish specific tasks such as deliver payload from one room to another? It involves the navigation schemes. The former team has tried to use circular markers in the air (by front camera) and the circles-and-lines markers on the ground (by bottom camera). You might test theirs, modify, and develop your own.  
  5. Control theory: It's aiming for making the flight smoothly from point A to point B. You might remember that the line-following robot. When the control of the line-following robot is not very good, the robot will turn left and right (overshoot) a lot and make the robot travel roughly. However, we can deal with this factor later after we make the drone work.     
Your tasks for the rest of the summer is to go through many iterations among these technologies, and gradually, fully understand and implement the code. One efficient way to make tangible progress is to implement and test the code piece by piece onto the drone. Once you successfully understand and implement one piece of the code, you them move to the next one. It will be too complicated and hard to debug if you want to do them all.  Could you continue posting your weekly progress according to this plan? And, I will give you comments accordingly. Good luck!

No comments:

Post a Comment