Fixed missing IncrementalEncoder.h
This commit is contained in:
parent
ae62974562
commit
e995d4cec9
51
IncrementalEncoder.h
Normal file
51
IncrementalEncoder.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Passer {
|
||||||
|
namespace RoboidControl {
|
||||||
|
|
||||||
|
/// @brief An Encoder measures the rotations of an axle using a rotary
|
||||||
|
/// sensor Some encoders are able to detect direction, while others can not.
|
||||||
|
class IncrementalEncoder {
|
||||||
|
public:
|
||||||
|
/// @brief Creates a sensor which measures distance from pulses
|
||||||
|
/// @param pulsesPerRevolution The number of pulse edges which make a
|
||||||
|
/// full rotation
|
||||||
|
/// @param distancePerRevolution The distance a wheel travels per full
|
||||||
|
/// rotation
|
||||||
|
IncrementalEncoder(unsigned char pulsesPerRevolution = 1,
|
||||||
|
unsigned char distancePerRevolution = 1);
|
||||||
|
|
||||||
|
/// @brief Get the total number of pulses since the previous call
|
||||||
|
/// @return The number of pulses, is zero or greater
|
||||||
|
virtual int GetPulseCount();
|
||||||
|
/// @brief Get the pulse speed since the previous call
|
||||||
|
/// @param currentTimeMs The clock time in milliseconds
|
||||||
|
/// @return The average pulses per second in the last period.
|
||||||
|
virtual float GetPulsesPerSecond(float currentTimeMs);
|
||||||
|
|
||||||
|
/// @brief Get the distance traveled since the previous call
|
||||||
|
/// @return The distance in meters.
|
||||||
|
virtual float GetDistance();
|
||||||
|
|
||||||
|
/// @brief Get the rotation speed since the previous call
|
||||||
|
/// @param currentTimeMs The clock time in milliseconds
|
||||||
|
/// @return The speed in rotations per second
|
||||||
|
virtual float GetRevolutionsPerSecond(float currentTimeMs);
|
||||||
|
|
||||||
|
/// @brief Get the speed since the previous call
|
||||||
|
/// @param currentTimeMs The clock time in milliseconds
|
||||||
|
/// @return The speed in meters per second.
|
||||||
|
/// @note this value is dependent on the accurate setting of the
|
||||||
|
/// pulsesPerRevolution and distancePerRevolution parameters;
|
||||||
|
virtual float GetSpeed(float currentTimeMs);
|
||||||
|
|
||||||
|
/// @brief The numer of pulses corresponding to a full rotation of the axle
|
||||||
|
unsigned char pulsesPerRevolution = 1;
|
||||||
|
/// @brief The number of revolutions which makes the wheel move forward 1
|
||||||
|
/// meter
|
||||||
|
unsigned char distancePerRevolution = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace RoboidControl
|
||||||
|
} // namespace Passer
|
||||||
|
using namespace Passer::RoboidControl;
|
Loading…
x
Reference in New Issue
Block a user