File pd_control.hpp¶
- Copyright
Copyright (c) 2018-2020, New York University and Max Planck Gesellschaft, License BSD-3-Clause
-
namespace blmc_drivers
This namespace is the standard namespace of the package.
Typedefs
-
typedef std::shared_ptr<blmc_drivers::AnalogSensor> Slider_ptr¶
This is a simple shortcut.
-
typedef std::pair<SafeMotor_ptr, Slider_ptr> PairMotorSlider¶
This is a simple shortcut.
-
class PDController
- #include <pd_control.hpp>
This is a basic PD controller to be used in the demos of this package.
Public Functions
-
inline PDController(std::vector<PairMotorSlider> motor_slider_pairs)
Construct a new PDController object.
- Parameters:
motor_slider_pairs –
-
inline ~PDController()
Destroy the PDController object.
-
inline void start_loop()
This method is a helper to start the thread loop.
Private Functions
-
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::vector<PairMotorSlider> motor_slider_pairs_¶
This is a pair of motor and sliders so that we associate one with the other.
-
real_time_tools::RealTimeThread rt_thread_¶
This is the real time thread object.
-
bool stop_loop¶
managing the stopping of the loop
Private 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.
-
inline PDController(std::vector<PairMotorSlider> motor_slider_pairs)
-
typedef std::shared_ptr<blmc_drivers::AnalogSensor> Slider_ptr¶