Legality of External Co-processor

Hello everyone,

Several questions:

  1. Were we allowed to attach external co-processors to the cRIO this last year? Specifially, I’m considering an EeePC (one that meets the price guidelines and has been modified to run off of the robot’s battery power).

  2. If I was to use an external co-processor, would I have been able to attach the AXIS webcam (or maybe even a different one?) to the coprocessor, instead of the ethernet port on the cRIO?

  3. What would be the best way to get images from the AXIS camera to the external coprocessor (connection-wise)?


An external co-processor is, effectively, a custom circuit. Therefore, I searched section 8 of the rules for things of that nature and found that <R66> and <R67> govern the input/output. According to the rules, then, it is legal provided that is connected as per said rules.

Given that the Axis camera is a sensor, you could indeed connect it to the custom circuit that is the co-processor under <R66>.

Please note that this is subject to change for next year.

First, since the 2010 rules have not yet been published, anything that anyone tells you regarding the legality of any component or methodology next year is pure speculation. That said, we can speculate that FIRST might choose to continue their policies from prior years into 2010 (there is a precedent of this…)

External co-processors have traditionally been allowed provided they meet all of the requirements for a “custom circuit”. That is, they must be within a cost limit, be powered by the robot main battery, be protected by a 20A breaker, and must NOT directly control any outputs (motors, pneumatics, etc., since this would go around field control for enable/disable, etc.).

It fits the description of an custom circuit. However you may want to check the rule on connecting the camera, there may be a rule along the lines of "the data port of the camera may only connect to port # of the CRIO, and the power port may only be connected to the power distribution … yadda yadda. This could affect using that camera, however a different camera wouldn’t fall under those rules.

Food for thought. However, Especially if you are going to use the axis camera anyway, you may look at porting your vision code over to the crio, I hear it is extremely beefy in processing power respects (relative)

The obvious cRIO communication connections were all off-limits for custom circuits last year. With that restriction, getting useful data from a coprocessor in a timely fashion might be a significant challenge all by itself.

It seems to me that the only reasonable way to get data from the Axis camera to a coprocessor under those rules would be via a direct connection to the camera’s ethernet port. That leaves the cRIO’s second port unused (and unusable).

What if you used another custom circuit (parallel port is perfect for this, but I don’t believe EeePC has one) to create essentially digital outputs from your EeePC to the cRio, and have the laptop do all of the processing down to the point where it can send essentially control signals to the cRio?

Some food for thought… if you can have a netbook on your robot how would you make sure it was powered up before the start of the match because they do no allow you have have it powered up before they tell you to (or at least that was how it was for the 2009 season) and with that they gave maybe 30 seconds from the time of power up to the match start.

Maybe 30 seconds? I think you’re being too optimistic :wink:

Even if you were allowed to let the netbook ‘sleep’ you’re still talking about 10 seconds to ‘wake’ from s3 mode. If you’re talking boot you’d better consider modding the book to use one of the intel solid state drives (I just saw one for under 300$).

To be honest it seems like overkill. There is tons of prebuilt stuff for Java and the cRio, spec wise, can handle quite a few solid imagery operations (with the exception of J2K).

I’m wishing I had access to one right now (cRio and java) to experiment.

Are you trying to do image processing with stereo? If thats the case you could simply use a few USB cameras and have them request raw data- cheaper than the 'net camera and significantly faster (lower res). The Microsoft VX-3000 are cheap at 20$ a piece.

and you’re not allowed to have an additional power supply on your robot, so you’d need to have a laptop that will work without a battery attached and only a power adapter (that you would have to tie into the 12v battery lead).

You would have to mod it anyway, unless it already had solid state storage. A hard disk contains a motor, and is illegal. Same goes for any fans in the unit. And once you add the $300 drive to a netbook that costs any more than $100, you are going to have a very hard time convincing me that it complies with Section 8.3.3(H) of the rules (single configuration combined assembly < $400).

The only way for it to communicate with the cRIO would be through one of the digital I/O modules.

1771 used a PC motherboard last year (2008) modified for solid state storage, kit fans, etc, to do stereo vision processing. But it used serial communications to the old RC system, which was not an option this year.