7 #ifndef HPM_MCL_HYBRID_CTRL_H
8 #define HPM_MCL_HYBRID_CTRL_H
static void mcl_hybrid_ctrl_set_trajectory(mcl_hybrid_ctrl_cfg_t *cfg, float q_des, float dq_des)
Set desired trajectory.
Definition: hpm_mcl_hybrid_ctrl.h:195
static void mcl_hybrid_ctrl_set_params(mcl_hybrid_ctrl_cfg_t *cfg, float kp, float kd, float tau_ff)
Set all parameters at once.
Definition: hpm_mcl_hybrid_ctrl.h:181
static void mcl_hybrid_ctrl_set_tau_ff(mcl_hybrid_ctrl_cfg_t *cfg, float tau_ff)
Set feedforward torque.
Definition: hpm_mcl_hybrid_ctrl.h:118
static float mcl_hybrid_ctrl_get_torque(const mcl_hybrid_ctrl_state_t *state)
Get output torque.
Definition: hpm_mcl_hybrid_ctrl.h:207
static void mcl_hybrid_ctrl_set_limits(mcl_hybrid_ctrl_cfg_t *cfg, float tau_min, float tau_max)
Set output torque limits.
Definition: hpm_mcl_hybrid_ctrl.h:153
static void mcl_hybrid_ctrl_set_kp(mcl_hybrid_ctrl_cfg_t *cfg, float kp)
Set position stiffness gain.
Definition: hpm_mcl_hybrid_ctrl.h:95
static void mcl_hybrid_ctrl_set_kd(mcl_hybrid_ctrl_cfg_t *cfg, float kd)
Set damping gain.
Definition: hpm_mcl_hybrid_ctrl.h:106
static void mcl_hybrid_ctrl_set_position(mcl_hybrid_ctrl_cfg_t *cfg, float q_des)
Set desired position.
Definition: hpm_mcl_hybrid_ctrl.h:129
static float mcl_hybrid_ctrl_get_pos_error(const mcl_hybrid_ctrl_state_t *state)
Get position error.
Definition: hpm_mcl_hybrid_ctrl.h:218
void mcl_hybrid_ctrl_init(mcl_hybrid_ctrl_cfg_t *cfg)
Initialize hybrid control parameters with default values.
Definition: hpm_mcl_hybrid_ctrl.c:13
static void mcl_hybrid_ctrl_set_speed_filter(mcl_hybrid_ctrl_cfg_t *cfg, float lpf_alpha, float deadzone)
Set speed filter parameters.
Definition: hpm_mcl_hybrid_ctrl.h:167
static void mcl_hybrid_ctrl_set_velocity(mcl_hybrid_ctrl_cfg_t *cfg, float dq_des)
Set desired velocity.
Definition: hpm_mcl_hybrid_ctrl.h:141
void mcl_hybrid_ctrl_step(const mcl_hybrid_ctrl_cfg_t *cfg, mcl_hybrid_ctrl_state_t *state)
Execute one step of hybrid control.
Definition: hpm_mcl_hybrid_ctrl.c:44
static float mcl_hybrid_ctrl_get_vel_error(const mcl_hybrid_ctrl_state_t *state)
Get velocity error.
Definition: hpm_mcl_hybrid_ctrl.h:229
Hybrid Force-Position Control Library.
Definition: hpm_mcl_hybrid_ctrl.h:32
float speed_deadzone
Definition: hpm_mcl_hybrid_ctrl.h:41
float speed_lpf_alpha
Definition: hpm_mcl_hybrid_ctrl.h:40
float tau_min
Definition: hpm_mcl_hybrid_ctrl.h:39
float kp
Definition: hpm_mcl_hybrid_ctrl.h:33
float dq_des
Definition: hpm_mcl_hybrid_ctrl.h:37
float tau_ff
Definition: hpm_mcl_hybrid_ctrl.h:35
float tau_max
Definition: hpm_mcl_hybrid_ctrl.h:38
float kd
Definition: hpm_mcl_hybrid_ctrl.h:34
float q_des
Definition: hpm_mcl_hybrid_ctrl.h:36
Hybrid control state/output structure.
Definition: hpm_mcl_hybrid_ctrl.h:47
float vel_error
Definition: hpm_mcl_hybrid_ctrl.h:52
float tau_output
Definition: hpm_mcl_hybrid_ctrl.h:50
float speed_lpf
Definition: hpm_mcl_hybrid_ctrl.h:53
float dq_actual
Definition: hpm_mcl_hybrid_ctrl.h:49
float pos_error
Definition: hpm_mcl_hybrid_ctrl.h:51
float q_actual
Definition: hpm_mcl_hybrid_ctrl.h:48