Home        Store        Learn        Blog

Faster gstreamer alternative. RPi Web camera interface

https://elinux.org/RPi-Cam-Web-Interface

I discovered this cool project while struggling to get a decent gstreamer video stream running on our autonomous boat. It basically installs a web server on a raspberry pi, and serves up super low latency, high quality video feeds.

In my testing, video performance is vastly superior to gstreamer. There is zero detectable latency and a stable, high quality video feed. The stream is crisp and instant even on slow topside computers and long range WiFi networks. (It only works with official RPi cameras, though.)

It would probably conflict with the Blue Robotics configuration pages if installed directly on a BlueROV companion computer, though. (by default the video interface is accessed at http:///html.)

It might be worth investigating integrating this video stream software with Blue’s companion computer software. Video performance has been one of the biggest weaknesses of our BlueROV, and this might be an easy fix.

Thanks! People need to know there are alternate ways to get video topside.

I only use the onboard Pixhawk to control the ROV’s thrusters. For video, i put the board from a security-system 8-camera DVR in the WTC. I use a Panasonic SDR T55 78x zoom camcorder (used, eBay, $50) for my main pan/tilt cam behind the front acrylic hemisphere, and cheapo FPV microcams looking backwards, left, right, up, and on each manipulator wrist. The onboard Raspberry Pi and DVR both connect through a 4-port ethernet switch to an eKL ethernet-over-coax adapter. https://www.amazon.com/eKL-Extender-Converter-Ethernet-Security/dp/B07L6X94XS
I use RG59 coax for my tether. I just sign in to the DVR’s url and view 8 camera feeds in realtime with minimal lag. I project the interface onto a 120" screen with a cheapo $80 720p native resoloution LED projector, inside the pontoon boat’s cabin.
https://www.amazon.com/MEGAWISE-Projector-Supported-L21-Compatible/dp/B08DX6983T

That is a really cool setup. I started to go the ip camera route, but I couldn’t find small enough hardware.
How do you waterproof the cameras that are mounted outside the enclosure?

For all the small FPV cameras, they are literally 20mm square by maybe 30mm high, get the ones that have a case over the circuit board. https://www.amazon.com/Camera-Foxeer-Razer-1200TVL-2-1mm/dp/B07ZCMCVPC
One way to waterproof is put these tiny cameras onto a circle of 1/4" thick aluminum, then glue a standard security-camera dome down over them.
Another way is to put a tiny amount of grease or vaseline on the lens, place them lens down on a board with a weight on top holding them in place, put a 40mm high piece of 5cm diameter aluminum tubing (or i used cardboard the first time) around them, then pour in epoxy. Recently i’ve been putting the lens down on a piece of 1/4" thick glass, then a tiny bead of E-6000 around the lens body, then encasing in epoxy.
Make sure to plug in whatever wires you need before pouring the epoxy. LOL

I’m not concerned with a perfect image from these cameras, they are mostly used for situational awareness. I like being able to see all around the ROV. The two i’m particular about are the ones mounted to the manipulator wrists. I can glance back and forth between that view and the main camera view, that gives me a much better idea of where the gripper is, because without binocular vision, we have no depth perception. Using just the main camera makes it hard to position the gripper accurately to pick stuff up. Just watch the Nautilus team with their multi-million dollar ROV mangling samples and you’ll understand.

All my servos that get mounted externally have been filled with mineral oil. If there’s no empty space to fill, the water won’t get in. Mineral oil is non-conductive so it doesn’t interfere with the electronics in the servo. Plus i always coat the control board with epoxy resin anyway.
I drill a tiny hole in the side of the servo, plumb in a tiny hose (chainsaw fuel line, 2mm ID, mineral oil won’t eat it). All servo hoses run to a central reservoir of mineral oil, with a grease zerk in it’s side. Just pump some oil in after pulling the ROV out of the water, that will purge any water seepage from your servos.
For really powerful manipulators, i cut the motor /planetary gear housing section off a cordless drill, put a bicycle inner tube over that, flood with mineral oil. Hose-clamped against a piece of angle-iron to mount. Turning acme threaded rod. You can get brushless drills off eBay for $16 (tool only).
With a TMR3001 magnetic angle sensor replacing the feedback potentiometer, mounted to the manipulator’s joint, coupled with the controller board from a stripped servo driving an h-bridge, driving the drill, I have precise position control of my 9-dof manipulator arm. Plus enough torque to break parts.