thomwolf / Magic-Sand

Magic-Sand is a software for operating an augmented reality sandbox
GNU General Public License v2.0
944 stars 138 forks source link

No color map display on Ubuntu Linux #39

Closed magdesign closed 6 years ago

magdesign commented 6 years ago

Compiled Magic-Sand in Ubuntu Linux 16.04.3 LTS with ofx0.9.8 (also tried with ofx 0.9.3) (Compiling works fine when switching ofxCv to stable branch:

cd of_v0.9.3_linux64_release/addons/ofxCv/libs/ofxCv/include/ofxCv/
git checkout stable

)

When starting the program with ./Magic-Sand, the "no calibration file" message appears and the autocalibration starts. After the calibration process I see the 3 menus on screen but no sandbox colormap. When going to Settings, Display Kinect depth view and holding my hand into the sandbox, I see the hand in the depth map. But how can I activate the sandbox colormap ?

RasmusRPaulsen commented 6 years ago

Hi, Great that you managed a Linux build! Could you please try the latest release inthis branch:

https://github.com/thomwolf/Magic-Sand/tree/Magic-Sand-with-Games

It has more debug options.

Let us know how it goes!

magdesign commented 6 years ago

There is no makefile available in this branch. make: *** No targets specified and no makefile found. Stop.

magdesign commented 6 years ago

After reading the github release page, I figured out that the software does not make the step with the checker board. Can I somehow manually start this?

To test, I installed a windows computer with the same hardware, but I have the same issue here, MagicSands starts, comes with the calibration step then I see a black window with the 3 menus. I think I am missing an important step...?

RasmusRPaulsen commented 6 years ago

Hi. Linux build: I do not have a Linux setup running so I can not test makefiles etc. Could you try to use the OF project generator to create makefiles?

Windows: Try to download the latest pre-built release 1.54: https://github.com/thomwolf/Magic-Sand/releases/tag/v1.5.4

It has a more manual step-wise calibration procedure as documented in the release notes.

magdesign commented 6 years ago

To be honest I have no idea how to use the Project Generator.... What I figured out so far: when I move the values in "Settings: Tilt", I see a small square window with a color map. Is there a possibility to manually load the calibration file from SARndbox ? I am pretty sure the issue is because of missing calibration... Thanks.

RasmusRPaulsen commented 6 years ago

It is for sure a calibration issue you have. I do not think it is directly possible to use the SARndbox calibration. I have added experimental Linux makefiles to the https://github.com/thomwolf/Magic-Sand/tree/Magic-Sand-with-Games branch. They are experimental since I have not tried them. Let me know if it works.

magdesign commented 6 years ago

Could compile from the Magic-Sand-with-Games branch. When I now run ./Magic-Sand a white screen appears and nothing else happens... See the terminal output: https://gist.github.com/magdesign/eaa0f46db99eec749d756c6885885bc0

RasmusRPaulsen commented 6 years ago

It seems that the window that is supposed to be shown on the projector is shown on your screen instead. Are there any other active windows hiding behind the white one?

magdesign commented 6 years ago

Yes.. you are right. There are other windows behind. I see the one with the menus and a feed of the kinect camera. Now trying to calibrate with all the needed steps...

RasmusRPaulsen commented 6 years ago

If you look at the console window with the textual output it should tell how many screens are found. This should be (at least) 2 when you have a projector. Could you tell me what the first lines says?

magdesign commented 6 years ago

When switching to terminal window, I see text telling me that it makes auto calibration but "Chessboard Not found"

RasmusRPaulsen commented 6 years ago

On your terminal output I can see that it believes you have two screens but it seems that it is the same screen it has found twice... I am not a Linux user - so it is hard to debug from here. Can you do the equivalent of "extended screen" layout in Linux? (meaning not duplicating the displays)

You need to have the "white window" displayed on your projector to be able to do anything meaningful.

thomwolf commented 6 years ago

@magdesign, can you post a screen cap maybe?

magdesign commented 6 years ago

I actually really do have 2 screens connected which are mirrored displays. One is the projector the other is just for me to better see terminal commands...

I tried to select the auto calibration, see here about the error (Line: 73): https://gist.github.com/magdesign/0f9a3a241919f2bb60e7c36121fec962

magdesign commented 6 years ago

I think it can somehow not find the Chessboard. Can I locate this or copy it to a path?

RasmusRPaulsen commented 6 years ago

Before trying to calibrate we must ensure that the "white window" is displayed on your projector - else it can not work. The "chessboard" is a calibration pattern projected onto the sand surface - instead of the "white window". Currently, it seems that the issue is that your screen configuration does not allow the projector to show the "white window"

thomwolf commented 6 years ago

The chessboard is generated by the program. It seems that the software can't identify the chessboard pattern on the Kinect color image. Maybe you can try to turn off the light in your room? The calibration process needs a good contrast of the chessboard pattern on the sand.

magdesign commented 6 years ago

I can switch between the windows, one is the white window, the other is the one with the menus and camera feed and the third is my terminal output. I never see the chessboard anywhere, thats what irritates me.

thomwolf commented 6 years ago

Hmm the chessboard should be projected on the white window. That's handled by using a rather basic set of openframeworks functions which are here: https://github.com/thomwolf/Magic-Sand/blob/master/src/KinectProjector/KinectProjector.cpp#L724 Maybe you should try some simple openframeworks examples to be sure OF is working properly on your system

magdesign commented 6 years ago

I tried the of examples... of seems to run nice. Will now compile on of 0.9.3 but I guess same issue there.... will report back soon.

RasmusRPaulsen commented 6 years ago

I quick googling on "openframeworks linux multiple monitors full screen" reveals that it could be a general Linux monitor issue.

I would not bother with the 0.9.3 version.

magdesign commented 6 years ago

I disconnected the monitor and only left the projector connected. Then I rebooted the whole system and again started the ./Magic-Sand application.

It now writes: Number of screens found: 1 Monitor 0 size: 1280x800

When trying to calibrate its still missing the chessboard. Its weird. Shall I film my steps to show you the process?

RasmusRPaulsen commented 6 years ago

So if I understand correctly you now both have the GUI (the menus) and the white screen shown on your projector? Meaning that all is projected on the sand?
It must be complicated to navigate the menus then!

You should then manually define the sand area on the Kinect output window and finally press the calibration button.

The chessboard pattern should appear on the white screen - but it is an atypical use situation and I have not tested that particular setup.

magdesign commented 6 years ago

Yes. I have all the GUI stuff working and can click myself thru the calibration process until the chessboard thing. On this point never a chessboard appears so the calibration process never finishes...

magdesign commented 6 years ago

I checked it again with the windows build v1.5.4 But also there is no checkerboard coming up. Am I the only one or can someone else describe the same behavior? I am wondering if the size of the sandbox matters? Sorry for that, but still in hope to get it sorted out......

RasmusRPaulsen commented 6 years ago

Oh! I owe you a big apology! I have introduced a bug in the latest update. I have just made a hot-fix that should fix it.

(I cleared the projectorwindow in each update - for other reasons, but forgot to check if it is calibration mode)

magdesign commented 6 years ago

Wow. Thanks! Finally the chessboard appears, I feel so lucky :-) But now I always get the error: calibration failed - reprojection error too big I think this will be fixable with some hardware settings, I am guessing that my sandbox is too big...

RasmusRPaulsen commented 6 years ago

Good the fix worked. I do not think the box size is a problem. Did you cover the box after the first 5 patterns? You can enable dumping of debug files during calibration. See release notes. I can have a look at them.

magdesign commented 6 years ago

Thanks for all of your help. I played with various resolutions and could finally calibrate with the projectors native resolution of 1280 x 720. After calibration went successful, I clicked the run button on top right corner. The sandbox color displays but way too small, maybe a quarter of the sandbox size. The kinect sees the whole box and also reacts to interactions. Any suggestions to fix that :-)

magdesign commented 6 years ago

Sorry... I finally got it. I have to switch the windows again.

Please provide me your paypal, so I can donate you a few drinks!

Big thanks.

RasmusRPaulsen commented 6 years ago

Thanks to you we located a hidden bug! So lets have a drink next time I am in the Bern area!

don378 commented 6 years ago

Hi, I am have this error and i cannot figure out how to fix it. I get the checker board then it will ask to cover it i do not and it runs through calibration and i get calibration failed - reprojection error too big. Any help you can provide will be appreciated. thanks

trilldad commented 5 years ago

Ditto Im having the same problem. Run through all calibration steps and it always says reprojection error too big