|
Re: cRIO, has it 'upped the game'?
Our robot did not do anything this year that it couldn't have done last year and moving the image processing from the camera co-processor to the cRIO was a step backwards in my opinion. We spent a lot of time optimizing for 15fps and still had a hard time getting the thresholding completed in less than 10ms so we could guarantee that all the processing completed each 20ms frame. In the end we still had a lot of trouble with different lighting and the black curtain background.
The good things about the new control system include:
1) The ability to read and write files larger than the IFI EEPROM area. Although we found that under some circumstances file I/O caused image capture pipeline "slips" that we never resolved - the last WPILib update may have fixed that. We were able to do pretty much the same thing with old dashboard telemetry stream but you needed a laptop or PDA at the OI to capture the data.
2) The debugging environment was helpful. (It would have been nice if the profiler was enabled, though)
3) The use of floats and doubles is nice but in my opinion it took away the opportunity to teach the programmers about integer numerical methods (pre-season, of course).
4) Fast program downloads
The bad things about the new control system include:
1) SWaP (size, weight and power) and Cost
2) Strange and largely undocumented FPGA limitations - only two analog channel accumulators on module slot 1 only? Shaft encoders. No apparent way to synchronize interrupts with analog samples?
3) Very constraining default implementation for the gyro and accelerometers
All-in all we will be able to do more with this processor in the future but you have to keep in mind that the cRIO system was designed to use the FPGA for all the hard real time functionality and the teams need access to that in order to really take advantage of the architecture. Also, the image processing should be off loaded in the future as well.
|