Sunday, April 26, 2009

TUIO output from Tbeta

this is more for my own reference than anything, but here is some TUIO output from tbeta.

interestingly enough, when i tried the new version from source (graciously provided by cerupcat over at NUI), tseq was incrementing regardless of set and alive, while here it's stuck at 0 no matter what... making me wonder how important that message is for the protocol, especially considering MMF has been working fine thus far. i thought about posting this last night, but hesitated.. i suppose now i'll update with the output from my laptop with tseq increasing when i get home...

binding to port 3333
/tuio/2Dcur alive
/tuio/2Dcur fseq 0
/tuio/2Dcur set 7 0.77944 0.158674 0. 0. 0. -0.085531 -0.021343
/tuio/2Dcur set 8 0.475432 0.70227 0. 0. 0. -0.03334 -0.037312
/tuio/2Dcur set 9 0.444521 0.990623 0. 0. 0. -0.029568 -0.024974
/tuio/2Dcur set 12 0.703296 0.162337 0. 0. 0. -0.009897 -0.008351
/tuio/2Dcur set 14 0.842647 0.155566 0. 0. 0. -0.009897 -0.008351
/tuio/2Dcur alive 7 8 9 12 14
/tuio/2Dcur fseq 0
/tuio/2Dcur set 7 0.782767 0.162893 0. 0. 0. -0.085738 -0.025441
/tuio/2Dcur set 8 0.475432 0.70227 0. 0. 0. -0.033139 -0.033217
/tuio/2Dcur set 9 0.444521 0.990623 0. 0. 0. -0.029568 -0.024974
/tuio/2Dcur set 10 0.388484 0.996394 0. 0. 0. -0.03232 -0.016834
/tuio/2Dcur set 12 0.697136 0.1665 0. 0. 0. -0.013265 -0.0125
/tuio/2Dcur set 13 0.260356 0.998814 0. 0. 0. -0.013472 -0.016598
/tuio/2Dcur alive 7 8 9 10 12 13
/tuio/2Dcur fseq 0

edit -- decided to chop this WAY down, since i really only need a few lines for reference..

in examining this more, i've noticed some interesting traits of tbeta (the posted binary anyways).

the 2Dcur set message in the TUIO protocol only takes six arguments, not 8, which is perplexing, though i vaguely remember hearing that the extra two numbers describe a blob's area.

also, the three 0. arguments, according to the protocol, should be change in x since last frame, change in y since last frame, and acceleration based on the previous two values. apparently tbeta isn't (wasn't?) calculating these values.

Saturday, April 25, 2009

expo & crunchtime

this past wednesday thru friday, i attended expo '74, a convention put on by the folks at cycling '74, the people behind max/msp/jitter. i expected the endeavor to be entirely tangential to my work on this project, but it turned out to provide us with another possible resource for procuring a projection screen, since RP Visuals turns out to be over our budget.

the event was also entirely revitalizing for me. i met a lot of incredibly nice people from all over the world who were just as geeky about music and max/msp as i am. some were big names, like robert henke, co-creator of ableton live, and many were small names that i had never heard before, but were inspiring nevertheless. there were even some folks from UCSC there who i had not met before.

i'm now a lot more motivated, and it's time to crack down on these apps.

we still haven't received the filters. i'm getting worried, and i'm incredibly pissed at myself for not having the sense to have them rush shipped, especially after what happened last time.

wednesday evening we met with some nui group folks and drank free beer from the interactive displays conference. seeing the nui folks in person was a cool experience, and we got to put the pressure on them to get us the tbeta source code. finally, today, i've checked it out of their SVN. now comes the fun part where I attempt to merge it with our own svn so that i can butcher it.

Friday, April 17, 2009

overdue update

i haven't updated in quite a while, and to a certain extent, it's a reflection of my current mind state.

as i mentioned, we had the fancy internet/phone outage which pretty well destroyed any momentum i had going. thankfully, that wasn't the case for the whole team.

david did suggest that we take a break, and to that extent, it doesn't seem like the lack of productivity is a bad thing.

i think part of it is that my workload this quarter is so inconsistent with what i had going on fall and winter. i went from being enrolled in 20 credits, then 22 credits, to being enrolled in 13 credits, and though i'm still in lab just as much, i feel like not nearly enough is getting done.

but things are getting done.

we met on wednesday night to discuss our software framework and decided on c++ as our language, thanks in no small part to opencv (which is also c++).

we also discussed our data structures and object model. eddie is going to pass me an object that contains a camera reference and set of blob objects. i'll use the camera reference to look up calibration data to convert the blobs from local blobs (per camera) to global blobs for the whole table.

we also received shipment of the new, correctly sized aluminum channel that we're using as a bezel. last night we put it all together on the prototype with a full strip of ir leds on each long side. the effect this had on our touch detection is remarkable. the amount of pressure required to generate blobs is much less, and even matt's cold, bloodless hands generated blobs.

heh. i should clarify, in previous tests of our prototype, matt's fingers have consistently been very poor in generating blobs upon touch. they're the worst of our whole group, but it's a great asset to the project since it forces us to consider the spectrum of users who will be using the table. we've also discovered that our fingers work better as input devices when they're hotter or when they're wet, hence the joke about matt's hands being cold and bloodless.

we're at another point where we're waiting on shipments, again of the ir bandpass filters for the webcams. it's putting a slight delay on my, eddie, and zach's work, but we're diverting ourselves in the meantime to other tasks that need to get done.

we have all of the wood, and if all goes well, tonight we will complete the construction of the final table, sans glass, of course. i've been lending my hands to the woodworking so that i feel productive, but i still feel like i'm not doing much.

i still need to finalize this letter to porter college to get a nice DSLR camera for our lab (and for IEEE after this quarter) for documentation.. i'll be helping build the table tonight though.

next time i should remind myself to touch on our relations with projection screen suppliers and showcase shower door company.

time for woodworking.

Thursday, April 9, 2009

reflecting on first meeting w/ professors

we've gotten a bit done since monday, but it feels like more than it actually is.

yesterday was our first meeting with our professors. tuesday evening (around 11pm really), matt, jas and i went into the nuigroup IRC room where cerupcat gave me the idea of installing Tbeta and Max Multitouch Framework on my laptop. so we stayed a bit late and sure enough, i got it up and running.

this made our meeting much more exciting -- we had a legitimate application demo for our professors, as well as refreshments and two weeks of progress to report since we started during the break.

the following is a video that illustrates some what we showed professor laws and david munday, the course's TA (professor petersen wasn't there). in addition to what we show below, we were more informal and thorough with showing the behavior of tbeta and the ir emission strip.

today we received shipments of the LED reel and the aluminum channel/bezel. the channel turned out to be the wrong size, but we're going to see if there's anything we can do to use it.

other than the shipments, today was very slow-- phone and internet were down for most of the morning. someone disconnected the tubes.

the battery is low on my laptop and i left my charger in lab. i'll post more about the specifics of our prototype hardware next time.

Monday, April 6, 2009

weekend update #1

first weekend of the quarter down..

climbed tree nine on friday (slightly irrelevant, occurred with 3/5 of the team, made me feel good as a human being in a way that i dont get working in a lab)

i spent saturday considering chromium and its implications on image stitching and blob detection.

i spent today showing off the lab (new video of touch images soon), reading Learning OpenCV, and assisting a recording session.

the reading was more like skimming, but gave me some food for thought regarding matrix operations, convolution, and filtering. participating in the recording session was refreshing. a bunch of people were sitting in, and we all collaborated to get a remarkably decent sound out of a couple of takes using a few mics. definitely an experience i miss.

i also got to check out some of the work they're doing in the electronic music studios with their reactable project. so far they have a camera and image recognition software that is doing some serious fiducial orientation work. in the next month or so, a friend will be performing a piece in which he plays dominoes against an opponent. the dominoes are fiducials for the reactable making music. their image detection is pretty well handled, though the composition interface and the IR image detetion are not yet implemented.

back to scimp though,...

although matt's research indicates that chromium itself is not likely useful, considering it as an option has opened my mind to some alternative ideas regarding webcam stitching. the idea is pretty well described in matt's post and my comment in response.

the idea is to stitch blobs rather than the camera images. run a thread for each camera that does blob detection (maybe even on the gpu?), then take and aggregate of all blobs and discard duplicates based on calibration parameters. boundary conditions require special cases (depending on the type of overlap in image), but these cases are few enough for the application to be reasonably uncomplex.

the next few days will bring meetings and hopefully shipments. our gantt chart indicates that we should be finished with the prototype by tuesday, but we don't expect to hit that date due to shipping on our LEDs and our bezel. i do think, though, that we've managed to get started on the software research sufficiently early to meet other key deadlines in our schedule.

looking at it from another perspective, we're one out of ten weeks in.. have we really completed 10% of our project?


Friday, April 3, 2009

filter woes and broken silicon

we finally received our ir bandpass filters today. we had a rather prolonged shipping issue with our supplier, omegabob2's ebay store, a resource for omega optics filters: my old mailing address propagated through ebay to the first filter purchase, but my new address went along with the second one. there were special instructions to ship both together using UPS 2-day, but the package went to the old address and arrived there on monday. when i called omega filters on monday to get the status, the person handling the sale was out of town for the week. i wound up getting some bogus tracking number from fedex before they told me they shipped it to my old address.

a bit of a pain, but this morning i went over there, knocked on the door, and got my package.

the filters were a little too thick for the eyetoy, and we managed to bust the ccd, so now the first order of business tomorrow morning is to buy a new webcam.

jas made more progress on the prototype and we had the realization that the only things between us and a finished prototype are the projection surface (which we can use paper for in the meantime) and the IR led source, which we have yet to order.

another exciting realization is that our gantt chart does not count weekends as work-days. we're actually not scheduled to finish the prototype until next tuesday.

week one comes to completion tomorrow. i feel like we're doing pretty well