19#ifndef TRICYCLE_CONTROLLER__ODOMETRY_HPP_
20#define TRICYCLE_CONTROLLER__ODOMETRY_HPP_
24#include "rclcpp/time.hpp"
25#include "tricycle_controller/rolling_mean_accumulator.hpp"
27namespace tricycle_controller
32 explicit Odometry(
size_t velocity_rolling_window_size = 10);
34 bool update(
double left_vel,
double right_vel,
const rclcpp::Time & time);
35 void updateOpenLoop(
double linear,
double angular,
const rclcpp::Time & time);
38 double getX()
const {
return x_; }
39 double getY()
const {
return y_; }
40 double getHeading()
const {
return heading_; }
41 double getLinear()
const {
return linear_; }
42 double getAngular()
const {
return angular_; }
44 void setWheelParams(
double wheel_separation,
double wheel_radius);
45 void setVelocityRollingWindowSize(
size_t velocity_rolling_window_size);
50 void integrateRungeKutta2(
double linear,
double angular);
51 void integrateExact(
double linear,
double angular);
52 void resetAccumulators();
55 rclcpp::Time timestamp_;
71 size_t velocity_rolling_window_size_;
Definition odometry.hpp:30
void updateOpenLoop(double linear, double angular, const rclcpp::Time &time)
Definition odometry.cpp:62
Simplification of boost::accumulators::accumulator_set<double, bacc::stats<bacc::tag::rolling_mean>> ...
Definition rolling_mean_accumulator.hpp:35