- Include necessary libraries:
#include <networktables/NetworkTableInstance.h>
#include <iostream>
#include <cscore_oo.h>
#include <cameraserver/CameraServer.h>
#include <frc/smartdashboard/smartdashboard.h>
- Initialize NetworkTables and Limelight variables:
auto ntinst = nt::NetworkTableInstance::GetDefault();
auto table = ntinst.GetTable("limelight");
cs::UsbCamera camera = frc::CameraServer::GetInstance()->StartAutomaticCapture();
cs::CvSink cvSink = frc::CameraServer::GetInstance()->GetVideo();
cs::CvSource outputStreamStd = frc::CameraServer::GetInstance()->PutVideo("Processed", 320, 240);
cv::Mat source;
- Set camera resolution and framerate:
camera.SetResolution(320, 240);
camera.SetFPS(15);
- Main tracking loop:
while (true) {
if (cvSink.GrabFrame(source) == 0) {
continue;
}
// Your image processing and tracking code here
outputStreamStd.PutFrame(source);
}