View Single Post
  #2   Spotlight this post!  
Unread 27-01-2015, 11:10
adciv adciv is offline
One Eyed Man
FRC #0836 (RoboBees)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2010
Location: Southern Maryland
Posts: 478
adciv is a name known to alladciv is a name known to alladciv is a name known to alladciv is a name known to alladciv is a name known to alladciv is a name known to all
Re: Multiple cameras on one Robot

Quote:
1. I am making the assumption that we should limit camera usage to 6 mbps, leaving 1 of our 7 for direct Roborio communication, is that correct?
From what I know, your number are about right. But from experience, I would recommend reducing camera usage as to the minimum necessary. Based on Page 9 Figure 3 of the white paper, I would recommend keeping it below 6mpbs total (including control packets).

There are a number of tricks you can do to reduce bandwidth usage, the most significant is reducing framerate.
Quote:
2. We want the option of using 3 cameras at once, and based on this whitepaper on page 7, running our cameras (Axis M1011s) at 10 fps and 30 compression on 320x240 will be well under the 6mbps limit. We have tested this in our shop and it works to our satisfaction. Are these numbers correct and can we use a 3 camera setup this way?
Those numbers seem to match past experience. Bandwidth usage will vary based on the image and lighting conditions. There is an option accessible through the axis camera web interface which allows you to hard code in a maximum image size. You may want to use this feature (among others). Not all axis settings are currently available through code.

Quote:
3. Does the router imaging tool limit you to 7 mbps so we can double check that we are not hitting the bandwith limit in our shop? Or must we manually do this limit in the router? (I think I saw this when looking through router settings before, but I can't check right now, because this snowstorm has our school closed.)
The router does not limit it. The limitation is performed by the field network hardware. Also, (as of last known event) the field hardware does not differentiate between camera packets and control packets.

Quote:
4. If we write dashboard code that swaps between camera feeds (changes which camera it is displaying) by putting a case structure over the dashboard image ip-address box (we are a LabVIEW team) and changing the ip-address it is connecting to, will that make the system act as if it is connecting to one camera for bandwith purposes?
Yes, but you will disconnect the cameras (network time out). Each time you switch, you will have to reestablish communications (takes a few seconds). If you only need to view one camera at a time, I would recommend writing a program to do the following:

1) Connect to all 3 cameras and stream to RIO
2) Allow selection of each camera individually
3) Forward the selected camera image to the dashboard.
You'll effectively be using the RIO as a video router.

I'll see if I can write this in the next few days. We're planning to use two USB cameras and the coding shouldn't be that different.
__________________
Quote:
Originally Posted by texarkana View Post
I would not want the task of devising a system that 50,000 very smart people try to outwit.