Monday, August 12, 2013

Autonomous Quadricopter for Forest Fire Detection

I just recently finished my Master's Degree at Rochester Institute of Technology.  My final project was to design a control system for a Quadricopter that would be able to track forest fires as they spread.  All of the code is at  Here is the description from the paper:
"An autonomous control mechanism for tracking forest fires was designed with the use of an inexpensive, commercially available quadcopter.  The Parrot AR Drone 2.0 was chosen for this project because of its large open source programming community and many on-board sensors, including two cameras.  Image processing was performed on the video stream sent from the drone’s frontal, high definition video camera.  A few different fire detection algorithms were used with to make sense of the video data.  Then, after processing the video, object detection was performed to find the location of the fire.  Finally, the drone was told to move according to the location of the fire."
Below is the final presentation:

Wednesday, July 31, 2013

RIT Tigerbug Paper

I haven't written much about the Tigerbug project in a while, but I wanted to share the paper that our team wrote.  Please take a look and give any feedback that you have in the comments below.  I am very interested in what people have to say about the project!

Monday, July 22, 2013

Learning to Learn

I have always loved learning.  Sure, I haven't always made that point obvious, but in fact, it is true.  So as I depart the world of education for the excitement of the "real world", I can't help but reminisce about my glorious college days at Penn State and RIT.  But now, I am moving on; entering the unknown with nothing but the knowledge and skills I have acquired in 17 years of schooling.  From what I have heard from friends and read on the internet, I am as unprepared today as I was on the day I began school all those years ago.  But I disagree.  I have completed so many projects, homeworks and exams, spent countless hours researching, studying and taking notes. It has to count for something.  But what?  What do they count for?  I think the answer is that they have taught me how to work hard.  Sure everyone "works hard" once or twice in their life.  But at school, especially in my year at RIT, I have pushed myself to places I never thought I could go, almost daily.  I think my real education was in how to focus and complete a task to perfection.  At the end of the day, I am very proud of the work I have done.

Wednesday, July 17, 2013

The Sentience Stack

A good friend of mine, Eric Neuman, has proposed a roadmap to a living, motivated, creative, sentient being built entirely with Artificial Intelligence and computers.  The best part about the project is that it is open source (meaning github)!  The project is just beginning, but really seems to have legs.  Here is a more apt description of the project:

via simpleactually:
Artificial intelligence sounds awesome, doesn’t it? Machines that can solve problems on their own or answer questions for us would represent an enormous leap forward for all of mankind. The problem is, artificial intelligence as it exists today is not very flexible. Today, AIs are trading stocks, beating you at video games, filtering spam out of your email and handling a myriad of other tasks, each one specialized for its particular chore.  
Therein lies the rub, each AI needs to be custom built by a programmer specializing in artificial intelligence or machine learning.  In other words, it is currently possible to build machines that learn, but these machines can not learn how to learn.  If we want machines that can truly solve problems, answer questions on their own, and eventually grow to be sentient minds, we need to overcome that obstacle.  
I am joining in on this project and would encourage others interested in Artificial Intelligence to do the same.  Read more about the project at Eric's blog and get involved!

Tuesday, July 2, 2013

Extending the Range of the Drone

Another fascinating area that I have looked into has been how to extend the range of the drone.  After talking with another ham radio operator, the RFDude, I did some testing on my own.  He gave me a wifi antenna connector platform for me to test with and I built a 2.4 GHz "Cantenna" to try.  A cantenna is literally an antenna made from cans.  Surprisingly, it worked!  I followed these instructions for my build and added an extra can to improve the directionality and hopefully the distance.  Here's some pics after the break

AR Drone Developments

This past week has been chock-full of AR Drone developments.  First of all, I made the switch from Javascript (node.js) to Python development.  This was an important step because developing with Javascript was counter-intuitive and was becoming a pain for me.  I also wasn't interested in viewing the video online, but rather in an app on the computer, where I could do more filtering with OpenCV.  I am using a python library called libardrone ( that has given me control of the quadcopter with minimal complexity.  So far I have been able to do all sorts of development including autonomous and controlled flying.

Sunday, June 16, 2013

Getting to know the Parrot AR Drone 2.0

This summer, I am doing my final independent study project at RIT.  The project is to design a control mechanism for a quadcopter that can find a fire and track its movement.  This would be of use in a forest fire situation, where the quadcopter could track the fire as it moves, allowing the authorities to easily follow its progress via GPS.  I am using the Parrot AR Drone 2.0 as my vehicle because of its simplicity, great price, and awesome features.

The AR Drone includes:
- 2 HD Cameras that can be streamed back to a home computer
- Onboard 1 GHz Linux board
- Altitude sensors
- Full IMU (Inertial Measurement Unit)
- Protective foam padding (for when I inevitably crash it into something)

The drone comes ready to fly with IOS and Android apps that are available.  Right off the bat, I was able to record some video directly from the drone:

Sunday, June 2, 2013

Infrared Camera Hack

This summer I am doing a really cool project with a quadcopter and an infrared camera.  The idea is to create control system that uses image detection of a fire to fly around the fire and report its coordinates to a home computer.  In order for my project to work, I need an inexpensive digital infrared camera. A professor that I talked to told me that there is an easy way to modify a digital camera to an infrared (or close to IR) camera.  The method is to replace the visible spectrum filter that is in there with an IR filter.  After doing some research, it turns out that exposed 35 mm film negatives are excellent IR filters and can block out most of the visible range.  The goal of this project was to replace the filter in a webcam with an IR filter.  The result was a blurry, but usable IR camera.

First, I took apart an old Logitech webcam that I had lying around.  I took off the plastic casing and found the lens connected to the board.  This is what it looked like:
After removing the lens from the board, the filter sat on the back.  The lens could be unscrewed from the filter holder, so I removed that as well, being careful not to smudge the lens.  Lo and behold, inside the filter holder behind the lens was the visible spectrum filter.  I tried removing with a razor blade, but it did not budge, so I used the old brute force method and smashed it out.
More after the break

Wednesday, May 15, 2013

RIT Tigerbug

This is the RIT Tigerbug robot!  My partner, Andy Anthony and I designed, built and programmed this robot for our Advanced Robotics project at RIT.  The robot is built extremely solidly with 18 Roboard 1270 servos.  The body and legs are made of bi-weave carbon fiber and structural foam sandwich for added strength and reduced weight.  Currently it is being run by a windows PC communicating via serial cable, but we hope to implement an on-board computer such as the Roboard 100 Single Board Computer so that the robot will be completely wireless.  The robot is controlled by a wireless Xbox 360 controller and does a lot of processing.  Building this robot was a great experience, and I learned a ton about robotics.


So, it's been a while since I last posted.  I've been very busy working on my Master's degree.  Luckily, my degree is in robotics, so I have been working diligently on a few projects that I want to share.  During the winter quarter, I built a robot called the "CUPID" Robot.  It is a Nerf gun wielding autonomous robot, like those in Transformers.  It essentially finds the color red, aims at it and then shoots at it.  It uses a CMUCam4 to perform the color tracking, and has 2 little Hitec motors performing tilt/pan duties.  The onboard microcontroller is a Basic ATOM, so it is a little light on the processing.  However, the robot easily finds the color red and manages to hit it pretty accurately.  The toughest part was calibrating the color sensor to always find the color and not take in too much.  CMUCam4 is a cool little device that made it easy to do color tracking with the Basic ATOM.  I would love to use it in other projects with more advanced microcontrollers.  It's also a pretty good stepping stone to more advanced image processing techniques.

Here is a video of the CUPID robot:

Working with Google's Cartographer SLAM Package

At my current position, at Canvas Construction, I have worked with a number of SLAM and localization packages. In the past few years, my wor...