[PLUGIN][WIP] Oculus-Rift


#1

This plugin is a work in progress and not finished yet, but would like to start a discussion.
My thoughts are that it will work for a single camera where only the interface is in 3D but also for stereoscopic cameras.

Link to Github

https://github.com/covedesign/openrov-oculus-rift-plugin

Here is a picture from the interface.



Here is a picture at my dev-ROV. Thanks to those on openROV who helped me with the camera mount, you are awesome!


It is equipped with stereoscopic cameras without IR filter and 2 rings of infrared diodes. On the outside it has a panel with 7 LED which delivers 6000 lumens.


What I'm working on right now is to get both cameras to start at the same time. (Right now they are taking up too much bandwidth when they allocates how much they should use on the usb-port).
I do this by modifying the UVC module to ignore to check the bandwidth and run until it causes trouble (hopefully it will not).

be continued...


#2

Awesome. It that a custom build of /lib/output_http.so?


#3

YES, it sends the "Access-Control-Allow-Origin: *" in the http header for CORS enabled image.

Read more here:

https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image


#4

Cool. I actually would like to go ahead and incorporate that as a stock feature for the video feeds coming over http so that they can be manipulated for a lot of vision solutions. Did you compile it yourself?


#5

#6

Yes i did.

That would be awesome!

In "httpd.c" at function "send_stream" under "HTTP/1.0 200 OK\r\n" add "Access-Control-Allow-Origin: *\r\n"

I think you'll find it :)


#7

Terrific!!! I am trying to emulate stereoscopic video but your custom built is really interesting.


#8

Hello Joakim,

This is awesome. I have been thinking about running IR as well to do some night time fish studies without disturbing them (what are you using them for?)

Are you willing to share the plans to your setup?

Brett


#9

This is awesome!

I think water blocks IR very well. I was under the impression water showed up as black in IR footage. But I hope I am wrong. :smiley:


#10

https://github.com/codewithpassion/mjpg-streamer/pull/1


#11

Very cool application!

I don't have much experience with stereo vision systems so I can't help there much but I have worked some with IR lights underwater so I thought I would chime in. Basically attenuation of IR light in seawater is pretty strong. Here is a chart showing the relative spectral shift of a Halogen (lots of IR), an HMI light, and a typical phosphor converted white LED through seawater at a couple of different distances:


You can see that even the IR heavy Halogen light source basically has no power at that end of the spectrum at just 2 meters. I took the original source measurements for this chart in a laboratory grade 1m integrating sphere and modeled the spectral attenuation based on data from Smith and Baker, 1981.

Most critters down there have little sensitivity to light in the orange-red end of the visible spectrum so you would probably be better off with just simple red LEDs for observing sea life. Light from a typical red LED around 600nm will see nearly 10X less attenuation than an IR source around 800nm and add to that the greater quantum efficiency of most red LEDs over IR LEDs and you end up with appreciably more usable light. =)


#12

Thanks for the spectral analisys data Aaron.

Of course red and infrared light have quite a short range in sea water. Depending on water quality "long wave" light is almost completly absorbed at around 10 meters depth.

Merely when diving, it can be seen that the deeper the greenish the environment.

From another point of view. Night vision devices are based on the "heat" emision diferences. Hotter bodies look brighter, while colders look darker.

Most water live is cold-blooded. It means their body temperature is the same, or almost the same, than that of the environment. Hence the heat contrast is very weak, and the hypotetical obtained image very blurred, if any.

From my point of view, the way to go would have to be the software image post-processing.

Two puntual known light sources (green and red, may be laser pointers), could be taken as reference for the process to differentiate the pic colors, in an almost completly green image .

Regards


#13

Hey Joakim,

Tried running this on the 2.5.0 software. Ran in to an issue when it tried to load. Full disclosure, the camera was acting poorly during the testing so I cannot rule out some odd side-effects. VLC would load the stream but the stream seemed to freeze when I made the request from the browser.

Image from origin 'http://192.168.2.12:8090' has been blocked from loading by Cross-Origin Resource Sharing policy: Received an invalid response. Origin 'http://192.168.2.12:8080' is therefore not allowed access.

But when I look at the headers that were sent I see the CORS settings:

  1. Access-Control-Allow-Origin:
    *
  2. Cache-Control:
    no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0
  3. Connection:
    close
  4. content-length:
    142300
  5. content-type:
    image/jpeg
  6. Expires:
    Mon, 3 Jan 2000 12:34:56 GMT
  7. Pragma:
    no-cache
  8. Server:
    MJPG-Streamer/0.2

#14

can you share this file and tell me where to put it?? thanks


#15

Hey Michael,

Responded to your youtube comment as well. This will soon be included in a package update. Else you have to download and compile mjpegstreamer. If you follow the pull request listed above it will take you to the modified file in the context of the full project. You can download that pull request to your local beaglebone and in theory compile it directly.


#16

Checkout this Kickstarter-project. Capture 3D image with only a single camera!

https://www.kickstarter.com/projects/kula/capture-the-moment-in-3d


#17

This looks fantastic! I will be getting into openROV very soon with the exact goal of getting mine working with the Rift.

I’m curious, though—how does head-turn navigation work with openROV?


#18

Have you seen live view rift app? It might do exactly what you are trying to do:

http://soft.viarum.com/liveviewrift/


#19

@Joakim_Karlsson, I know we have been waiting on Chrome to finish integrating the WebVR in to chrome proper. For those following, we have had to use an experimental chrome build at https://drive.google.com/folderview?id=0BzudLt22BqGRbW9WTHMtOWMzNjQ&usp=sharing#list.

The spec coverage and tracking for integration it to browsers is here: https://www.chromestatus.com/feature/4532810371039232

The other thing we needed was to integrate the camera in to the same security web domain as the app. Happy to say that has now been checked in!


#20

hello @Joakim_Karlsson , i am tarmizi from indonesia, i am so interest about your project, but to late for me to get your project at github. may you re-upload your project thanks

tarmizi | tarmizibantan@gmail.com