You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
258 lines
6.9 KiB
258 lines
6.9 KiB
#pragma once |
|
|
|
#include "defines.h" |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
////////////////////////////////////////////////////////////////////////////// |
|
// HARDWARE CONFIGURATION AND CONNECTIONS |
|
////////////////////////////////////////////////////////////////////////////// |
|
////////////////////////////////////////////////////////////////////////////// |
|
|
|
#ifndef CONFIG_HAL_BOARD |
|
#error CONFIG_HAL_BOARD must be defined to build ArduSub |
|
#endif |
|
|
|
// run at 400Hz on all systems |
|
# define MAIN_LOOP_RATE 400 |
|
# define MAIN_LOOP_SECONDS 0.0025f |
|
|
|
#ifndef SURFACE_DEPTH_DEFAULT |
|
# define SURFACE_DEPTH_DEFAULT -10.0f // pressure sensor reading 10cm depth means craft is considered surfaced |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// PWM control |
|
// default RC speed in Hz |
|
#ifndef RC_SPEED_DEFAULT |
|
# define RC_SPEED_DEFAULT 200 |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Circle Nav parameters |
|
// |
|
|
|
#ifndef CIRCLE_NAV_ENABLED |
|
# define CIRCLE_NAV_ENABLED ENABLED |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// RPM |
|
// |
|
|
|
#ifndef RPM_ENABLED |
|
# define RPM_ENABLED DISABLED |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// RCMAP |
|
// |
|
|
|
#ifndef RCMAP_ENABLED |
|
# define RCMAP_ENABLED DISABLED |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Rangefinder |
|
// |
|
|
|
#ifndef RANGEFINDER_ENABLED |
|
# define RANGEFINDER_ENABLED ENABLED |
|
#endif |
|
|
|
#ifndef RANGEFINDER_HEALTH_MAX |
|
# define RANGEFINDER_HEALTH_MAX 3 // number of good reads that indicates a healthy rangefinder |
|
#endif |
|
|
|
#ifndef RANGEFINDER_GAIN_DEFAULT |
|
# define RANGEFINDER_GAIN_DEFAULT 0.8f // gain for controlling how quickly rangefinder range adjusts target altitude (lower means slower reaction) |
|
#endif |
|
|
|
#ifndef THR_SURFACE_TRACKING_VELZ_MAX |
|
# define THR_SURFACE_TRACKING_VELZ_MAX 150 // max vertical speed change while surface tracking with rangefinder |
|
#endif |
|
|
|
#ifndef RANGEFINDER_TIMEOUT_MS |
|
# define RANGEFINDER_TIMEOUT_MS 1000 // desired rangefinder alt will reset to current rangefinder alt after this many milliseconds without a good rangefinder alt |
|
#endif |
|
|
|
#ifndef RANGEFINDER_WPNAV_FILT_HZ |
|
# define RANGEFINDER_WPNAV_FILT_HZ 0.25f // filter frequency for rangefinder altitude provided to waypoint navigation class |
|
#endif |
|
|
|
#ifndef RANGEFINDER_TILT_CORRECTION // by disable tilt correction for use of range finder data by EKF |
|
# define RANGEFINDER_TILT_CORRECTION ENABLED |
|
#endif |
|
|
|
// Avoidance (relies on Proximity and Fence) |
|
#ifndef AVOIDANCE_ENABLED |
|
# define AVOIDANCE_ENABLED DISABLED |
|
#endif |
|
|
|
#if AVOIDANCE_ENABLED == ENABLED // Avoidance Library relies on Proximity and Fence |
|
# define PROXIMITY_ENABLED ENABLED |
|
# define FENCE_ENABLED ENABLED |
|
#endif |
|
|
|
// Proximity sensor |
|
// |
|
#ifndef PROXIMITY_ENABLED |
|
# define PROXIMITY_ENABLED DISABLED |
|
#endif |
|
|
|
#ifndef MAV_SYSTEM_ID |
|
# define MAV_SYSTEM_ID 1 |
|
#endif |
|
|
|
#ifndef EKF_ORIGIN_MAX_DIST_M |
|
# define EKF_ORIGIN_MAX_DIST_M 50000 // EKF origin and waypoints (including home) must be within 50km |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// OPTICAL_FLOW |
|
#ifndef OPTFLOW |
|
# define OPTFLOW DISABLED |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// gripper |
|
#ifndef GRIPPER_ENABLED |
|
# define GRIPPER_ENABLED DISABLED |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Nav-Guided - allows external nav computer to control vehicle |
|
#ifndef NAV_GUIDED |
|
# define NAV_GUIDED ENABLED |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// CAMERA TRIGGER AND CONTROL |
|
// |
|
#ifndef CAMERA |
|
# define CAMERA DISABLED |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Flight mode definitions |
|
// |
|
|
|
// Acro Mode |
|
#ifndef ACRO_RP_P |
|
# define ACRO_RP_P 4.5f |
|
#endif |
|
|
|
#ifndef ACRO_YAW_P |
|
# define ACRO_YAW_P 3.375f |
|
#endif |
|
|
|
#ifndef ACRO_LEVEL_MAX_ANGLE |
|
# define ACRO_LEVEL_MAX_ANGLE 3000 |
|
#endif |
|
|
|
#ifndef ACRO_BALANCE_ROLL |
|
#define ACRO_BALANCE_ROLL 1.0f |
|
#endif |
|
|
|
#ifndef ACRO_BALANCE_PITCH |
|
#define ACRO_BALANCE_PITCH 1.0f |
|
#endif |
|
|
|
#ifndef ACRO_EXPO_DEFAULT |
|
#define ACRO_EXPO_DEFAULT 0.3f |
|
#endif |
|
|
|
// AUTO Mode |
|
#ifndef WP_YAW_BEHAVIOR_DEFAULT |
|
# define WP_YAW_BEHAVIOR_DEFAULT WP_YAW_BEHAVIOR_CORRECT_XTRACK |
|
#endif |
|
|
|
#ifndef AUTO_YAW_SLEW_RATE |
|
# define AUTO_YAW_SLEW_RATE 60 // degrees/sec |
|
#endif |
|
|
|
#ifndef YAW_LOOK_AHEAD_MIN_SPEED |
|
# define YAW_LOOK_AHEAD_MIN_SPEED 100 // minimum ground speed in cm/s required before vehicle is aimed at ground course |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Stabilize Rate Control |
|
// |
|
#ifndef ROLL_PITCH_INPUT_MAX |
|
# define ROLL_PITCH_INPUT_MAX 4500 // roll, pitch input range |
|
#endif |
|
#ifndef DEFAULT_ANGLE_MAX |
|
# define DEFAULT_ANGLE_MAX 4500 // ANGLE_MAX parameters default value |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Loiter position control gains |
|
// |
|
#ifndef POS_XY_P |
|
# define POS_XY_P 1.0f |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// PosHold parameter defaults |
|
// |
|
#ifndef POSHOLD_ENABLED |
|
# define POSHOLD_ENABLED ENABLED // PosHold flight mode enabled by default |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Throttle control gains |
|
// |
|
|
|
#ifndef THR_DZ_DEFAULT |
|
# define THR_DZ_DEFAULT 100 // the deadzone above and below mid throttle while in althold or loiter |
|
#endif |
|
|
|
// default maximum vertical velocity and acceleration the pilot may request |
|
#ifndef PILOT_VELZ_MAX |
|
# define PILOT_VELZ_MAX 500 // maximum vertical velocity in cm/s |
|
#endif |
|
#ifndef PILOT_ACCEL_Z_DEFAULT |
|
# define PILOT_ACCEL_Z_DEFAULT 100 // vertical acceleration in cm/s/s while altitude is under pilot control |
|
#endif |
|
|
|
#ifndef AUTO_DISARMING_DELAY |
|
# define AUTO_DISARMING_DELAY 0 |
|
#endif |
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
// Logging control |
|
// |
|
#ifndef LOGGING_ENABLED |
|
# define LOGGING_ENABLED ENABLED |
|
#endif |
|
|
|
// Default logging bitmask |
|
#ifndef DEFAULT_LOG_BITMASK |
|
# define DEFAULT_LOG_BITMASK \ |
|
MASK_LOG_ATTITUDE_MED | \ |
|
MASK_LOG_GPS | \ |
|
MASK_LOG_PM | \ |
|
MASK_LOG_CTUN | \ |
|
MASK_LOG_NTUN | \ |
|
MASK_LOG_RCIN | \ |
|
MASK_LOG_IMU | \ |
|
MASK_LOG_CMD | \ |
|
MASK_LOG_CURRENT | \ |
|
MASK_LOG_RCOUT | \ |
|
MASK_LOG_OPTFLOW | \ |
|
MASK_LOG_COMPASS | \ |
|
MASK_LOG_CAMERA | \ |
|
MASK_LOG_MOTBATT |
|
#endif |
|
|
|
// Enable/disable Fence |
|
#ifndef AC_FENCE |
|
#define AC_FENCE ENABLED |
|
#endif |
|
|
|
#ifndef AC_RALLY |
|
#define AC_RALLY DISABLED |
|
#endif |
|
|
|
#ifndef AC_TERRAIN |
|
#define AC_TERRAIN DISABLED // Requires Rally enabled as well |
|
#endif
|
|
|