123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- #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
- //////////////////////////////////////////////////////////////////////////////
- // MAGNETOMETER
- #ifndef MAGNETOMETER
- # define MAGNETOMETER ENABLED
- #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
- //////////////////////////////////////////////////////////////////////////////
- // MOUNT (ANTENNA OR CAMERA)
- //
- #ifndef MOUNT
- # define MOUNT ENABLED
- #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
|