Calico
A visual-inertial calibration library designed for rapid problem construction and debugging.
sensor_base.h
1 #ifndef CALICO_SENSORS_SENSOR_BASE_H_
2 #define CALICO_SENSORS_SENSOR_BASE_H_
3 
4 #include "Eigen/Dense"
5 #include "absl/container/flat_hash_map.h"
6 #include "absl/status/status.h"
7 #include "absl/status/statusor.h"
8 #include "calico/optimization_utils.h"
9 #include "calico/trajectory.h"
10 #include "calico/typedefs.h"
11 #include "calico/world_model.h"
12 #include "ceres/problem.h"
13 
15 namespace calico::sensors {
16 
20 class Sensor {
21  public:
22  virtual ~Sensor() = default;
23 
25 
29  virtual absl::Status UpdateResiduals(ceres::Problem& problem) = 0;
30 
32  virtual void ClearResidualInfo() = 0;
33 
36  double scale = 1.0) = 0;
37 
39 
43  virtual absl::StatusOr<int> AddParametersToProblem(
44  ceres::Problem& problem) = 0;
45 
47 
50  virtual absl::StatusOr<int> AddResidualsToProblem(
51  ceres::Problem& problem, Trajectory& sensorrig_trajectory,
52  WorldModel& world_model) = 0;
53 
55 
67  virtual absl::Status SetMeasurementNoise(double sigma) = 0;
68 };
69 } // namespace calico::sensors
70 
71 #endif // CALICO_SENSORS_SENSOR_BASE_H_
Definition: trajectory.h:25
Definition: world_model.h:73
Definition: sensor_base.h:20
virtual absl::StatusOr< int > AddParametersToProblem(ceres::Problem &problem)=0
Add this sensor's calibration parameters to the ceres problem.
virtual absl::StatusOr< int > AddResidualsToProblem(ceres::Problem &problem, Trajectory &sensorrig_trajectory, WorldModel &world_model)=0
Contribue this sensor's residuals to the ceres problem.
virtual void ClearResidualInfo()=0
Clear all stored info about residuals.
virtual void SetLossFunction(utils::LossFunctionType loss, double scale=1.0)=0
Setter for loss function and scale.
virtual absl::Status UpdateResiduals(ceres::Problem &problem)=0
Update residuals for this sensor.
virtual absl::Status SetMeasurementNoise(double sigma)=0
Set the measurement noise .
Sensors namespace.
Definition: accelerometer.cpp:8
LossFunctionType
Definition: optimization_utils.h:15