Valor 6800 1.0
Loading...
Searching...
No Matches
GamePieceSensor.h
1
2#pragma once
3
4#include "valkyrie/sensors/VisionSensor.h"
5#include <frc/geometry/Pose3d.h>
6#include <frc/estimator/SwerveDrivePoseEstimator.h>
7#include <wpi/sendable/SendableBuilder.h>
8#include <units/length.h>
9
10namespace valor {
11
13 public:
14 GamePieceSensor(frc::TimedRobot& robot, const char* name, frc::Pose3d cameraPose, frc::SwerveDrivePoseEstimator<4>* estimator);
15
16 frc::Pose3d getGlobalPose();
17 double GetRotationCmdDeg();
18 bool detectedTarget();
19 double getTa();
20
21 void updateRelativeToCenter();
22 void LoggablePeriodic() override;
23
24 private:
25 frc::SwerveDrivePoseEstimator<4>* estimator;
26
27 struct RelativePose2d {
28 units::meter_t x{0_m};
29 units::meter_t y{0_m};
30 };
31
32 RelativePose2d relativePoseFromCenter;
33 RelativePose2d relativePoseFromCamera;
34
35 double rotationCmdDeg = 0.0;
36};
37
38} // namespace valor
Definition GamePieceSensor.h:12
void LoggablePeriodic() override
Periodic callback for logging updates.
frc::Pose3d getGlobalPose()
Get the global pose of the vision sensor.
T ReadLog(std::string_view field, const T &defaultValue={})
Read a value from NetworkTables for the given field.
Definition Loggable.h:343
Base class for vision sensors, such as Limelight.
Definition VisionSensor.h:26
frc::Pose3d cameraPose
Physical 3D position of the camera's lens.
Definition VisionSensor.h:123