Valor 6800 1.0
Loading...
Searching...
No Matches
LidarSensor.h
1
2#pragma once
3
4#include <memory>
5#include <string>
6#include <vector>
7
8#include <frc/TimedRobot.h>
9#include <frc/filter/LinearFilter.h>
10#include <frc/geometry/Pose2d.h>
11#include <units/length.h>
12
13#include "valkyrie/sim/FieldFeature.h"
14#include "valkyrie/sensors/BaseSensor.h"
15
16namespace valor {
17
26class LidarSensor : public BaseSensor<units::millimeter_t> {
27 public:
33 explicit LidarSensor(frc::TimedRobot& robot);
34
40 units::millimeter_t getMaxDistance();
41
47 void setMaxDistance(units::millimeter_t maxDistance);
48
49 void setupSim(std::function<frc::Pose2d()> robotPoseGetter, frc::Transform2d sensorPosition, std::vector<sim::FieldFeature> features);
50
51 void setGetter(std::function<units::millimeter_t()> getter);
52
53 protected:
54 struct SimState {
55 std::function<frc::Pose2d()> robotPoseGetter;
56 frc::Transform2d sensorPosition;
57 std::vector<sim::FieldFeature> fieldFeatures;
58 units::millimeter_t calculatedDistance;
59 };
60
67 void calculate() override;
68
69 LidarSensor() = default;
70
71 std::unique_ptr<SimState> simState;
72
73 private:
74 void simulationLoop();
75
81 units::millimeter_t maxDistance{std::numeric_limits<double>::infinity()};
82};
83} // namespace valor
Abstract class that all Valor sensors should implement.
Definition BaseSensor.h:27
Specific implementation of the Lidar Sensor for Grapple Robotics LidarCAN device.
Definition LidarSensor.h:26
units::millimeter_t getMaxDistance()
Get the maximum distance threshold for the Lidar sensor.
LidarSensor(frc::TimedRobot &robot)
Construct a new LidarSensor object.
void calculate() override
Perform Lidar-specific calculations.
void setMaxDistance(units::millimeter_t maxDistance)
Set the maximum distance threshold for the Lidar sensor.
T ReadLog(std::string_view field, const T &defaultValue={})
Read a value from NetworkTables for the given field.
Definition Loggable.h:343
Definition LidarSensor.h:54
units::millimeter_t calculatedDistance
Distance calculated in simulation.
Definition LidarSensor.h:58