22 #include <Eigen/Dense>
106 Eigen::Vector3f prev_filter_vel_;
107 Eigen::Vector3f prev_filter_omega_;
108 int prev_mode_cmd_[5];
109 Eigen::Vector3f prev_position_;
110 Eigen::Quaternionf prev_att_;
111 Eigen::Vector3f linear_integrator_;
112 Eigen::Vector3f rotational_integrator_;
114 bool FilterThreshold(Eigen::Vector3f vec,
float threshhold, Eigen::Vector3f & previous);
115 float ButterWorthFilter(
float input,
float delay_val,
float* sum_out);
116 float QuatError(Eigen::Quaternionf cmd, Eigen::Quaternionf actual);
118 Eigen::Vector3f SafeDivide(
const Eigen::Vector3f & num,
const Eigen::Vector3f & denom);
120 Eigen::Vector3f DiscreteTimeIntegrator(
const Eigen::Vector3f input, Eigen::Vector3f & accumulator,
121 uint8_t ctl_status,
float upper_limit,
float lower_limit);
123 Eigen::Vector3f RotateVectorAtoB(Eigen::Vector3f, Eigen::Quaternionf);
124 Eigen::Vector3f SaturateVector(Eigen::Vector3f,
float limit);
133 Eigen::Matrix<float, 4, 4> OmegaMatrix(Eigen::Vector3f input);
136 Eigen::Vector3f tun_accel_gain;
137 Eigen::Vector3f tun_alpha_gain;
138 float tun_ctl_stopping_omega_thresh;
139 float tun_ctl_stopping_vel_thresh;
140 float tun_ctl_stopped_pos_thresh;
141 float tun_ctl_stopped_quat_thresh;
142 float tun_ctl_pos_sat_upper;
143 float tun_ctl_pos_sat_lower;
144 float tun_ctl_linear_force_limit;
145 float tun_ctl_att_sat_upper;
146 float tun_ctl_att_sat_lower;