paper: 1706's 2012 Computer Vision

Thread created automatically to discuss a document in CD-Media.

1706’s 2012 Computer Vision
by: faust1706

A scientific paper describing FRC team 1706’s implementation of the Microsoft Kinect from 2012.

This paper is far from the final copy. The final copy turned out to be 25 pages long, that includes data analysis. I hope this sparks ideas and gets more people involved in Computer Vision, or at the very least, realize how cool programming can be. This was my first attempt at a serious project in programming. Once I find the final copy I’ll upload it on here. It is on a thumbdrive that has been misplaced. I apologize. The reason I do not go into depth on my code itself, but rather a summary of the steps, is because I dont want people simply coping it. I’d rather have this method be adjusted, altered, and improved to however it seems fit.

Real Time Multi.doc (765 KB)

If anyone has any questions, dont hesitate to ask me.

So, as I understand your paper, you have mounted the Kinect on your robot. Do you have a computer with USB on your robot as well? What kind, and OS?

I’m mostly curious. Our team considered using the Kinect this year (2013) for vision, but we decided on something smaller and lighter. We had an early prototype robot with a netbook running windows doing the vision (with a standard usb webcam). We scrapped the idea primarily for weight and space concerns. We are using a super lightweight Android MK808 dual core processor. It uses the same hardware as the current Android tablets. It is intended for use on HDTV’s for watching youtube, Hulu, netflix and other online streaming. I think getting Kinect drivers for it would be a problem. Even finding a USB camera that was compatible with it took some trial and error.

Last year, we had a custom built computer designed to run from the battery, and that communicates with the cRIO via Ethernet. This year I was lucky enough to acqurie an O Droid X board, they are made in south korea, and it weighs 6 ounces. We cut off the servo motor on the kinect to reduce weight, our case for it is 3d printed (so plastic), and is very lightweight. Overall, all vision equipment weighs a total of maybe 3 pounds give or take a few ounces-we did at one point weigh it separate, but i forgot what it was XD. Our Droid X runs ubuntu 12.10, last year it also ran ubuntu but a different version. I get the board to talk with the kinect by using the libfreenect software ( Then from there I use it as a standard camera and use IR light. Then, as mentioned in my paper, I use and adjust the powerful OpenCV’s functions and voila! magic. Any more questions?

This is exactly what 1444 does as well. So far it is the best method we have found. Much better than offloading all the processing to the drivers’ station and dealing with FIRST’s bandwidth “issues”.

Funny, We’re almost pit neighbors too. We have never tried to send an image to the driver station, we just send them the Center.x coordinate, and when it is close to zero, a big rectangle appears on the screen. Another aspect of the program is we are able to save images, however often we want-for competition it is every 5 seconds. So I go into a very similar program, and am able to load my images taken from the kinect, and see if my settings were good, what could we change, show our drivers, etc…THEN, I also write a log file for the solutions, it does it for every frame (20 fps, 200 second matches…it adds up!), and I have a script that uses Octave to graph our solutions automatically and give us data analysis. Feel free to stop by tomorrow, we have some cool videos from the HD camera on our robot. Again, if you have anymore questions, don’t hesitate.

For Crossroads regional, we’re thinking about using the O Droid U-2 board (, but we might not want to change anything due to everything working together so nicely. Something that is extremely nice about the X board is that is has so many usb ports, to the point that it is a tad excessive.