Skip to content
Sensors · 3 of 314 minintermediate

Cameras and vision

Which cameras are legal, how to connect and mount them so they survive a match, what AprilTags give you in the FTC SDK, and where the Limelight 3A fits.

By the end you can

  • Choose a legal camera and connect it to the right Control Hub port
  • Explain what an AprilTag detection reports and why camera mounting and calibration matter
  • Describe what a Limelight 3A adds compared with a plain webcam
On this page · 7 sections

A camera is the only sensor that can recognise things: a specific AprilTag on the field wall, the colour of a game piece, where that game piece sits. This lesson covers the electrical and mounting side. The programming track's Limelight unit covers the code.

Overview of the FTC VisionPortal· Westside RoboticsWatch on YouTube

The Competition Manual only allows a short list of devices on the robot's USB ports. In the 2026–27 manual (rules R707 and R708) that means:

  • UVC-compatible USB webcams with a single image sensor — the manual gives the Logitech C270 as an example. Stereo (two-lens) cameras are not allowed.
  • Vision coprocessors the SDK supports. The Limelight 3A is the one the manual lists as programmable.
  • USB hubs, and the Expansion Hub if you connect it over USB.

Nothing else goes on USB: no USB LEDs, no USB fans. These rules are season-specific, so check the current Competition Manual before you buy a camera.

Connecting a camera

The Control Hub has two USB-A ports: one USB 2.0 and one USB 3.0 (the blue one).

Use the blue USB 3.0 port

REV and FIRST both say to plug cameras into the Control Hub's USB 3.0 port. REV reports that a device on the USB 2.0 port can let static discharge disrupt the Control Hub's Wi-Fi chip — which shows up as a robot that disconnects mid-match for no obvious reason. Limelight's own setup guide also specifies the USB 3.0 port.

More practical points:

  • Two cameras is a sensible limit on the hub's own USB. FIRST's Robot Best Practices recommends powering at most two cameras directly from USB and using a powered USB hub beyond that. A powered USB hub may only be powered from an approved USB battery pack or the hub's +5V port.
  • Strain-relieve the USB cable. USB plugs work loose with vibration. Tie the cable down near the plug, use a right-angle plug if it keeps the run tidy, and consider REV's USB retention mount.
  • Add a ferrite choke to the USB cable. FIRST's ESD guidance recommends chokes on USB, sensor, encoder and servo cables.
  • Mount the camera rigidly. If the camera can shift even a few degrees, every distance and angle it reports shifts with it.

AprilTags in the FTC SDK

AprilTag
A square black-and-white marker, like a very simple QR code, that encodes an ID number. FTC uses the 36h11 tag family. Because the tag's real size is known, the camera can work out where the tag is relative to the camera, not just that it is there.

Since SDK 8.2, AprilTag detection is built into the FTC SDK through VisionPortal, for both Blocks and Java. For each tag it sees, a detection reports:

  • the tag's ID,
  • its range (distance) and bearing (angle left or right) from the camera, and
  • its full pose: X, Y and Z distances plus pitch, roll and yaw.

Pose needs calibration and a known camera position

Pose maths uses calibration data for your exact camera and resolution. The SDK includes calibration for a limited number of webcams and resolutions; for anything else you generate your own. And to turn "where the tag is relative to the camera" into "where the robot is", your code also needs to know exactly where the camera sits on the robot — another reason it must be rigidly mounted and measured.

The Limelight 3A

The Limelight 3A is a camera with its own computer inside. Instead of sending raw video to the Control Hub, it runs vision pipelines itself — colour detection, AprilTag localisation and neural networks — and sends results. From Limelight's documentation:

SpecLimelight 3A
ConnectionUSB-C on the camera, to the Control Hub's USB 3.0 port
PowerOver USB, 4.1–5.75V, up to 4W
Camera640 × 480 at 90 frames per second
Field of view54.5° horizontal, 42° vertical
LightingNo built-in LEDs

You configure its pipelines through a web interface before the match, then the robot code reads results. The manual allows teams to reprogram the Limelight 3A specifically; other programmable vision computers (the manual names the Limelight 3G among them) are not allowed. For setup and code, go to the programming track's Getting Started with Limelight.

Video and Wi-Fi during matches

Streaming a camera feed to a laptop or phone is handy in the shop, but during a match the manual (rule R704 in 2026–27) only allows control data, debugging data and telemetry through the Driver Station app — no continuous video stream, and no third-party dashboards. Turn debugging streams off before you queue for a match.

Check yourself

Your robot works in the shop but randomly disconnects on the competition field. The webcam is plugged into the Control Hub's black USB 2.0 port. What is the first change to make?

Check yourself

Your AprilTag code reports the tag 20 cm further away than it really is, and the error changes after every match. What is the most likely cause?

Next

That completes the sensors unit. The last unit is about keeping all of this working: connectors, static, disconnects, troubleshooting, and passing inspection.

Sources and further reading

Finished this lesson?

Mark it complete to track your progress.