Valkyrie 2026
Loading...
Searching...
No Matches
GamePieceSensor.h
1#pragma once
2
3#include <frc/estimator/SwerveDrivePoseEstimator.h>
4#include <frc/geometry/Pose3d.h>
5#include <units/length.h>
6#include <wpi/sendable/SendableBuilder.h>
7
8#include "valkyrie/cameras/Limelight.h"
9#include "valkyrie/sensors/BaseSensor.h"
10
11namespace valor {
12namespace sensors {
13
14class GamePieceSensor : public BaseSensor<std::optional<frc::Pose3d>> {
15 public:
16 explicit GamePieceSensor(std::shared_ptr<cameras::Limelight> camera);
17
18 void UpdateRelativeToCenter();
19
20 private:
21 struct RelativePose2d {
22 units::meter_t x{0_m};
23 units::meter_t y{0_m};
24 };
25
26 std::shared_ptr<cameras::Limelight> cam;
27
28 std::optional<frc::Pose3d> GetGlobalPose();
29
30 RelativePose2d relativePoseFromCenter;
31 RelativePose2d relativePoseFromCamera;
32};
33
34} // namespace sensors
35} // namespace valor
Abstract class that all Valor sensors should implement.
Definition BaseSensor.h:52