134 #if defined(ROTORCRAFT_FIRMWARE)
139 #if defined(GVF_ROTORCRAFT_USE_ACCEL)
147 #warning "Using GVF for rotorcraft is still experimental, proceed with caution"
148 float n_norm =
sqrtf(nx*nx+ny*ny);
187 float Apd_dot_dot_x = -ke * (nx * px_dot + ny * py_dot) * nx;
188 float Apd_dot_dot_y = -ke * (nx * px_dot + ny * py_dot) * ny;
191 + ((-ke * e * H12) +
s * H22) * py_dot;
193 - (
s * H12 + (ke * e * H22)) * py_dot;
210 float omega = omega_d + kn *
e_n;
241 if (speed < 0.0) speed = 0.0;
Core autopilot interface common to all firmwares.
uint32_t get_sys_time_msec(void)
Get the time in milliseconds since startup.
void gvf_set_align(bool align)
void gvf_init(void)
EXTERN FUNCTIONS ----------------------------------------------------—.
void gvf_control_2D(float ke, float kn, float e, struct gvf_grad *grad, struct gvf_Hess *hess)
static void send_gvf(struct transport_tx *trans, struct link_device *dev)
TELEMETRY -----------------------------------------------------------—.
void gvf_set_speed(float speed)
void gvf_set_direction(int8_t s)
Guidance algorithm based on vector fields.
void gvf_low_level_control_2D(float omega)
gvf_common_info gvf_c_info
gvf_common_state gvf_c_state
void gvf_low_level_getState(void)
struct RotorcraftNavigation nav
struct EnuCoor_f speed
speed setpoint (in m/s)
#define NAV_SETPOINT_MODE_SPEED
struct EnuCoor_f accel
accel setpoint (in m/s)
float heading
heading setpoint (in radians)
static const struct usb_device_descriptor dev
int8_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint8_t _id, telemetry_cb _cb)
Register a telemetry callback function.
Periodic telemetry system header (includes downlink utility and generated code).
#define DefaultPeriodic
Set default periodic telemetry.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.
signed char int8_t
Typedef defining 8 bit char type.