|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
Re: Is the crio powerful enough?
On a 3.4GHz Pentium D, the sin() function is about 3 times slower than a 3rd degree polynomial approximation.
But since we're only talking 0.3 microseconds for the sin() function, it's not to worry. Anybody have numbers for the cRIO, just curious? |
|
#2
|
|
Re: Is the crio powerful enough?
Which vision target are you designing for?
Green light (2005 - 2007) / Pink and green (2009) Concentric ellipses If it is the first one then the cRio might be able to process it. The thresholding operations take much less processing power. Are you trying to use stereoscopic vision techniques, or just triangulation? |
|
#3
|
|||
|
|||
|
Re: Is the crio powerful enough?
Quote:
|
|
#4
|
|||
|
|||
|
Re: Is the crio powerful enough?
Quote:
How did you measure 0.3 microseconds? I recently wrote a sin function that runs in ~0.7 microseconds on an 80MHz Arm Cortex-M3, with comparable accuracy. |
|
#5
|
||||
|
||||
|
Re: Is the crio powerful enough?
you don't, you just perform the same operation a few million times and divide.
![]() |
|
#6
|
||||
|
||||
|
Re: Is the crio powerful enough?
Quote:
Just in case, I used a random-number generator. (This prevents LabVIEW from compiling the results as constants in the program) ![]() It took about 0.000492ms per iteration of the sine function, measured over a million iterations. To put it on the same scale as Ether's measurement, that's 0.5 microseconds. Last edited by kamocat : 05-08-2010 at 01:52. |
|
#7
|
|
Re: Is the crio powerful enough?
Like what was said previously, the trig is not going to be a problem instead its the vision proc.
The triangulation tracking won't take much more processing then 2 *(current load for 1 camera + pointing). However, a 3d disparity map for stereo optics will take the load of the previous as well as the load of the calculations to make the map and then find a target and distance. Here is a whitepaper on stereo optics http://www.cse.unr.edu/~bebis/CS791E...ereoCamera.pdf |
|
#8
|
|||
|
|||
|
Re: Is the crio powerful enough?
Quote:
32 bits x 32 bits = 32 bits is always one cycle 32b x 32b = 64b takes 3 cycles if the result is small 32b x 32b = 64b takes 5 cycles if the result is big Also, it is relatively common for functions to bail early for special values, such as 0. For example, my sine function bails in less than half of the usual execution time if the input is a multiple of 45 degrees. Quote:
|
|
#9
|
|||
|
|||
|
Re: Is the crio powerful enough?
I was not very aware of FPGAs, so I read up on them; essentially FPGAs are processors that are highly customizable to fit specific functions? So do FPGAs need to be configured hardwarely before it can be programmed? Is the cRio a type of FPGA? If not, which FPGA is a suitable FPGA for the purpose of image processing? Also would the FPGAs be used primarily to capture the images or process the images? Regarding cameras, would they need to be directly communicating with the FPGA, like the middle man, or would the cameras be communicating with the cRio? If the cameras were to be communicating with the cRio, would a Ethernet network cable splitter suffice? Would the cameras show up as two separate cameras or would the set up just fail?
|
|
#10
|
||||
|
||||
|
Re: Is the crio powerful enough?
An FPGA is not a processor. It does not have to work with only four bytes at a time. It doesn't have to grab data from a register, manipulate it, and then put it somewhere else in memory; it can just process the data continuously. It runs in parallel, like analog hardware. Think of it as a million operational amplifiers you can connect in whatever pattern you like, but instead of having to remanufacture it each time, you can reconfigure it electronically. In truth, it actually loads its configuration from non-volatile memory each time it is turned on, as opposed to it being burned in like a CD.
On the cRIO, there is a processor and an FPGA. I'm not sure about the ethernet or RS232, but I know that every one of the eight modules goes through the FPGA to get to the processor. For example, a small part of our FPGA is programmed as an accumulator for the gyro, to integrate degrees/second into absolute degrees. The FPGA is also used to improve the performance of the processor by acquiring data so that interrupts are rarely necessary; when the processor requests an input, the data is right there. Now, as to how to get access to the FPGA: We aren't given the LabVIEW FPGA module in FRC. That's because
When you'd like to use the cRIO for FIRST again, you will have to re-image. Last edited by kamocat : 05-08-2010 at 20:02. Reason: spellcheck |
|
#11
|
|||
|
|||
|
Re: Is the crio powerful enough?
Quote:
. So I do not have access to the cRio FGPA? I won't be using LabView, and never plan to; I use C++. I guess the possibility of using an on board computer to process the images is certainly a possibility. I doubt beagle board is strong enough; a standard PC would violate the rules (BIOS Battery). Even without those, the project is a big hole in the wallet; the cameras them selves are around $80. |
|
#12
|
||||
|
||||
|
Re: Is the crio powerful enough?
I agreed with everything in the quoted post except for the first sentence (above).
Many of the ways an FPGA can be used are the definition of "processing" digitized data; and the inevitable consequence of that, is that an FPGA is (among other things) a type of "processor". FPGA's certainly are not one of the typical CISC/RISC Central Processing Units usually found at the heart of a desktop computer or of many embedded computing products; but "processor" is certainly one of the ways they can be configured and used. Blake |
|
#13
|
|||
|
|||
|
Re: Is the crio powerful enough?
Quote:
|
|
#14
|
||
|
Re: Is the crio powerful enough?
Quote:
It also provides the system watchdog. Most FPGAs are programmed over JTAG, they only need power (some need 3.3v for IO as well as 1.75v for the main processor) and a clock to be programmed. Keep in mind that some of them are volatile, they lose their program upon power down, so those ones need an external flash memory in order to function properly each time it is powered up. As far as capturing / processing goes, the FPGA could do both (if you use one that has enough NAND (or NOR) gates). If to be used for capturing, then it would have to be a "middle man" between the camera and the cRIO. This would allow all of the processing to be done without putting ANY load on the cRIO. It would appear be something like a CMUCam to the cRIO. The CMUCam would give the RC a very limited set of data (but the data was useful). It gave the centroid's (Center of mass) coordinates, 2 coordinates (a box where the green target was found), and servo control commands to keep the target centered. Quote:
Each camera would have its own IP address (unless your processing FPGA is what is ultimately communicating to the cRIO, in which case no cameras would show up, the only data transferred would be in your own custom protocol and with your own data.) and thus would show up as 2 cameras. |
|
#15
|
|||
|
|||
|
Re: Is the crio powerful enough?
Quote:
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Reimaging the cRio Issues there are no cRio devices on the subnet | Stuart | FRC Control System | 2 | 25-02-2009 23:41 |
| 617 IN THE LIMELIGHT (Close Enough) | bsmmoney | Chit-Chat | 0 | 08-03-2008 00:01 |
| pic: The gearbox that makes us so powerful | keenanmolner | Robot Showcase | 6 | 20-02-2007 02:11 |
| The end of mindstorms - no smiley face sad enough | Eric Reed | FIRST Lego League | 20 | 15-01-2004 16:00 |
| Enough with the bumpers! | archiver | 2000 | 2 | 23-06-2002 22:32 |