- FRC Game Manual
- FRC Game Q&A

# Sensor Overview - Hardware

Note

This section covers sensor hardware, not the use of sensors in code. For a software sensor guide, see Sensor Overview - Software.

In order to be effective, it is often vital for robots to be able to gather information about their surroundings. Devices that provide feedback to the robot on the state of its environment are called “sensors.” There are a large variety of sensors available to FRC® teams, for measuring everything from on-field positioning to robot orientation to motor/mechanism positioning. Making use of sensors is an absolutely crucial skill for on-field success; while most FRC games do have tasks that can be accomplished by a “blind” robot, the best robots rely heavily on sensors to accomplish game tasks as quickly and reliably as possible.

Additionally, sensors can be extremely important for robot safety - many robot mechanisms are capable of breaking themselves if used incorrectly. Sensors provide a safeguard against this, allowing robots to, for example, disable a motor if a mechanism is against a hard-stop.

## Types of Sensors

Sensors used in FRC can be generally categorized in two different ways: by function, and by communication protocol. The former categorization is relevant for robot design; the latter for wiring and programming.

### Sensors by Function

Sensors can provide feedback on a variety of different aspects of the robot’s state. Sensor functions common to FRC include:

- Proximity switches

    - Mechanical proximity switches (“limit switches”)

    - Magnetic proximity switches

    - Inductive proximity switches

    - Photoelectric proximity switches

- Distance sensors

    - Ultrasonic sensors

    - Triangulating rangefinders

    - LIDAR

- Shaft rotation sensors

    - Encoders

    - Potentiometers

- Accelerometers

- Gyroscopes

### Sensors by Communication Protocol

In order for a sensor to be useful, it must be able to “talk” to the roboRIO. There are several main methods by which sensors can communicate their readings to the roboRIO:

- Analog input

- Digital input

- Serial bus

In general, support for sensors that communicate via analog and digital inputs is straightforward, while communication over serial bus can be more complicated.