|
libstp
Robotics library for Botball
|
#include <motor_adapter.hpp>
Public Member Functions | |
| MotorAdapter (hal::motor::IMotor *motor) | |
| void | setVelocity (double w_ref, double dt, bool *out_saturated=nullptr) |
| double | getVelocity () const |
| void | brake () |
| void | resetEncoderTracking () |
| Reset encoder position tracking to prevent stale deltas. | |
| hal::motor::IMotor & | motor () |
| const hal::motor::IMotor & | motor () const |
| void | updateEncoderVelocity (double dt) |
Adapter from IMotor to drive-module velocity conventions.
The adapter translates wheel angular velocity targets into the firmware's BEMF units and maintains a filtered encoder-based velocity estimate for higher-level kinematics.
Definition at line 13 of file motor_adapter.hpp.
|
explicit |
| motor | Non-owning pointer to the wrapped motor interface. |
| void libstp::drive::MotorAdapter::brake | ( | ) |
Command an immediate motor brake.
|
nodiscard |
Return the low-pass filtered encoder velocity estimate in rad/s.
| hal::motor::IMotor & libstp::drive::MotorAdapter::motor | ( | ) |
Access the wrapped motor interface.
|
nodiscard |
| void libstp::drive::MotorAdapter::resetEncoderTracking | ( | ) |
Reset encoder position tracking to prevent stale deltas.
Call this after resetting odometry or position counters so the next update doesn't compute a velocity from a pre-reset baseline.
| void libstp::drive::MotorAdapter::setVelocity | ( | double | w_ref, |
| double | dt, | ||
| bool * | out_saturated = nullptr ) |
Send a wheel angular velocity target in rad/s.
| w_ref | Desired wheel speed in rad/s. |
| dt | Control-loop time step used to refresh encoder velocity. |
| out_saturated | Optional saturation flag. The current adapter never reports saturation and always writes false. |
| void libstp::drive::MotorAdapter::updateEncoderVelocity | ( | double | dt | ) |
Refresh the filtered encoder-velocity estimate from the latest position delta.