libstp
Robotics library for Botball
Loading...
Searching...
No Matches
libstp::drive::MotorAdapter Class Reference

#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)

Detailed Description

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.

Constructor & Destructor Documentation

◆ MotorAdapter()

libstp::drive::MotorAdapter::MotorAdapter ( hal::motor::IMotor * motor)
explicit
Parameters
motorNon-owning pointer to the wrapped motor interface.

Member Function Documentation

◆ brake()

void libstp::drive::MotorAdapter::brake ( )

Command an immediate motor brake.

◆ getVelocity()

double libstp::drive::MotorAdapter::getVelocity ( ) const
nodiscard

Return the low-pass filtered encoder velocity estimate in rad/s.

◆ motor() [1/2]

hal::motor::IMotor & libstp::drive::MotorAdapter::motor ( )

Access the wrapped motor interface.

◆ motor() [2/2]

const hal::motor::IMotor & libstp::drive::MotorAdapter::motor ( ) const
nodiscard

◆ resetEncoderTracking()

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.

◆ setVelocity()

void libstp::drive::MotorAdapter::setVelocity ( double w_ref,
double dt,
bool * out_saturated = nullptr )

Send a wheel angular velocity target in rad/s.

Parameters
w_refDesired wheel speed in rad/s.
dtControl-loop time step used to refresh encoder velocity.
out_saturatedOptional saturation flag. The current adapter never reports saturation and always writes false.

◆ updateEncoderVelocity()

void libstp::drive::MotorAdapter::updateEncoderVelocity ( double dt)

Refresh the filtered encoder-velocity estimate from the latest position delta.


The documentation for this class was generated from the following file:
  • /home/runner/work/raccoon-lib/raccoon-lib/modules/libstp-drive/include/drive/motor_adapter.hpp