External Camera Control Interface

Hi All,

I’m looking into the possibility of interfacing the hardware of a BlueROV2 with an external camera mounted underneath the ROV in the ‘heavy’ configuration. Ideally thinking along the lines of a RED Gemini or Sony A7SIII as the ROV will be used to obtain footage for use in a documentary series.

If anyone has any experience with using an HDMI, USB-C or SDI output to interface with ArduSub the please do get in touch, ideally would be able to have camera control and live preview through the ROV tether.

Cheers,
Mitch

1 Like

Hi @Mitch.Buckley, welcome to the forum!

Adding an external camera is definitely possible. You’ll want to consider waterproofing to the depth you need to film at, as well as how the camera+enclosure affect the dynamics of the ROV (ie you may need to add additional buoyancy foam so the vertical thrusters are able to lift the extra weight, and the mass will have an effect on the speed and acceleration the ROV is able to achieve). The location of the camera will also change how the ROV moves in the water (if it’s too far forwards the ROV might pitch downwards while moving, and too far to either side can make the ROV roll/tilt sideways).

Sounds awesome! :smiley:

ArduSub isn’t actually used for the camera side of things in the BlueROV2. The Raspberry Pi companion computer runs a program called gstreamer to stream the connected camera feed to the top computer. The Bluerobotics Low-Light Camera outputs video encoded in H264 format, which is efficient for streaming.

Most likely you’ll want to control the camera using the Raspberry Pi, running a script on it to do so. For previewing purposes, the tether has easily enough bandwidth to send another 1080p 30fps H264-encoded stream, and it’s not overly difficult to set up another gstreamer pipeline to send such a stream to the top side, which can then be viewed in a program like VLC or OBS. This comment may be helpful in getting an extra video stream to the top.

The main issues I’d foresee are the RPi getting access to the preview pre-encoded in H264 or similar, and interfacing the RPi with the camera controls, both of which are highly dependent on the specifics of the camera being used. The RPi can do encoding and resizing of a preview feed if it has to, but that will likely reduce your preview framerate quite significantly, as it takes a large amount of the computing resources away from communication and streaming. If at all possible it’s best to feed a pre-encoded stream into the RPi, which may require getting a separate device or product to connect to the camera and encode the stream before passing it on to the RPi.

If you can find some more information about how the camera(s) you’re interested in can be remotely controlled, and what remote preview functionality they have, then we might be able to help a bit more with the actual hardware and/or code required to get your use-case set up :slight_smile:

2 Likes

Hi Mitch,
Yes, this is possible with some additional hardware.

Sony cameras (and others) do allow for control over LAN (or RS485), and you can view the footage using multiple methods, even incorporating into the QGround Control feed if required. We did look into it recently using the RED control app (can’t remember what it was called). The job didn’t go ahead, but it all seemed feasible.

1 Like

Hi Mitch. How are you making out with this? I am looking at doing the same with a ZCam cinema camera. The camera control is done via ethernet so I am hoping I can link it through the extra 3 pairs of wires in the ROV tether.

3 Likes