There is some information available on the cRio.
http://decibel.ni.com/content/docs/DOC-1750
Provides a good overview and addresses the specific question regarding laptop control. Specifically, for the competition the robot will be controlled through a driver station, but a laptop will be attached to the system for use as a driver display/feedback station and for programming the cRio.
This makes perfect sense to me now, but five years ago when we were the only team in Western Canada and hadn’t see an FRC robot before it would have made none. So allow me to explain a bit…
The driver inputs… joysticks, gamepads, buttons, switches, custom-built scale models of a robot’s arm that can be moved into the desired position by the operator… pretty much anything that you can think of that might be used by a human being wanting to control a robot… will be hooked up to the driver station.
The driver station will encode the raw values of the driver inputs and send it to the robot. It will also send it to the laptop, where a “dashboard” program, either supplied by FIRST or designed by your team members, will display the data for your drive team to see.
The raw values of the inputs that are sent to the robot will be interpreted by the program you run on the robot. Working in conjunction with sensors on the robot this will allow you to control the machine. For instance in a simple application you might get press a button on the driver station that is intended to tell the robot to lift it’s arm (you control the function of this button in software, of course). This will change the vale of a bit from one to zero. The driver station will send that bit as part of a control packet to the robot. The robot might then look at limit switches on the robot to see if the arm had reached the safe limits of its travel. If it had not, then the cRio would signal a relay to activate the motor. Your software that you have written for the cRio will determine which relay and which direction is activated.
In a more complex application you might have a variable resistor hooked up to an analog port on the driver station, and the driver might twist the resistor to indicate the position you wish the arm to be in. The driver station would digitize the position of the resistor send this value to the cRio. You would have a resistor hooked up to the arm of your robot so that as the arm rotated the value of the resistor would change. Your software running on the cRio would read the value of the resistor on the robot, compare it to the value of the resistor being sent from the driver station, and send a numeric value to a speed controller to change the duty cycle of the PWM signal being output from the speed controller to the motor, thus affecting the voltage applied to the motor and making the arm (hopefully!) go to the desired position.
In both cases you can program the cRio (using the laptop and either Labview or the other supported programming languages) to send data from the robot back to the laptop for display. This comes in very helpful for debugging why your robot isn’t doing what you want it to, (maybe one resistor is hooked up backwards, or a switch is attached to the wrong digital input port) but also for your drivers during a competition. For instance this year we used a pneumatic system to shoot the ball over the overpass, but couldn’t shoot until we had enough pressure in the system. So we put a pressure sensor on our pneumatic system, digitized that value, sent it back from the robot and displayed it as a graph on our laptop in real time. The laptop could also plot pressure over time so we could monitor the recovery rate of our system from match to match… a quick way to check for air leaks.
My apologies if this was an overly pedantic description of the robot control system, but it was stuff that I didn’t really “get” until a couple weeks into my first build season.
Welcome to FRC… it’s great to have another whole country on board. You’ve come to a really, really good place.
Jason
P.S. I should also add that when you ask “will we be able to control the robot from a laptop”, or pretty much any technical question, there are always two answers… the technical answer and the “FRC legal” answer. The FRC legal answer is that, NO, you definitely will not be able to control the robot directly from a laptop. This is to make sure that all inputs are channelled through the driver station, and are thus subject to FRC’s safety overrides and field control system. The technical answer is that when you are sitting at home in the off-season you may very well come up with a way to run the robot directly from a laptop… so it is possible to get an answer that is both yes “you can do it at home” and no “you can’t do it at a competition”.