Welcome to the first proper blog post about my Final Year Project (FYP)!

Since my first post on here (‘I have a blog.’) I’ve been looking into the legalities and applications of drones currently in the big wide world (pretty dry stuff). What I’ve really wanted to do instead is get the laptop out and start writing code. Up to this point however, I haven’t had the luxury of a ‘clean room’; a windless, relatively uncluttered, large, indoor space.

Today, I am glad to announce, I was finally able to sit down and work on programming my Parrot AR 2.0 drone (Dave, or dUAVe as he is known) in a spacious, indoor environment on campus at Brunel.

The goal of the day was to write a simple program on my laptop that would tell the drone what to do. The logic being that if I can get that element to work, I can write a whole PC-based program to communicate with the drone.

After a steady start I was able to follow along with an amazing tutorial I found on the Instructables website. This tutorial goes over connecting the drone to your laptop and sending basic commands to it through node.js, as well as  how to program a basic set of instructions for your drone to play out at the click of a button.

After 3 hours of fiddling with the code and witnessing dUAVe survive two fairly serious encounters with the wall, the end result can be seen on my YouTube channel. In the video you can see me hit enter on the keyboard and let the drone carry out the basic set of instructions sent to it.

Tips on the guide I used (Instructables):

  1. Firstly, it is very well written but if like me you have the attention span of a gnat, you’ll miss out on the handy bits of info at the end of each step so make sure to read each step all the way through before starting!
  2. In step 5 you are recommended to use Sublime as a text editor. This isnota good text editor. It is a one way ticket to launching your laptop through the window/drone. Try Notepad++ instead!
  3. When trying to run your automated program for the first time in step 6, make sure you haven’t stored jsin the folder titled nodejs. I did this, it will not work. Instead make sure to create a separate folder for it (called Drone or similar), in the same directory as the nodejs folder and ensure that you run ‘npm install ar-drone’ in the command line while in the new Drone folder you’ve created. By this I mean re-do step 3 in the Instructables guide for the Drone folder. Google the use of ‘cd’ to navigate through directories in command line if you’re unsure of how to get around in there.
  4. As ever, pay attention to any errors thrown back to you within the command prompt when running your program to find any rogue semicolons/brackets!

To help out, the code used in the video is in the image below  (Click to enlarge).


So there we are, a solid achievement for the first day of programming. Now to figure out how to get dUAVe to use his camera while we’re flying…

Please let me know if you have any questions or comments about this post or any other, I’ll do my best to answer any questions and all feedback is welcome!


Note: In the above examples I am using a Windows 7 laptop so I will have very limited knowledge of Linux/OSX instances of this project!

Originally osted on September 26, 2015 Categories: Brunel FYP, Drone Programming

I have a blog.

As the title aptly implies, I have a blog!

In my 28 years on this planet I’ve never owned a diary, in fact I’ve never really been much good at maintaining information on what I get up to, what I learn or anything else for that matter. Being that I’m currently a full-time student this is a bit of an issue, I tend to learn something, pass the exam, then promptly forget everything about it.

Based on that unfortunate sequence of events, I thought it’d be a good idea to start writing some of this stuff down, and if I put it out on the WWW, perhaps someone else can benefit from it as well(?). As I move into the final year of my Computer Science degree at Brunel, I thought it would be a good idea to start documenting my learnings, more specifically, the progress of my final year project (FYP).

Oh yes, the FYP – the big one, the widowmaker, the year I will spend in an energy drink induced coma/stupor. Any and all 3am blog posts that are in ALL CAPS talking about how my FYP could revolutionise how we understand time and space may well be unfounded, but probably sounding absolutely plausible in my mind at the time of writing.

So…the FYP, what am I doing? In short, I will be attempting to program a UAV/drone (the fantastic Parrot AR 2.0 drone) to perform surveying functions on large, man-made physical structures such as chimneys, bridges, buildings etc. Through this I will be hoping to explore:

  • Edge/point of interest detection algorithms (through the inbuilt camera on the drone).
  • Autonomous reactions to visual cues, for example to enable the drone to fix on a particular point of interest and perform a number of required tasks.
  • Linking to local/web databases (either NOSQL or MySQL) for storage and later analysis of findings from flights.
  • 3-D modelling of points of interest for analysis.
  • Potential creation of pointclouds (structure through motion technology) and/or Lidar technology in representing points of interest as models that can be interrogated/analysed later.

I may not get all of the above done, some of these will undoubtably change and things will no doubt be added to the above list. At the moment it’s more of a rough outline, the reality of all this comes in September when my final year at Brunel kicks off.

In a nutshell, this blog will be here for me to bang on about things that I find interesting, challenging or otherwise (hopefully) useful to anyone who would like to try something similar. As this drone stuff is yet to mature into something as widely documented as programming Finch robots (very much recommend playing with these, will in time add some work on these on here as well!), hopefully this adds a little more to the resource pool out there.

It’s all a bit of an experiment at the moment so any and all feedback on anything whatsoever to do with this is always welcome!

So, that was that, the maiden voyage of my internet-based warblings. It may not change the world and I may not have much of an audience, but I have a platform (pedestal) on which to feel very, very important. Because, well… I have a blog.

Thanks for reading, Mark.

Originally Posted on August 10, 2015 Categories: Brunel FYP