Multi camera project BeagleBlack

Hi all

I and a couple guys are trying to build a system from the BeagleBone Black that uses an IR and color camera for quadcopter video.
We have one of each of these cameras
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/LightImaging/32KM_spec.docx.pdf

http://pub.ucpros.com/download/ov7620_ov7120_v1.2whole.pdf?osCsid=g3j4cfseca1627jv9mc4lans75

http://www.drs.com/products/rsta/PDF/Tamarisk.pdf
The end goal is to be able to output a video stream of either (1) the color camera (2) the IR camera (3) a composite video - b/w or color, overlay or other. It has to be composite video for the quadcopter. (it’s a system already setup and we’re just doing add-on)
Known problems:
The BeagleBone Black only has one USB port. I can probably figure out how to make the IR camera recognizable by the system through the USB port, but the other two are a bit more complicated – one is purerly analog NTSC and the other has a variety of digital options and a monochrome NTSC backup/test output. Maybe there’s a way to configure the GPIOs to handle this?
I’m planning on using OpenCV for the overlay/processing, though I’m not very familiar with it.

Sound crazy? It is, but that’s what we’re doing…

If I understand correctly
It should like surround view or adas ?
and as I know , AM335X don’t have isp . while omap3 have it .
while cvbs signal in . camera module will turn to bt656 or what ever digital signal , as usually BT656

And when you can catch BT656 digital signal . you can program it to overlay or something .

And about the CVBS out signal . You can NOT generate it by GPIO .

For Your application .As I think , You should use OMAP3 BB-XM board with omap3 soc

It will have a isp and cvbs out,only problem is it will only have 1 isp

if you want to get another work with usb .

And
omap3 have 3 hardware overlay

I’m not sure what you mean by surround view/adas. They’re both forward facing and will be fixed in position to try to eliminate any possible alignment issues.

I can’t see that the ISP is necessary for all image processing. If so that would make the Black completely incompatible with any sort of camera project, and I’ve found plenty of examples of people using cameras with it – just no analog cameras yet, which to be fair won’t be necessary for the final version of what we’re doing.
Certainly there are available capes for expanding the USB capabilities, and it’s possible the necessary cameras can be recognized as USB cameras. I’ve even seen a couple camera capes that are comparable to what we’re doing.

Can you be more specific about the limitations on generating a CVBS signal?

Because I work for automotive company . if this confuse you , ignore the surroud view and adas .

About the ISP , what I understand .

from http://pub.ucpros.com/download/ov7620_ov7120_v1.2whole.pdf?osCsid=g3j4cfseca1627jv9mc4lans75

You will get bt656 signal at last , right ? how do you connect to your BBB board ?

with USB ? You must have another mcu to convert BT656 digital signal to memory data

right ? so , if you can connect directly to OMAP3 ,you can save the USB MCU

Here is about the cvbs signal http://en.wikipedia.org/wiki/Composite_video

You can see , its a analog signal with base band . But , with gpio , it can only generate 1 or 0 ,totally different raspi FM

About the CVBS signal ,in omap3 and mx53 , it will be called TV encoder module

GPIO – that makes sense.
How about the ADCs? I suppose using those would involve writing or finding some software that would recognize it as a video stream.

New plan is to ignore (for now) any sort of composite video coming from the BeagleBone, we’ve got an alternative to that that doesn’t require extra hardware (DAC or… USB to VGA to composite) or writing signal encoding software.

A possibility we considered briefly was using the USB port for one camera and the microUSB for the other. Does that seem feasible? We ended up ruling out that possibility, but I’m curious as to whether it would work.

Thanks for the help.

Have you considered placing a USB hub between BBB and your webcams? the
typical USB webcam bandwidth requirements are not that great unless you
need high resolution in space and/or time.

Yes, and that’s pretty much what we’re thinking right now. The biggest challenges at this point are the possibility of having to interpret ADC input as a video stream (for Linux) and the need to create composite (NTSC) output from the Beaglebone.

Hi,

Fwiw - I’ve tried a few times to capture PAL or NTSC composite video over USB (with an easycap style adapter, various kernel versions up to the latest 3.14-ti branch) and have never been successful. It always chokes on the data transfer, and I believe it just can’t handle the data rate for the isochronous transfer.

I’ve vaguely wondered about putting a decoder IC on a cape, and using the PRU to process the digital (BT656?) output, but haven’t got further than just thinking about it…

Regards,
Jon

I have used a UVC camera and other USB peripherals through a powered hub and sent the signals over WiFI for a robot, but I’ve launched the video stream with a slow frame rate (8 fps) and small size (320/200 pixels). If it just for streaming purposes, it works, but I am not sure you have the bandwidth for multiple cameras. Also, you can initialize additional USB ports on the BBB, but then it becomes both a load and bandwidth issue.

I am not sure why you need two cameras - Most cameras have both RGB and some infrared capability(in most there is a filter to cut out the infrared) - and some (like the Kinect) have IR as depth- Sophisticated image analysis software like OpenCV or ROS - allow you to send a composite stream to a remote station for analysis and display.

You night find this useful:

http://wiki.ros.org/camera1394/Tutorials/UsingMultipleIEEE1394Cameras

If I understand correctly
It should like surround view or adas ?
and as I know , AM335X don't have isp . while omap3 have it .
while cvbs signal in . camera module will turn to bt656 or what ever
digital signal , as usually BT656

And when you can catch BT656 digital signal . you can program it to
overlay or something .

And about the CVBS out signal . You can NOT generate it by GPIO .

You can generate it just fine with the BeagleBone Black's GPIO. I have done
composite output with the option to overlay a video stream with the PRUs.
(sorry no photos or write ups yet; running way behind on that.) The hardware
is pretty trival for mono. You need to switch between 3 basic voltages with
enough drive for 75ohm's and have the right termination:
- Sync voltage
- Black level
- White level

Color is a little trickier in that you need to get the phasing right or the
color shifts around. Think of it as using the BBB as a programmable arbitrary
wave form generator. At 200MHz on the PRU, that's plenty fast for a signal
that lives with less then 6MHz of bandwidth.

As for input, the PRUs should be able to handle it; slap on a analog video to
BT656 converter chip. Doing either capture or video output is easy. Doing both
requires scheduling the PRUs so they don't block when access is made outside
of the PRUSS.