Henry’s Design – Day 10

1.31.2009 (Saturday) –  Day 10 –

I can’t think of a better reason for building the Science City Labyrinth Project than this. I received an email today with a design for a pneumatic actuated game platform design by Henry. He is 12 years old and was listening as we discussed the project at Thursday’s Cowtown Computer Congress (CCCKC) meeting.

Henrys Design

Henry's Design

John, Henry’s dad, sent me this email:

Hi Vince,

Just wanted to let you know Henry has had a great time thinking about your giant Labyrinth project. On the way home after the CCCKC meeting we had some fun conversation imagining the project and problem-solving different parts of it. Thought I’d share his idea with you — I know you’re well down the design path, I just thought you’d get a kick out it.

He was mostly thinking about how you can get a board that huge to move fast enough to respond to the Wii commands without stripping gears or fouling a servo’s rotation sensors. His solution was pneumatics (he had just seen the virtual waterslide episode of Prototype This! – so he had pneumatics and hydraulics on his mind). And rather than have a motor turn the board (that’s a lot of torque), he thought balancing the board on a single point would allow gravity to do some of the work, so the pneumatics would only have to do up/down — and with a solenoid valve the pneumatics could power on the push up as well as the pull down or hold in position.

Here’s a sketch….  actually, maybe that balance point in the middle wouldn’t even be necessary if the pneumatics were strong enough.

Anyway…. Enjoy the workings of a young hacker’s mind:

Henry and his dad have an important project of their own. They are making plans to build a drum-bot exhibit at Kansas City’s Kaleidoscope. He also noticed we were talking about vacuum forming some parts for our labyrinth game and sent along a link to the vacuum forming machine he built from plans in Make Magazine.

What About Using Pneumatics?

Vex Pneumatics Kit

Vex Pneumatics Kit

Over the last few years the FIRST Robotics Competition (FRC) has included pneumatics in their kit of parts. This kit is available for the Vex Robotics Design System too. My experience with pneumatics is based on this kit of parts for the FRC robots.

Some issues when using this kit are the cylinders don’t give us precision movement. When activated they are either full on or off, making it difficult to go to specific locations along the way. Pneumatics also require an air supply which can be noisy while compressors are running and the constant movement could overpower an air compressor. The amount of time playing the game and moving the platform would need to be considered when determining the size of an air compressor. Our greatest concern for using pneumatics though was its precision control issue. I like Henry’s idea and encourage others to keep those ideas coming.

Oh No, He’s Got The Knack

I learned about this video on YouTube. Seems like this might be an appropriate time to include it here:

Read on, check out: Day[11] = 2.01.2009
Yesterday, check out: Day[9] = 1.30.2009
Or start from the beginning: Day[0] = 1.21.2009

About SomeoneKnows

OpenCV – Computer Vision Study Group.

When: Bi-weekly on Thursday evenings from 6:00pm to 7:00pm
- Meeting[0] was on Thursday Jan. 8, 2009
- Meeting[1] is scheduled for Thursday Jan 22.

Where: Check the CCCKC web site for details – CCCKC hacker space location

Why study computer vision / image processing programming?
Our study group started after Jestin and I got one of our labyrinth board games hooked up to an Arduino with servos to adjust the board game’s surface. Jestin’s version is using a Nintendo WiiFit running Ubuntu Linux so you move around on the platform to make the marble move through the maze. Mine is just using an XBox360 controller in Windows.

After getting the board game to work, the next logical thing to do would be to attach an accelerometer to the bottom of the board and place a video camera above to watch the marble move. We want to use the video to locate the marble through motion detection, ultimately getting the computer to play the game for us so we can set back and watch.

Why study OpenCV?
There are other vision processing options which are home-grown, supported by a niche group, or have specific features. OpenCV has an active Yahoo Group that hopefully provides a good support role as we learn to program its features. The DARPA Grand Challenge winner Stanley is reported to use OpenCV as part of its navigation capabilities and robot vision is definately one of our interests. OpenCV comes with example programs to easily begin facial detection. All in all it just looks like a good place to start with a lot of potential for future enhancement.

Getting Started
The book “Learning OpenCV – Computer Vision with the OpenCV Library“  is referred to from the OpenCV Wiki for explanation of the library. This book is written to be used as a text book for OpenCV classes.

Using "Learning OpenCV" as our text book

Using "Learning OpenCV" as our text book

Licensing of OpenCV projects. OpenCV is open and free, the code itself may be used or embedded in other applications commercial or otherwise. No obligation to open source your project. (pg. 2)

Various Notes From Meeting[0]:

Installation Details

Windows Install

Note: Placing OpenCV in directory outside of the “Program Files”  folder. I’m using c:\OpenCV

OpenCV Tutorials

The list of tutorials is a random collection and not placed in any significant order. It would be great if we could rate the tutorials showing how useful you think they are. If you find other useful tutorials that aren’t on the list please leave a comment so I can add them.

Publications & Periodicals
Technical Publications by author Robin Hewitt. I have the Servo Magazine articles written by Robin.

Writing a Program with OpenCV

Programming in Windows

This will also work with some modification under Visual C++ 6.0 and Visual C++ 2005, 2008 Express Edition.

Creating a Project With Visual C++
Make sure you aren’t mixing C character strings with Unicode strings

The OpenCV library uses the standard pointer to char array for text strings. I started a new program using Visual C++ and it was using Unicode character strings by default.
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
A quick way to switch to using standard character strings is by changing the main function statement to:
int main(int argc, char* argv[])
{
return 0;
}
Possibly the better way to handle this is to convert from unicode to character strings before calling the OpenCV functions.

Visual C++ libraries.
Make sure the library, include, and source file paths are included on the property page.

Programming with C#
Take a look at the opencvsharp Google Code site.
OpenCvSharp, a wrapper of OpenCV for .NET Framework code.google.com/p/opencvsharp
I tried downloading the help file from there but got error messages when trying to access the help pages: “Navigation to the webpage was canceled.” and “The address is not valid”. I left an issue report on that site.
To download their source code  use an SVN system to check out the code


Problems Opening Video Files

Example 2-2 in the book is about viewing AVI video. It uses the cvCreateFileCapture function.
I found a couple of video files on the computer. A file captured from a Logitech web camera in .wmv format and some files from my cell phone stored in .mp4 format.
Wikipedia definition of AVI definition for the AVI acronym is Audio Video Interleave.

Conversion to OpenCV supported video format with memcoder
Check out this link for supported video formats: http://opencv.willowgarage.com/wiki/VideoCodecs

Linux Install
Working through the Linux install from http://bit.ly/Oovy get to “Compilation” section instruction “make” but no make file. …grr.

I had better luck getting the Linux libraries installed using the instructions from “Learing OpenCV” starting on pg. 9

Twitter Feed Messages
bkmontgomery @SomeoneKnows Best way to get OpenCV on Linux is to compile from source. Be sure to build the Python wrapper! (http://is.gd/eEi6)

More OpenCV Study Group Notes

Meeting: Study Group Notes – 1.22.2009

About SomeoneKnows


Follow

Get every new post delivered to your Inbox.