Thunderbots Project
Loading...
Searching...
No Matches
robot_filter.h
1#pragma once
2
3#include <optional>
4#include <vector>
5
6#include "software/geom/angle.h"
7#include "software/geom/point.h"
8#include "software/sensor_fusion/filter/vision_detection.h"
9#include "software/time/timestamp.h"
10#include "software/world/robot.h"
11
15typedef struct FilteredRobotData_t
16{
17 unsigned int id;
18 Point position;
19 Vector velocity;
20 Angle orientation;
21 AngularVelocity angular_velocity;
22 Timestamp timestamp;
24
26{
27 public:
35 explicit RobotFilter(Robot current_robot_state, Duration expiry_buffer_duration);
36 explicit RobotFilter(RobotDetection current_robot_state,
37 Duration expiry_buffer_duration);
38
49 std::optional<Robot> getFilteredData(
50 const std::vector<RobotDetection>& new_robot_data);
51
57 unsigned int getRobotId() const;
58
59 private:
60 Robot current_robot_state;
61 Duration expiry_buffer_duration;
62};
Definition angle.h:15
Definition duration.h:12
Definition point.h:14
Definition robot_filter.h:26
unsigned int getRobotId() const
Definition robot_filter.cpp:101
std::optional< Robot > getFilteredData(const std::vector< RobotDetection > &new_robot_data)
Definition robot_filter.cpp:18
Definition robot.h:16
Definition timestamp.h:21
Definition vector.h:12
Definition robot_filter.h:16
Definition vision_detection.h:14