We’re not using opencv, but rather something devious of my own design
I was looking at opencv, but determined it wasn’t worth the effort to get it running. Just wondering, what’s the purpose of three cameras? And with all that processing, is your framerate any good?
We are tracking quite a few things this year… We are continuously tracking the backboards to calculating the necessary parameters to make our shots (while moving). The Axis camera for the driver which looks for balls in front of the robot. The Kinect to track field objects such as the curb and bridges to aid in knowing the position of the robot on a 2d grid system.
The frame rate of the PS3 eye cam is running at a consistent 120fps. We are using it to do live tracking of the backboards due to its high frame rate and its cheap price. We have a core i3 computer on our robot running linux(ubuntu) for the ease of compiling OpenCv and being able to create sockets between the computer and the cRio. (sockets are opened in python)
Any other questions? I am quite curious with what you have come up with in terms of tracking if you are not using a library like OpenCv.
We were looking at some core i3 laptops, but they were all 15 inches, so we deemed them to be too heavy. In the end we’ve settled for a little 2.5 pound netbook, a amd fx dual core 1.2 gHz, which really limited what we can do.
The camera we have mounted is a logitech c310, so we’re taking pictures at 1280x960. Unfortunately we’re stuck with Windows because the drivers do not exist for linux and the generic driver makes the picture look kinda funky.
The software I wrote is unique from everything else I’ve seen or researched. I can’t really talk about it because I’m looking to patent the algorithm in the near future. The processing framerate is pretty good, and certainly faster than the hardware will respond to. Unfortunately, my algorithm is currently written in Java because it was easier to interface with the camera that way I’m sure if I did it in C or C++ everything would be much faster.
We are not using a laptop… we built our own computer. No screen or anything. we are running linux. but we are using a ECS H61H2-M2 motherboard with 4gigs of ram. we are using a 20gig solid state drive and a Huhler water cooling system. Our whole setup ran us $370~. We got two of these setups, one for our production bot and one for our practice bot. A little pricy but will carry though out the years from bot to bot for vision processing or even make a decent CAD machine if vision isn’t as necessary in years to come.
Your setup sounds amazing - I can’t wait to see it in action!
Back in 2005, some friends of mine built a PC for their robot and ran LabVIEW for vision processing - but that was before SSDs were common (and before bumpers in FRC), so they were pretty scared that a crash was going to take out the hard drive. I’m glad that having a powerful co-processor is viable these days, whether onboard the robot or on the driver’s station.
If you haven’t already, you might want to double-check that your cooling system is legal. Fluids in any form are typically not allowed.
[quote=FRC Game Manual, <R08> blue box]
Examples of items that will violate this rule include (but are not limited to):
G. Any devices intended to produce flames or pyrotechnics
H. Hydraulic fluids or hydraulic components[/quote]
Oh nice! We settled with a laptop so we wouldn’t have to deal with power supply and threw in a 32 gb ssd, and also having a monitor is nice for debugging. We were looking at compact embedded board, but every company I talked to seemed to be scared to give me a quote in quantity 1.
I thought that the $400 rule was per component, so couldn’t one theoretically put an i7 machine on the robot?
I’m the mentor for 3574 that helped put that together. My understanding of the rules is that you could. However, we kept it safe this year. A top of the line i7 can draw 130 watts of power. That translates into more heat, more battery drain, bigger motherboard, and a larger power supply.
The i3 we went draws just 65w and uses a MicroATX mother board, but at 3.3ghz processes the 640x480 60fps feed from the PS3 eye cam in real time.
Next year, depending on the vision related challenges, I’d like to see what performance boost an NVidia GPU would give, as opencv does have GPU accelerated routines for some functionality.
For those interested, here is the buy list for the vision processor:
We are working on setting up a Pandaboard. We have Opencv tracking objects okay, and we are working on running our code on our Pandaboard. We don’t have it quite working yet, but it had the necessary power to run our code.