Makers Night Out in Kansas City

OpenCV Study Group

OpenCV Study Group

March 31, 2009 was our first night of combining the OpenCV Study Group with a weekly Maker’s Night Out session in the CCCKC Underground Lab. We changed things up for the OpenCV session with a presentation by Amith about fundamentals of image processing. He uses these techniques every day for medical imaging research.

Amith gave a brief comparison of medical imaging in a 3D environment using voxels where the 2D environment uses pixels to represent images. I’ve started reading the book Non-Photorealistic Rendering where a 3D model is used to represent surface textures of drawing materials in pencil sketches, pen and ink, and painting methods. Voxels are used there to simulate voids in the drawing surface where the art medium is deposited.

Amith spent a few minutes talking about video compression techniques and how a frame is displayed showing the entire image while subsequent frames only show changes from the previous frame, these are called P-Frame and I-Frames. The I-Frame or Intraframe is also called a keyframe and contains the entire image. The P-Frame is a predictive frame that only contains the changed data. A couple of nights earlier I came across a great example about How to Datamosh that plays with combining two video segments when most of the I-Frames are removed.

He also gave an overview of filters used in image processing and touched on a few filtering methods. For our next OpenCV session he would like to give some demonstrations of what various filters provide. As a challenge we are looking into methods of being able to use an image to identify coins and denomonations of coins.

Makers Row

Makers Row

Jestin was showing some of his recent work in OpenCV using color correction and filters to display live video. I had the prototype of a project I’m calling a Refrigerator Art Machine designed to capture artwork using OpenCV.

Others were busy tonight working on various Maker projects and crafts.

More OpenCV Study Group Notes

Meeting: Study Group Notes – 1.22.2009
Meeting: Study Group Notes – 1.8.2009

About SomeoneKnows

The Labyrinth Of Others Revealed – Day 22

2.12.2009 (Thursday) –  Day 22 –

John Bergins video From Inside

John Bergin's video From Inside

A couple of months ago I taught a Lego Robotics workshop at the HMS Beagle Science Store. This was a half day session during the week between Christmas and New Year holidays. I am always encouraging kids to create their own robotics lab at home and part of my discussion is to encourage a partnership with their parents. It helps to keep parents involved particularly when you may need a credit card for robot parts or tools and things like that. I like to invite parents to stay and participate in the workshops so several parents stayed as we built robots, had fun, and learned some programming. That was the first time I met John Bergin and his son Henry. You may remember Henry from my blog post on Day 10 as “Henry’s Design“.

Since then John and Henry have been to our Kansas City Robotics Society (KCRS) and Cowtown Computer Congress (CCCKC) meetings. They also built a MintyBoost at the CCCKC Soldering Workshop. It seems I learn just a little more about them each time we meet. John has offered some assistance with the Robotic Labyrinth for Science City and has initiated some other interesting opportunities.

Recently in one of his emails John revealed this interesting bit of information. A friend of his wrote in Boing Boing describing his award winning feature-length movie, “From Inside“. From the movie’s web site I learned about his web site Grinder Tool & Die which is a labyrinth itself rich with art, videos, music, talent, and more.

Read on, check out: Day[23] = 2.13.2009
Yesterday, check out: Day[21] = 2.11.2009
Or start from the beginning: Day[0] = 1.21.2009

About SomeoneKnows


Science City’s Robotic Labyrinth Project

We are three weeks into designing the interactive Robotic Labyrinth Game for Science City This ten foot by twelve foot (10′ x 12′) game is being built by volunteers with donations from our growing list of sponsors.

Science City is host to over 30,000 school kids and 170,000 family members per year. It is located inside Kansas City’s historic Union Station which sees approximately 2 Million visitors per year.

Twists and Turns

Twists and Turns

Who would have thought a little wooden labyrinth game could take us in so many directions. What started out as an idea to modify this toy into a party game is turning into an educational journey. This simple game modification is an inexpensive way of introducing kids to concepts used in robotics. The game is controlled by standing on a Nintendo WiiFit balance board. A computer is used to interpret your movements when you shift your weight around. The computer sends commands to the popular Arduino microcontroller that tells servo motors how much to turn the knobs on the game. The Arduino is a great way to introduce kids and adults to the world of microcontroller programming for their own inventions. If you haven’t already seen it, this video on YouTube shows how the game works.

The video helped launch us into even more directions. The Kansas City Robotics Society (KCRS) donates interactive displays to Science City and we suggested including a robotic labyrinth game. Science City’s director liked this idea and suggested we scale it up to 12 feet. He wanted to use something kids are familiar with like a soccer ball to simulate the marble.

This project has us tackling some real world problems like building lighter weight structures. We are designing an aluminum skinned composite using rigid foam core just like the pink building insulation you get at the lumber yard. To build this game table we are working with Materials Science issues ranging from the selection of materials to finding ways of bonding them together at the molecular level. Key to this project is advice from 3M Engineers in their Aerospace Adhesive division about techniques needed to glue together our aluminum composite game table.

Henrys Design

Henry's Design

One of the best examples of why we’re doing this comes from 12 year old Henry who submitted ideas on how we can put the table into motion using pneumatic cylinders. Hopefully this project will help stimulate the imagination and creativity of other young inventors, future scientists, and engineers.

We now have programmers curious about creating web applications so people from around the world can play the game over the Internet from their own home. Not satisfied with stopping there, we wondered, could we add a webcam and use motion detection to get a computer playing the game for us? So, we’ve also started an OpenCV Study Group to learn about image processing hoping to find a way to make this happen too.

Our completion date for the basic game was chosen to coincide with the March 2-7, 2009 opening of a new group called the Cowtown Computer Congress (CCCKC). This group is a grassroots organization of tinkerers, hackers, explorers, artists, inventors and technology enthusiasts in the Kansas City area.

Since the video hit, people who hear about this project are asking – “how can I help”? This project is made possible by donations of time, materials, workspace, expertise, and money from volunteers and sponsors. We are entering our building phase and still need materials to build with. For more information you can check the blog chronicling daily progress of the Robotic Labyrinth starting here.

If you would like to help you can contact us at:  LabyrinthProject@KansasCityRobotics.org

Science City and CCCKC are non-profit organizations.

Sponsor Organizations

ClayCo Electric

Clayco Electric

ClayCo Electrical Contractors

Sheet Metal Workers Local Union 2 – The apprentice and journeyman training

Sheet Metal Workers Local Union 2

The apprentice and journeyman training

Barclay-Moore Piggyback & Warehousing

Barclay-Moore Piggyback & Warehousing

W. R. Meadows

W. R. Meadows

W. R. Meadows


About SomeoneKnows


Labyrinth Simulation – Day 8

1.29.2009 (Thursday) –  Day 8 –

Jestins Simulation Program

Jestin's Simulation Program

Jestin has been developing on a simulation program that takes the Nintendo WiiFit data stream using its Bluetooth communications and is directing the graphics in this program. He was showing it off at the CCCKC meeting tonight. To read more about Jestin’s program check out his Virtual Labyrinth blog post.

Speaking of Nintendo Wii paraphernalia, check out these WiiMote stereoscopic glasses over on Bre Pettis’ blog.

We missed Tom at the CCCKC meeting tonight. He was attending an XNA (XBox) game programming special interest group just getting started. I was wanting to go too but it was at the same time as our meeting this evening. Tom said that they discussed making their group into a CCCKC study group.

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

About SomeoneKnows

Logistics – Day 7

1.28.2009 (Wednesday) –  Day 7  –

Kansas City Union Station Web Page

Kansas City Union Station Web Page

Working on a daily blog actually works better if you start blogging from the first day instead of deciding to do it a few days later then catching up. Its a lot of work going through emails and notes from phone calls and I’m still not caught up. When I’m not working on writing and documenting I’m spending time talking to Bob about how we’re constructing the game platform and other behind the scene details with members of the team.

The whole robotic labyrinth needs to be transportable if it gets moved to other locations within Science City or other places around Union Station. I heard somewhere that Union Station gets around 2 million visitors per year.

I think we have an incredible opportunity to help Kansas City’s Union Station, Science City and the Kansas City Robotics Society (KCRS) as we also introduce the Cowtown Computer Congress (CCCKC) to the community. The CCCKC grand opening scheduled for the first week in March is attracting a number of people from around the country as well as rumors of a popular magazine among the Make(r) community.

This is a big project and in many ways it parallels what is going on in high schools around the world today. FIRST (For Inspiration and Recognition of Science and Technology) announces their annual competition the first Saturday in January. From that point on students have six weeks to design, build, and deliver their robot.

To take on this project we have a very similar time frame, of designing, building, and delivering the giant robotic labyrinth to Science City by the end of February. This date was picked to coincide with CCCKC’s upcoming grand opening festivities. Much like these high school students, we have our own homework to do in getting our space designed and built out in time for the grand opening. It is going to take some hard work and long hours for many of us. Like the kids on FIRST teams say, its the hardest fun you’ll ever have.

Things That Keep Me Up At Night

Like so many FIRST Robotics high school students in Kansas City right now, I’m loosing sleep over how we’re going to get this project accomplished. This is a big project with several challenges from technical to logistics and budgets. It would help if our budget was larger than $0. We started this project with a few pledges for materials from KCRS members.

Some of the things keeping me up at night:

  • WiiFit Balance Boards are backordered (anyone know where to get one)?
  • Money for materials and WiiFit
  • Finding space for team members to work
  • 4 Weeks left to meet our deadline
  • All the other details I don’t have listed here

For some reason I’ve been listening to Leon Russell’s Tight Rope a lot recently. I wonder where my old 8 track tape is right now. More on Leon Russell here.

Leon Russells Tight Rope

Leon Russell's Tight Rope

Read on, check out: Day[8] = 1.29.2009
Yesterday, check out: Day[6] = 1.27.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


Desktop Fabrication: Wearable Electronics Circuitry

Star Simpson, an MIT student, gained notoriety when TSA agents at the Boston airport noticed her breadboard adorned sweatshirt with LED lights and visible wires. Luckily she lived through that ordeal and has created an Instructible titled, “Make a Breadboard Sweatshirt (Instant Wearable Electronics!)”. She believes more wearable electronics are in our future and I agree with her assessment.

I worked on a prototype recently that is going to be part of a wearable device. On this project I got to play with the Arduino Mini Pro. This is a great device, very compact and operated at the required 3.3V target voltage.

I needed a platform for attaching the electronic circuitry that would be flexible and heat resistant so I took a trip to the fabric store and bought some ironing board fabric. This fabric seems to be non-conductive although it has an aluminized appearance on one side, it wouldn’t register on my Ohm meter. I tried poking some wires through the fabric to see how well it would survive the heat from a soldering iron and it did great. Of course solder didn’t stick to the fabric but the wires could be soldered in place without scorching the material. I bought a needlepoint hoop to stretch out the fabric that helped keep everything in place while assembling this device. Once assembled the fabric will be cut to size and sewn into the clothing.

Arduino and wires soldered through ironing board fabric.

Figure 1: Arduino and wires soldered through ironing board fabric.

Back side showing soldering and proto board circuit.

Figure 2: Back side showing soldering and proto board circuit.

The pictures 1 & 2 show the front and back side of the circuitry mounted on the fabric. Its not evident from the photos that the wire used is solid core instead of stranded. Solid wire made it practical to punch the wire through fabric while pushing stranded wire through would not be much fun. There is a drawback to using solid core wire when soldering to the mini Arduino. Last summer I conducted a workshop with high school aged kids building robots using a different Arduino clone. Somehow one was handled rough enough to tear the copper through hole plating and solder pad off that device. Rough handling and vibration through relatively inflexible solid core wire could lead to a premature failure in a flexible environment.

Searching For a Flexible Platform.

This hacked together Arduino fabric platform will serve its purpose as a prototype but is only the tip of the iceberg in terms of time investigating flexible platform solutions. What I wanted was a flexible base with electronic traces to attach the Arduino with other components. I started looking for something similar to the Flexiforce sensor which has conductive traces sandwiched between layers of plastic. It is possible to get something fabricated commercially but I was looking for a DIY approach.

I was excited when my search landed on a web page for Conductive Inkjet Technology located in Cambridge England with their US sales office practically in my back yard. My hopes of refilling my inkjet printer cartridge with a special ink quickly faded. The process involved applying a digitally printed catalytic ink cured with UV. It is then immersed in a solution of metal ions and the metal film is grown by autocatalytic deposition. The technology used in their process doesn’t look like it will be commonplace for DIY’ers very soon.

My thoughts turned toward silkscreen printing and my laser printer. Since I began using the laser printer transfer method to make printed circuit boards, I’ve tried printing on a variety of materials. I tried printing on the ironing board fabric and it left a good image, of course it is not conductive. I wondered if I could print on screen printing fabric and get the holes filled with the toner to create a quick masking image. The picture on the left in Figure 3 shows some of the toner that bleeds through to the paper below. The toner did not clog the holes in the fabric.

Photo on left shows screen printing material raised off the paper surface. Photo on right shows screen printing material as run through the laser printer.

Figure 3: Photo on left shows screen printing material raised off the paper surface. Photo on right shows screen printing material as run through the laser printer.

Silkscreen Options

The most promising DIY approach looks like silkscreen using a Diazo photo emulsion to create the screened image. The next challenge is finding an ink compatible with the silkscreen process while remaining flexible. A trip to the art store didn’t provide any off the shelf solutions. Actually there are several challenges with this process.

  • Affordability of ink
  • Keeping the ink pliable after curing.
  • Maintaining a high level of conductivity
  • Attaching electronic components without solder

I went to the local Electroinics Supply store and bought some Nickel Print conductive paint, the store didn’t have any Silver Print. There are two drawbacks to the Nickel Print. When the paint dries it cracks when flexed. The other issue I have is this product has an Ohms rating of 5 to 6 ohms per square while the Silver Print is 0.1 ohms per square. The prices for these products are about $60 to $70 online for a two ounce bottle. Another commercially available product is CuPro-Cote Paint, this paint has a resistance of 5 ohm/sq.

I found some interesting projects that other people have created using conductive paint. The Paper Circuits artwork by Leah Buckley using conductive paint, magnetic paint, and magnets. Another article about pPCBs (Paper Printed Circuit Board) by Peter Blasser has an interesting approach that mentions using a product called Wire Glue. The Wire Glue sells for about $4 for a 0.3 oz bottle.

More searching found this web site on Instructables to Make Conductive Glue and Glue a Circuit. This approach or the product from Wire Glue could solve the problem of attaching electronic components without solder. The mechanical connectors like used on Flexiforce sensors are bulky and would have other drawbacks if used extensively throughout the circuitry for attachments. After reading the Instructible I was curious about mixing my own DIY paint.

Paint Mixing Experiment. The swatch of fabric on the left has conductive powders mixed with paint applied to test durability and conductivity.

Figure 4: Paint Mixing Experiment. The swatch of fabric on the left has conductive powders mixed with paint applied to test durability and conductivity.

I bought some water based screen printing paint for sweatshirts from the art store. I tested the graphite lubricant powder with the ohm meter and it conducted electricity. I tried mixing the graphite powder with the fabric paint and it remains flexible and conductive after curing.

I thought powdered aluminum and powdered copper would be good to try. I found it interesting that neither the aluminum or copper powders would show any conductivity with the ohm meter in dry powdered form. I mixed the copper powder with fabric paint and it did show conductivity with the ohm meter after dried. The copper was mixed in too heavy proportion to remain intact after dried. I need to continue experimenting with mixtures of powdered materials and paint while recording proportions and resistance values. This is more work than was necessary for the prototype so I haven’t gone any further yet.

Leftovers: Additional Search Results

Part of my reason for this blog post is to document my experience and a place to include some remaining search finds that are interesting but not applied to this project. The following links are not an exhaustive list but remnants of my research that I want to keep track of.

Conductive Thread

Silver Plated Nylon Thread.

Conductive thread that handles like ordinary thread but is highly conductive. The thing I find interesting is this thread has a resistance of 150 Ohms per foot. When the thread is stretched it increases to 250 Ohms per foot. I want to get a spool of this thread soon to play with and see how useful it would be in measuring the linear motion of an actuator. I’m interested in seeing how this would react when sewn into a piece of elastic and measure the resistance as an elastic band stretches.

DIY Copper Powder

I like this article: “How to make copper metal from dissolved copper compounds”. It describes using copper sulfate and steel wool to get a resulting copper powder. I bought the book “Illustrated Guide to Home Chemistry Experiments” earlier this year and copper sulfate is one of the chemicals used in the book so I had a reason to get some anyway. I’m looking forward to giving this a try.

Flexible Conductive Tracks

An article describing patents for (WO/2007/031711) METHOD OF FORMING CONDUCTIVE TRACKS FOR FLEXIBLE ELECTRONIC CIRCUITS

PRECO Inc.

A company with a local facility producing Close Tolerance Web Screen Printing. Their applications list identifies a number of interesting uses for flexible circuits.

Copper.org

Applications of Copper-Base Powder Metals.

Follow

Get every new post delivered to your Inbox.