Quickstart
Install HiveVision and read your first detections.
Install
Section titled “Install”dependencies { implementation 'io.github.sidhuharjas:core:1.0.0' implementation 'io.github.sidhuharjas:weaver:1.0.0' implementation 'com.skeletonarmyftc.marrow:core:1.2.2' implementation 'com.pedropathing:core:3.0.1'}Both artifacts are on Maven Central, so mavenCentral() in repositories is enough. Marrow is compiled into weaver but not published with it. Declare it yourself.
Building from this repository instead:
./gradlew assembleReleaseCopy core/build/outputs/aar/core-release.aar and weaver/build/outputs/aar/weaver-release.aar into TeamCode/libs/.
Construct
Section titled “Construct”Limelight3A limelight = hardwareMap.get(Limelight3A.class, "limelight");limelight.pipelineSwitch(0);limelight.start();
HiveVision vision = new HiveVision(limelight, new VisionConfig() .cameraHeightIn(12.5) .cameraPitchDeg(-24) .targetHeightIn(3.5));Those three numbers are placeholders. See Calibration.
for (Detection d : vision.fetchDetections(follower.pose())) { telemetry.addData("target", "%.1f, %.1f", d.getX(), d.getY());}- Field inches, nearest first.
- Empty when the robot pose is stale, confidence is low, or the class is filtered out.
limelightPipelineandlimelightPollingRateHzapply at construction only.
Filter
Section titled “Filter”vision.setAllowedClasses(BiobuzzClasses.POLLEN);PathResult path = WeaverRoute.from(follower.pose()) .avoid(new CircleZone(new Point(72, 72), 18)) .maxTargets(4) .plan(vision.fetchDetections(follower.pose()));
if (path != null) follower.follow(PedroPathingConverter.toPath(path));plan returns null when there are no detections. Catch Weaver’s exceptions and fall back to a plain path.
Complete OpModes, including the Pedro follower setup: see Examples.