File sine_position_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.
-
class SinePositionControl
- #include <sine_position_control.hpp>
This is a basic PD controller to be used in the demos of this package.
Public Functions
-
inline SinePositionControl(std::vector<SafeMotor_ptr> motor_list)
Construct a new SinePositionControl object.
- Parameters:
motor_slider_pairs –
-
inline ~SinePositionControl()
Destroy the SinePositionControl object.
-
inline void start_loop()
This method is a helper to start the thread loop.
-
void stop_loop()
Stop the control and dump the data.
-
inline void set_gains(double kp, double kd)
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<SafeMotor_ptr> motor_list_¶
This is list of motors.
-
real_time_tools::RealTimeThread rt_thread_¶
This is the real time thread object.
-
bool stop_loop_¶
managing the stopping of the loop
-
unsigned memory_buffer_size_¶
memory_buffer_size_ is the max size of the memory buffer.
-
std::vector<std::deque<double>> encoders_¶
Encoder data.
-
std::vector<std::deque<double>> velocities_¶
Velocity data.
-
std::vector<std::deque<double>> currents_¶
current data
-
std::vector<std::deque<double>> control_buffer_¶
control_buffer_
-
double kp_¶
Controller proportional gain.
-
double kd_¶
Controller derivative gain.
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 SinePositionControl(std::vector<SafeMotor_ptr> motor_list)
-
class SinePositionControl