64 Eigen::Vector3d
sf_los{Eigen::Vector3d::Zero()};
108 void update(
float dt_s,
bool hold,
double max_thrust_rate_los_x,
const Eigen::Vector3d& los,
109 const Eigen::Vector3d& acc_sp_enu,
const Eigen::Quaterniond& attitude_enu,
110 const Eigen::Vector3d& specific_force_flu);
118 std::shared_ptr<LosSpecificForceControllerImpl> _impl;
Implementation details for the LosSpecificForceController class.
Line-of-Sight (LOS) attitude controller for multicopters.
Definition los_specific_force_controller.hpp:28
LosSpecificForceController(const Parameters ¶meters)
Constructs a LosSpecificForceController with the given parameters.
const State & state() const
Returns a const reference to the current controller state.
void setParameters(const Parameters ¶meters)
Updates the controller parameters.
void update(float dt_s, bool hold, double max_thrust_rate_los_x, const Eigen::Vector3d &los, const Eigen::Vector3d &acc_sp_enu, const Eigen::Quaterniond &attitude_enu, const Eigen::Vector3d &specific_force_flu)
Runs one update step of the LOS controller.
Definition los_specific_force_controller.hpp:30
double hover_thrust_normalized
Definition los_specific_force_controller.hpp:48
double cam_pitch
Camera pitch angle relative to the drone body, positive up [deg].
Definition los_specific_force_controller.hpp:45
double sf_i
Integral gain of the specific-force controller.
Definition los_specific_force_controller.hpp:34
double att_lpf_tc
Time constant of the attitude setpoint low-pass filter [s]. Set to 0 to disable.
Definition los_specific_force_controller.hpp:36
double cam_vfov
Definition los_specific_force_controller.hpp:43
double sf_p
Proportional gain of the specific-force controller.
Definition los_specific_force_controller.hpp:32
double roll_limit_deg
Maximum roll angle [deg]. Set to 180 to disable.
Definition los_specific_force_controller.hpp:38
double roll_max_rate_deg_per_s
Maximum roll rate in body frame [deg/s]. Set to 0 to disable.
Definition los_specific_force_controller.hpp:52
double pitch_limit_deg
Maximum pitch angle [deg]. Set to 90 to disable.
Definition los_specific_force_controller.hpp:40
double tilt_max_rate_deg_per_s
Maximum tilt rate [deg/s]. Limits how fast the thrust vector can tilt.
Definition los_specific_force_controller.hpp:50
Definition los_specific_force_controller.hpp:55
Eigen::Vector3d sf_los_prev
Previous measured specific force in LOS frame. Used internally by the velocity-form PID.
Definition los_specific_force_controller.hpp:80
double thrust_command_normalized
Normalized thrust command in [0, 1].
Definition los_specific_force_controller.hpp:74
Eigen::Vector3d sf_los_error_prev
Previous specific force error in LOS frame. Used internally by the velocity-form PID.
Definition los_specific_force_controller.hpp:78
double desired_thrust_rate_los_x
Thrust rate being applied along the LOS x-axis [normalized/s].
Definition los_specific_force_controller.hpp:70
Eigen::Vector3d thrust_sp_enu
Thrust setpoint in ENU frame [normalized].
Definition los_specific_force_controller.hpp:66
Eigen::Matrix3d los_to_enu
Rotation matrix from LOS frame to ENU frame.
Definition los_specific_force_controller.hpp:57
Eigen::Vector3d sf_sp_los
Definition los_specific_force_controller.hpp:62
double thrust_command_abs
Absolute thrust command [normalized, unbounded before hover thrust scaling].
Definition los_specific_force_controller.hpp:76
bool initialized
False until the first call to update(), after which the controller is fully initialized.
Definition los_specific_force_controller.hpp:82
Eigen::Vector3d sf_sp_enu
Specific force setpoint in ENU frame [m/s²].
Definition los_specific_force_controller.hpp:59
Eigen::Vector3d sf_los
Measured specific force in LOS frame [m/s²]. X component is always 0.
Definition los_specific_force_controller.hpp:64
Eigen::Vector3d thrust_sp_los
Thrust setpoint in LOS frame [normalized].
Definition los_specific_force_controller.hpp:68
Eigen::Quaterniond attitude_sp_enu
Attitude setpoint in ENU frame (after filtering and limiting).
Definition los_specific_force_controller.hpp:72