Robotics components
It's time to dive deeper into the hardware components commonly found on an FRC robot. Each component plays a vital role in the operation and control of the robot. Understanding these components, their functionality, and their interaction with the software is crucial for successful robot operation.
RoboRIO
RoboRIO is the brain of an FRC robot. It is a robust, high-performance embedded platform that runs your robot code and directly interfaces with robot peripherals. It is equipped with a variety of inputs and outputs, including digital I/O for sensors and switches, PWM outputs for motor controllers, analog inputs for advanced sensors, CAN Bus and more.
Power Distribution Panel (PDP)
The PDP distributes power from the robot's battery to its various components. It provides overcurrent protection to prevent damage to the robot's electrical components. The PDP can also monitor the current draw of each circuit and provide this data to the RoboRIO, allowing teams to diagnose electrical issues or optimize power usage.
Pneumatic Control Module (PCM)
The PCM provides control over the robot's pneumatic components. It handles the electrical control of the compressor and solenoids. The PCM communicates with the RoboRIO over the CAN bus, allowing the robot code to activate solenoids or monitor pressure switches.
CAN Bus
The CAN (Controller Area Network) bus is a communication protocol that allows various devices on the robot to exchange data in a highly robust and organized manner. Originating from the RoboRIO, the main controller, the CAN bus follows a daisy-chain structure, where each device is linked to the next. This structure greatly simplifies wiring and allows for more efficient organization within the robot.
Each device connected to the CAN bus has a unique ID which ensures that data is directed to the right component. When a message is sent over the bus, it includes this ID, so that only the intended recipient acts upon the message. This not only streamlines communication but also allows for complex operations as multiple devices can interact and share data seamlessly, enabling more sophisticated and responsive control systems.
Radio
The radio on an FRC robot provides wireless communication between the robot and the driver station. This allows the robot to be controlled remotely during matches. The radio also connects to the field management system during competitions to enable match control and scoring.
Motor Controllers (e.g., SparkMax)
Motor controllers drive the motors of the robot based on commands from the RoboRIO. Different motor controllers have different features, but most provide advanced controls like speed control, current limiting, and encoder feedback. The SparkMax motor controller is a commonly used controller that can drive brushless motors, which provide better efficiency and performance than brushed motors.
Limit Switches
Limit switches are simple devices that tell the robot when it has reached a physical limit. When something makes contact with the switch, it closes an electrical circuit that the robot can detect. They are commonly used to prevent a robot from moving too far in one direction.
Encoders and Hall Sensors
Encoders and Hall sensors are used to measure rotation. Encoders are often attached to motors or wheels and output pulses as they rotate. Hall sensors are a type of encoder that use magnets and are often built into motors. The robot can count these pulses to know how much the motor or wheel has rotated.
Gyroscopes
Gyroscopes measure the robot's rotation about an axis. This can be used for balancing the robot, driving straight, or turning to a specific angle.
Cameras and Limelight
Cameras can provide a live video feed to the driver station or be used for computer vision tasks on the robot. The Limelight is a popular vision camera for FRC that has built-in processing for finding reflective vision targets.
Driver Station
The Driver Station is a piece of software running on a laptop or other computer. It communicates with the robot via the radio, sending control inputs from the drivers and receiving data back from the robot.