|
Re: On board micro-controller with camera
The image sizes in WPILib were selected to match the initial Axis IP cameras. When later Axis camera models introduced other sizes, the camera VIs were not updated. This wasn't a technical limit, but a practical one.
Other questions you may want to try and answer -- what do you gain by using a higher resolution? The related question is ... What is the minimum resolution you can process in order to make the measurements you are interested in?
To answer your first question directly, you are not technically limited to 640x480, but the processing time is proportional to the number of pixels, and there may be no need to use a higher resolution. It depends on the size of the objects you are trying to identify, the lens, and the distance.
To answer the second question, you can break the processing down into its components and look at the overall time spent for the different approaches. To process an image, it first has to be requested, the camera digitizes, encodes, transmits, there may be more steps here depending on the connection, etc. Then the processing end needs to decode the image and store it. It perform its processing steps, and transmit the results back to the code that cares.
Think about what affects each step and the tradeoffs of higher resolution. Your initial post already captures some of this. A PC has a faster processor than the one on the robot. Do I transmit the data to the remote PC, or do I mount the PC on the robot and simplify the transmission? Or do I simplify the processing? Can I better optimize the request and capture of the image?
It is useful to hear advice from other teams, but keep the steps above in mind as they describe why they made various tradeoffs. Then think about what you really need to use the sensor for and what resolution and framerate is sufficient.
Greg McKaskle
|