Class LegController

class LegController

Simple PD control on the leg.

Public Functions

inline LegController(std::shared_ptr<blmc_drivers::Leg> leg, std::shared_ptr<blmc_drivers::AnalogSensor> analog_sensor)

Construct a new LegController object.

Parameters
  • leg

  • analog_sensor

inline ~LegController()

Destroy the LegController object.

inline void start_loop()

helper to strat the real time thread.

Public Static Functions

static inline THREAD_FUNCTION_RETURN_TYPE loop(void *instance_pointer)

this function is just a wrapper around the actual loop function, such that it can be spawned as a posix thread.

Private Functions

inline void loop()

this is a simple control loop which runs at a kilohertz.

it reads the measurement from the analog sensor, in this case the slider. then it scales it and sends it as the current target to the motor.

Private Members

std::shared_ptr<blmc_drivers::Leg> leg_

is the leg to control

std::shared_ptr<blmc_drivers::AnalogSensor> analog_sensor_

is the list of sliders

real_time_tools::RealTimeThread rt_thread_

is the real time thread object.

bool stop_loop_

manages the shutdown of the controller