paper: How to Get Multiple Cameras on Robot

Thread created automatically to discuss a document in CD-Media.

How to Get Multiple Cameras on Robot
by: CodeMonkey

Attached is a guide to how to use multiple cameras on your robot. We didn’t find any documentation so we decided to put some up ourselves. The guide includes powering and setting up multiple cameras, along with modifying the dashboard to accommodate multiple camera feeds.



The Robodox Guide to Multiple Cameras in FRC.pdf (1.62 MB)

Is there any reason why you use the 12v-5v regulator instead of just connecting the second camera power to the PD board’s 5v regulator?

I second the previous question. Why cant you run both cameras on the same 5 volt power supply on the PD board. Is it against the rules? And if it is, why? Its not like it would be dangerous or anything?

This seems to suggest that it would be allowed…

"All electric power utilized by the Robot shall be distributed from the load terminals of the PD Board (not the M6 shanks).
The cRIO power input must be connected to the 24 Vdc supply terminals on the PD Board. With the exception of one Solenoid Breakout Board, no other electrical load can be connected to these terminals.
The wireless bridge power feed must be supplied by the 5V converter (model # TBJ12DK025Z) connected to the marked 12 Vdc supply terminals located at the end of the PD Board (i.e. the terminals located between the indicator LEDs, and not the main WAGO connectors along the sides of the PD Board). No other electrical load can be connected to these terminals (please reference any 2012 Robot Power Distribution Diagram posted on the Kit of Parts site for wireless bridge wiring information.
All other branch circuits must connect to, and have power sourced solely by, a protected 12 Vdc WAGO connector pair or the 5V supply on the PD Board.
Only one wire shall be connected to each WAGO connector on the PD Board. If multi-point distribution of circuit power is required (e.g. to provide power to the three KOP breakout boards via one 20-amp circuit), then all incoming wires must be appropriately spliced into the main lead, and only one lead inserted into the WAGO connector to connect the circuit.
"

We just weren’t sure if we could supply enough power for both cameras out of one wago so we used the converter so that each one could be separate.

According to datasheet for the Axis camera, the camera peaks at 6.5Watts which at 5volts is 1.3 amps. The PD board can supply up to 3 amps off of the 5v power supply. 2.6amps<3amps so I am pretty confident that it would word.

Ok. We will try this and see if it works and I’ll let you know.

We have been using another 12V-5V Power Converter to power our Axis M1011 camera and notice the camera reboots after 3-4 minutes of heavy robot use (i.e. running 2 practice matches). Anybody else seeing that issue? We may try running it off the 5V Wago supply if people indicate that it works well.

3-4 minutes of heavy robot use would tend to draw down your battery below 7 volts, which would cause the converter to stop functioning.

Maybe it’s too late for me, but with this line of logic wouldn’t the robot radio be rebooting as well? Since it is not, I don’t necessarily agree with this. And isn’t that the point of the 12V-5V Converter anyways?

The 12V-to-5V converter for the DAP-1522 is connected to an up-regulated 12 volt output. It won’t drop out until the robot battery goes very low, about 4.5 volts.

Have we decided whether or not a judge would get freaked out by the 5volt regulated power feeding both cameras?

Why would a judge care?

If you’re talking about whether it would pass inspection, I know of no rule that would get in the way.

I can confirm that this works. You can run two axis cameras from the PD board without any issues. Also for reference, a single camera draws about 250mA under normal use, so you’re well under spec there even with two cameras!

Thank you very much for posting this document. I had one question. You guys showed how to edit the dashboard code, which I followed easily. However, I would assume you would have to edit the robot code too, right? Would you just copy the code for the first camera to add the second?

Easy if you use USB webcams like we did with a laptop on the robot.
You can easily put 2 webcams on a laptop, sometimes 3 (depends really on the number of root hubs in the laptop, most netbooks have 3 USB ports but only 2 root hubs).

If you use a MultiTT USB hub you can usually get to 3.

We can confirm that putting a laptop within the rule restrictions is allowed and has passed inspection at 3 competitions.

It’s quite cost effective as well. Consider how much 3 of those Axis cameras would cost versus the $25 webcams.

You can get 1080P webcams now. Think about what you could do what that sort of resolution. Think about what you could do with 45-50 frames a second from some webcams at 640x480.

This whitepaper is documenting how to attach a second camera and add it to the driverstation display. In this game, likely as a POV camera for ball hunting. As described in the whitepaper, this takes about 30 minutes or less of programming, and no particular expertise.

So I fail to see how adding an entire laptop with USB cameras is a more economical solution to this problem. (Axis cameras are about $125, by the way. Is that a $200 laptop?) And then there’s the complication of the custom code on your laptop and interfacing that to the code on the driverstation to display the video from the cameras.

So, while a secondary laptop for image processing is a nifty idea, I don’t think it has any relevance whatsoever to this (rather good) whitepaper.

We had a slight problem with this at the Colorado regional. The tutorial was excellent and we got the second camera up in like you said 30 mins.

BUT…

We could not get our ping times on the field low enough to support both cameras together. At the worst we saw pings of 160ms, and at best we saw 30-40ms. The threshold value to be “satisfactory” is 20ms, told to us by the FIRST field staff is where you will not have comm issues. When we operated with one camera we saw 6-8ms with the old axis and 10-20ms with the new axis camera. Together they were 30-40 so that was a no go.

Anyone got any ideas on how to get ping times down with two cameras? we were at the lowest resolution 7fps on both and 75 compression. I couldn’t think of anything else. We also found that switching cables and locations helped significantly but not good enough…

we just guessed the field network cannot handle all the video stream we want to put through…

Dialing down the camera settings should have been good enough. Perhaps your Driver Station computer is being overtaxed by trying to display the images. You can check its CPU usage in the Task Manager.

3 Axis cameras at $125 each would be $375. I originally wrote:
“Consider how much 3 of those Axis cameras would cost versus the $25 webcams.”

However, now that you’ve stated you’ve been getting them for $125 each can you tell us how? Last year when we bought them they were at least $150 each.

If you really want to send the video back to the driver’s station from a webcam(s) attached to a robot mounted laptop there are quite a few ways to achieve that. Including but not limited to installing VideoLAN and streaming it from the laptop on the robot to the laptop at the driver’s station.

Here’s an example of how to do it in Linux (which is what the students had on our robot laptop) and even rebroadcast that to the Internet:

BTW, this example uses UDP, not TCP, which might actually come in handy if you do start dropping packets.
This method gives you fine control over both ends of the streaming, including the compression methods, transmission protocols, and the communications stacks themselves (for example you can reduce the MTU, you can increase the receive window, etc).

There’s no problem with the whitepaper at all it is great work. There is just more than one way to do this and there shouldn’t be any problem with mentioning that considering the title of the topic in question is: “How to Get Multiple Cameras on Robot”. Consider for archival sake what will happen if someone searches for that later when this topic is less recent.

Sorry if I’ve ruffled anyone’s feathers wasn’t my intent.