3 of 6
3
TUIO multiplexer suite
Posted: 03 February 2010 09:02 AM   [ Ignore ]   [ # 31 ]
Avatar
RankRank
Joined  2008-10-23
Total Posts:  148
Member
dominik - 03 February 2010 08:42 AM

I had another test run where I connected a Firefly camera only. It runs for about 30 seconds before it also crashes unfortunately. So, I guess the reasons lies somewhere else…

Do you have the FlyCap.exe? comes with the SDK. So you have a lot of settings.
I also read the content of the memory chanel from the driver. Don’t know if you have to install the SDK to get the FlyCap.exe. The SDK installs a new Firewire OHCI Bus controller driver. So i guess there could be some possible problems arise if you only use the dlls from ccv.  But who knows rolleyes
I will extent my code to make a flag , that you not read the memory chanel automatically.

Profile
 
 
Posted: 03 February 2010 09:07 AM   [ Ignore ]   [ # 32 ]
Rank
Joined  2008-06-27
Total Posts:  24
New Member

Yea, FlyCap is installed. Works stable over hours with the standard CCV release and also with some custom software. Never tried accessing the memory channels via code, so this might be an issue. Thanks for your help!

Profile
 
 
Posted: 08 February 2010 10:52 PM   [ Ignore ]   [ # 33 ]
Avatar
RankRank
Joined  2008-04-27
Total Posts:  150
Member

Would you mind giving a step-by-step instruction on how to use CCV with TUIO Multiplexer?

 Signature 

Pissed Right Off Genetically Engineered Nerd
ProgenLabs.com

Profile
 
 
Posted: 09 February 2010 09:46 AM   [ Ignore ]   [ # 34 ]
Avatar
RankRank
Joined  2008-10-23
Total Posts:  148
Member
Progen - 08 February 2010 10:52 PM

Would you mind giving a step-by-step instruction on how to use CCV with TUIO Multiplexer?

Did you read my first Post? I explained the system.
So here a short recapitulation:
Make the right entries for TUIO-communication in the conf.xml from CCV and the Multiplexer.
Every CCV instance should have a unique source@name combination:

<TUIO_SOURCE_APPLICATION>

Here you give your CCV Instance some Name.

<NETWORK_INTERFACE_NR>

Here you choose the right Network-adapter to get the IP-Address for the source part (On my machine 0 stands for 127.0.0.1 and 1 stands for my Address in my local Network).
You could look at the TUIO 1.1 specifications to get an idea whats about the name@source combination in conjunction with TUIO multiplexing.
For every CCV Instance you make an

<source>

entry in the conf.xml from the multiplexer. Here you see the attributes “name” (== TUIO_SOURCE_APPLICATION) and “address” that should match with the data from some CCV instance.

The main problem for the setup is calibration:
If you run the setup on one computer you will get some trouble as CCV goes in fullscreen mode during calibration and your multiplexer will be hidden, so i advice to distribute the multiplexer on a second computer an have a control monitor for the CCV host-machine.
You must be aware that your calibration reference surface comes no longer from CCV with it’s calibration screen. Its the multiplexer now!
Start your CCV instances and the multiplexer. (for calibration your multiplexer “scalefactor"has to be 1)
If your communication is right you should see some calibration points within the multiplexer as soon as you enter the calibration mode on some CCV instance.
In CCV you start the calibration with’c’ and on the multiplexer you see the point you have to point at.  Afterward its the same as with the old CCV calibration routine. In CCV you get the visual feedback if the point is calibrated, but the multiplexer gives you the visual reference where to point at.
CCV is still your ‘eye’ and make the real calibration, but the multiplexer is your visual surface now.

Hope this make things more clear.

Profile
 
 
Posted: 09 February 2010 09:47 AM   [ Ignore ]   [ # 35 ]
Avatar
RankRankRank
Joined  2009-06-09
Total Posts:  268
Sr. Member

Any news on the Linux/OSX versions or source code release?

 Signature 

My Blog
PyMT—Create Multitouch Software easily!
Movid—New cross-platform tracker, work in progress!

Profile
 
 
Posted: 19 February 2010 04:24 PM   [ Ignore ]   [ # 36 ]
Avatar
RankRank
Joined  2008-10-23
Total Posts:  148
Member

Hi,

the source code is now in the repository:

http://nuicode.svn.com/svn/tbeta/branches/tbeta/CCV-fid

There is only the Windows Version as an VS2008 project to compile. MAC guys will need to make their own xcode project.

There are some further changes i made to the last version:

There are now different startmodes for setting the background image at start time. Look in the conf.xml under BACKGROUND STARTUPMODE you will see what’s it all about.
You now have the possibility to save the current background image as a file for later loading at the start. (I’ve change the ‘s’ key function from saving all settings to only saving the background image.). So hit ‘s’ and look in the data folder for a new Image. The name of the Image is set with the IMAGE tag.

There is also a second feature: Image Undistorting with openCV.
Under the BOOLEAN settings i added a UNDISTORT tag where you switch on/off this function. If you use it there will be a tiny preview Image of the undistorted Image at the right bottom of the CCV window. This is only a first implementation and it’s for some CPU a performance killer. The code has all stuff to only mapping the position data of the blobs for better performance, but i deactivated it as the CCV calibration will already do some undistortion for the blob data, so there would be no further advance. A complete image undistortion make only sense for the fiducial tracking to get a better pattern recognition if you use wide angle lenses.
I made a Intrinsics.xml and a Distortion.xml for the openCV undistortion.  On a second step i will publish a tool to make your own files for your specific lense. (If you can’t wait you could look at the openframeworks forum to get further information and some source stuff from other guys, or look into the openCV book from oreilly ).

CCV should be crossplatform but the Multiplexer has some Windows specific memory check method , and i had no motivation to make this crossplatform. mad  rasberry
If there is some OpenGL expert, he should look at the FBO implementation of the Multiplexer to help finding a solution for the memory leak with the glDrawPixels call. (Perhaps i didn’t created all buffers or something like this).

feedback is welcome

I’m in contact with Christian Moore, so it’s up to him if or what features will go into the main trunk of CCV. At this time this is some sort of parallel version. (My codebase is the CCV 1.2 Version, so this is not a 1.4 Version!)

cheers

Profile
 
 
Posted: 20 February 2010 07:06 AM   [ Ignore ]   [ # 37 ]
Avatar
Rank
Joined  2008-09-13
Total Posts:  31
New Member

Hi Sloopidoopi,
thanks for sharing your work !
Do you mean http://nuicode.svnrepository.com/svn/tbeta/branches/tbeta/CCV-fid/ ?

 Signature 

** JYG ** Pure Data multitouch/fiducial framework project

Profile
 
 
Posted: 24 February 2010 07:48 AM   [ Ignore ]   [ # 38 ]
Avatar
RankRank
Joined  2009-11-05
Total Posts:  173
Member

sloopidoopi smile

I’ve just tested TUIO Multiplexer under these conditions:

a. No MT Table, just 2 cameras connected on PC and see results onscreen.
b. camera1: crypto webcam @320x240
c. camera2: my cell phone webcam @320x240 (both cams @USB connection)
d. Two instances of CCV_fiducials and TUIO Multiplexer running on a dual core 2GHz with 2GB RAM and Windows XP
e. no calibration, I just wanted to see blobs from both cameras.

Results:
After a few tries getting know the config.xml and setting it up, I managed to see on TUIO Multiplexer “surface” the two squares (one for each cam) and of course blobs!!!! Nice!!!
Now the next step is to get two PS3 cameras , modified and build the MT table with lots of calibration work. But I’m 100% sure that this will work!!!
I didn’t try fiducials or anything else cause as i said I tested this only to see if it works with blobs. Thanks a lot man!!!

The only con I noticed was the CPU load which was 60-75% all the time I was playing with blobs. That doesn’t matters me now!

Thank you again.

 Signature 

coming soon - My MT proposal

First taste of my mt surface table: http://www.youtube.com/watch?v=lZaFvm1nbps and http://www.youtube.com/watch?v=jy3fPCdqX6g (one video split to two)

Profile
 
 
Posted: 24 February 2010 08:06 AM   [ Ignore ]   [ # 39 ]
Avatar
RankRank
Joined  2008-10-23
Total Posts:  148
Member
papakion - 24 February 2010 07:48 AM

sloopidoopi smile

The only con I noticed was the CPU load which was 60-75% all the time I was playing with blobs. That doesn’t matters me now!

Thank you again.

Good to hear that you get into the system.

For the CPU-Load there are some things to remember:
If you don’t need fiducials you should switch it off in the config.xml. The same is for the undistorting! This is a real performance killer.
For the Multiplexer it’s the best to set the scalefactor to 4, as we draw a texture every frame with the size of (screen.width*screen.height)/scalefactor. The scaling should only be 1 if you calibrate the system.

Profile
 
 
Posted: 24 February 2010 08:20 AM   [ Ignore ]   [ # 40 ]
Avatar
RankRank
Joined  2009-11-05
Total Posts:  173
Member

Yes you are right!

I left scale factor to 1 and didn’t change it. Fiducials is a must, that’s why I’m into this and not to 1.3 ver of CCV. Undistorting? I’m afraid I didn’t understand.

For all of you out there: TUIO Multiplexer can handle many cameras and the best: different types of cameras. (If your pc can handle the load of each CCV instance!) smile
Thanks once again for your contribution and your offer smile

 Signature 

coming soon - My MT proposal

First taste of my mt surface table: http://www.youtube.com/watch?v=lZaFvm1nbps and http://www.youtube.com/watch?v=jy3fPCdqX6g (one video split to two)

Profile
 
 
Posted: 24 February 2010 08:51 AM   [ Ignore ]   [ # 41 ]
Avatar
RankRank
Joined  2008-10-23
Total Posts:  148
Member

Undistorting is a feature i implemented in the newest version but it’s only in the svn. So if you use the binary version from this thread it doesn’t matter to you, but if you use wide angle lenses it could probably improve your system as the marker tracking could fail on the edges where the distorting from your lense is greater. But it’s also depends on the size and pattern of your markers and how blurry your surface is.

Profile
 
 
Posted: 24 February 2010 09:05 AM   [ Ignore ]   [ # 42 ]
Avatar
RankRank
Joined  2009-11-05
Total Posts:  173
Member

@sloopidoopi thanks for the info. Day to day with all this info I’m getting closer to build my MT table smile

 Signature 

coming soon - My MT proposal

First taste of my mt surface table: http://www.youtube.com/watch?v=lZaFvm1nbps and http://www.youtube.com/watch?v=jy3fPCdqX6g (one video split to two)

Profile
 
 
Posted: 24 February 2010 09:57 AM   [ Ignore ]   [ # 43 ]
Rank
Joined  2009-08-30
Total Posts:  21
New Member

@sloopidoopi Can I change the brightness settings of a firewire camera in the config.xml ? In reactivision there is the option to change brightness straight from the config file, and that is needed for my camera (it’s always too dark with the default settings). I’m looking forward to test your work! Thanks!

Profile
 
 
Posted: 24 February 2010 11:48 AM   [ Ignore ]   [ # 44 ]
Avatar
RankRank
Joined  2008-10-23
Total Posts:  148
Member
Christian Silvano - 24 February 2010 09:57 AM

@sloopidoopi Can I change the brightness settings of a firewire camera in the config.xml ? In reactivision there is the option to change brightness straight from the config file, and that is needed for my camera (it’s always too dark with the default settings). I’m looking forward to test your work! Thanks!

Never thought about such feature as i used the FireFly and so you could make all settings on the driver Level and store the data in a memory channel. In the conf.xml is a tag to set the memory channel from which a Pointgrey cam should read the settings.
But it’s a good suggestion for further features CCV should have. It was my intention to get feedback from other users what the whole CCV system is still missing.

Profile
 
 
Posted: 24 February 2010 04:17 PM   [ Ignore ]   [ # 45 ]
Rank
Joined  2009-08-30
Total Posts:  21
New Member
sloopidoopi - 24 February 2010 11:48 AM

Christian Silvano - 24 February 2010 09:57 AM
@sloopidoopi Can I change the brightness settings of a firewire camera in the config.xml ? In reactivision there is the option to change brightness straight from the config file, and that is needed for my camera (it’s always too dark with the default settings). I’m looking forward to test your work! Thanks!

Never thought about such feature as i used the FireFly and so you could make all settings on the driver Level and store the data in a memory channel. In the conf.xml is a tag to set the memory channel from which a Pointgrey cam should read the settings.
But it’s a good suggestion for further features CCV should have. It was my intention to get feedback from other users what the whole CCV system is still missing.

Hey! I found a way to change the brightness and exposure levels on driver level! So far it works great for fiducials!
Thanks. I’ll post feedback when I finish testing, if you’re interested in knowing!

Cheers!

Profile
 
 
   
3 of 6
3