LightLib
PROS library for VEX V5: EKF/MCL localization, RAMSETE path following, high-level chassis API
Loading...
Searching...
No Matches
velMath.hpp
Go to the documentation of this file.
1/*
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 */
6#pragma once
7
14#include <memory>
15
16namespace okapi {
17class VelMath {
18 public:
28 VelMath(double iticksPerRev,
29 std::unique_ptr<Filter> ifilter,
30 QTime isampleTime,
31 std::unique_ptr<AbstractTimer> iloopDtTimer,
32 std::shared_ptr<Logger> ilogger = Logger::getDefaultLogger());
33
34 virtual ~VelMath();
35
42 virtual QAngularSpeed step(double inewPos);
43
50 virtual void setTicksPerRev(double iTPR);
51
55 virtual QAngularSpeed getVelocity() const;
56
60 virtual QAngularAcceleration getAccel() const;
61
62 protected:
63 std::shared_ptr<Logger> logger;
64 QAngularSpeed vel{0_rpm};
65 QAngularSpeed lastVel{0_rpm};
66 QAngularAcceleration accel{0.0};
67 double lastPos{0};
69
71 std::unique_ptr<AbstractTimer> loopDtTimer;
72 std::unique_ptr<Filter> filter;
73};
74} // namespace okapi
static std::shared_ptr< Logger > getDefaultLogger()
QTime sampleTime
Definition velMath.hpp:70
QAngularSpeed lastVel
Definition velMath.hpp:65
std::unique_ptr< AbstractTimer > loopDtTimer
Definition velMath.hpp:71
virtual QAngularSpeed getVelocity() const
virtual QAngularAcceleration getAccel() const
virtual void setTicksPerRev(double iTPR)
Sets ticks per revolution (or whatever units you are using).
double lastPos
Definition velMath.hpp:67
virtual ~VelMath()
std::shared_ptr< Logger > logger
Definition velMath.hpp:63
std::unique_ptr< Filter > filter
Definition velMath.hpp:72
QAngularAcceleration accel
Definition velMath.hpp:66
double ticksPerRev
Definition velMath.hpp:68
VelMath(double iticksPerRev, std::unique_ptr< Filter > ifilter, QTime isampleTime, std::unique_ptr< AbstractTimer > iloopDtTimer, std::shared_ptr< Logger > ilogger=Logger::getDefaultLogger())
Velocity math helper.
QAngularSpeed vel
Definition velMath.hpp:64
virtual QAngularSpeed step(double inewPos)
Calculates the current velocity and acceleration.