23#ifndef ROVER_GUIDANCE_STEERING_H
24#define ROVER_GUIDANCE_STEERING_H
36#include "generated/airframe.h"
39#ifndef SERVO_MOTOR_THROTTLE_IDX
40#error "Steering rover firmware requires the servo MOTOR_THROTTLE"
43#ifndef SERVO_MOTOR_STEERING_IDX
44#error "Steering rover firmware requires the servo MOTOR_STEERING"
47#ifndef COMMAND_THROTTLE
48#error "Steering rover firmware requires the command COMMAND_THROTTLE"
51#ifndef COMMAND_STEERING
52#error "Steering rover firmware requires the command COMMAND_STEERING"
65#define MIN_DELTA MAX_DELTA
81#define MAX_SPEED 999.0
88#ifndef DRIVE_SHAFT_DISTANCE
89#define DRIVE_SHAFT_DISTANCE 0.25
90#warning "Construction variable DRIVE_SHAFT_DISTANCE for steering wheel rover not defined"
95#define SR_MEASURED_KF 10
96#warning "Construction constant SR_MEASURED_KF for steering wheel rover not defined"
138#define BoundDelta(delta) (delta < -MIN_DELTA ? -MIN_DELTA : \
139 (delta > MAX_DELTA ? MAX_DELTA : \
143#define BoundSpeed(speed) (speed < MIN_SPEED ? MIN_SPEED : \
144 (speed > MAX_SPEED ? MAX_SPEED : \
148#define BoundThrottle(throttle) TRIM_PPRZ((int)throttle)
151#define GetCmdFromDelta(delta) (delta >= 0 ? delta/MAX_DELTA * (MAX_PPRZ - (int)MAX_CMD_SHUT) : \
152 delta/MIN_DELTA * (MAX_PPRZ - (int)MIN_CMD_SHUT))
155#define GetCmdFromThrottle(throttle) (autopilot_throttle_killed() ? 0 : TRIM_PPRZ((int)throttle))
158#define SetAPThrottleFromCommands(void) { \
159 autopilot.throttle = commands[COMMAND_THROTTLE]; \
Paparazzi floating point math for geodetic calculations.
vector in East North Up coordinates Units: meters
void rover_guidance_steering_kill(void)
rover_ctrl guidance_control
void rover_guidance_steering_speed_ctrl(void)
void rover_guidance_steering_set_speed_igain(float igain)
void rover_guidance_steering_periodic(void)
void rover_guidance_steering_init(void)
Steering rover guidance EXT FUNCTIONS.
float omega_sp
omega setpoint
float heading_sp
heading setpoint
void rover_guidance_steering_pid_reset(void)
PID RESET function.
void rover_guidance_steering_setpoints(struct EnuCoor_f pos_sp, float *heading_sp)
void rover_guidance_steering_heading_ctrl(float omega)
CTRL functions.
void rover_guidance_steering_set_speed_pgain(float pgain)
Steering rover guidance STRUCTURES.