mkalten / reacTIVision

computer vision framework for tangible interactive surfaces
Other
306 stars 64 forks source link

Support for GS camera on raspberry pi #46

Open josephlarralde opened 9 months ago

josephlarralde commented 9 months ago

Hi,

I'd like to use the global shutter raspberry pi camera with reacTIVision.

I just managed to compile reacTIVision on latest bookworm raspberry pi OS. libcamera is able to open the video stream of the GS cam, but reacTIVision says "No camera found!".

Earlier I was trying on an older distro. We have an older raspberry pi IR camera which works well on it as long as the legacy support is enabled. I had to disable legacy support to be able to see the video stream of the GS cam with libcamera, but it was in no case recognized by reacTIVision.

So I guess that in order for it to work, the source code should be altered in some way ...

If anybody has any pointer reagrding where this should happen in the code, and which lib this should rely on, I'd be very grateful.

Thanks ! Joseph

floe commented 9 months ago

You would need to use libcamera directly in reacTIVision (cf. https://github.com/libcamera-org/libcamera/blob/master/Documentation/guides/introduction.rst). Not sure right now where in the code this should go, though, it's been a long time since I looked at that 😅

Alternatively, as a hack, you could use a GStreamer pipeline along the lines of libcamerasrc ! queue ! v4l2sink in conjunction with v4l2loopback to make the libcamera data appear like a old-style v4l2 video device, which reacTIVision may be able to use.

floe commented 9 months ago

P.S. apparently there is also a wrapper script libcamerify which already does something similar, you could try launching reacTIVision through that.

josephlarralde commented 9 months ago

Great, thanks @floe for the pointers ! I thought I'd try to find some inspiration from this repo, but a simpler hack will do if I get one to work. Cheers, Joseph

josephlarralde commented 9 months ago

Hmmm now that I used libcamerify once, I systematically get the following errors anytime I use libcamera or libcamerify :

ERROR IPAModule ipa_module.cpp:172 Symbol ipaModuleInfo not found
ERROR IPAModule ipa_module.cpp:292 v4l2-compat.so: IPA module has no valid info

Couldn't find useful info to fix this error on the web yet. And reacTIVision still doesn't see any device / stream ... maybe some specific settings would be needed in camera.xml ?

EDIT : I'm currently considering the harder path and started drafting a LibcameraCamera class. Not sure how far I will get with my current schedule.