Commit Graph
100 Commits
Author SHA1 Message Date
Daniel AgarandMatthias Grob 0618f048f2 commander: use control mode flags and cleanup arm_disarm
- keep `vehicle_control_mode` last state in commander and use appropriate flags in place of various main_state and nav_state checks
 - consolidate scattered arming requirements in `arm_disarm()`
   - there were a number of different requirements from arming via RC vs Mavlink that don't make any sense
        - if geofence enabled require valid home before arming
        - throttle requirements for manual modes
 - remove unnecessary mavlink feedback that differs between arming interfaces (mavlink vs RC)
      - let the preflight/prearm checks respond directly in most cases 

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2021-02-15 12:03:21 -05:00
Daniel Agar 40a452dcd2 ekf2: selector improve timeout handling and reporting
- relax estimator_status timeout unless attitude hasn't published recently
2021-02-14 21:08:56 -05:00
Daniel Agar fb2a199621 delete unmaintaned mkblctrl driver 2021-02-14 10:38:15 +01:00
Daniel Agar ce552a3364 navigator: RTL don't get invalid params 2021-02-13 00:34:56 +01:00
Daniel Agar 1981519aad L1 position controller: use double precision floating point for all lat/lon 2021-02-12 21:59:56 +01:00
Daniel Agar f61d8539cb fw_pos_control_l1: add takeoff minimum pitch parameter
- remove mavlink mechanism for setting minimum pitch
2021-02-12 13:57:15 -05:00
Daniel Agar 15e76ad993 PWM12 mode for pwm_out and dshot 2021-02-12 09:19:18 -05:00
Daniel Agar 0614789db3 tests: add simple parameter custom default testing 2021-02-12 08:27:47 -05:00
Daniel Agar e6bc6438e8 ROMFS: airframes use new param default mechanism 2021-02-12 08:27:47 -05:00
Daniel Agar b67aa77d29 ROMFS: use new param default mechanism 2021-02-12 08:27:47 -05:00
Daniel Agar a257120e8d boards: use new param default mechanism 2021-02-12 08:27:47 -05:00
Daniel Agar ce64951578 parameter_update.msg: add basic status info 2021-02-12 08:27:47 -05:00
Daniel Agar b8b13bb882 parameters runtime defaults 2021-02-12 08:27:47 -05:00
Daniel Agar da1a38b44e parameters: merge generated files ito single static constexpr header
- store parameter type and if volatile separately (saves kilobytes of flash)
 - use Bitset for tracking active and changed parameters
 - use atomic for autosave_enabled flag
 - compile at ${MAX_CUSTOM_OPT_LEVEL} (-O2 on non flash constrained boards)
2021-02-12 08:27:47 -05:00
Daniel Agar c3172a91d9 ekf2: try reselecting distance_sensor on timeout 2021-02-12 08:25:27 -05:00
Daniel Agar 5db906314a uavcan: stm32h7 driver silence debug output 2021-02-11 23:08:17 -05:00
Daniel Agar dcb35e9a8c Update submodule mavlink v2.0 to latest Fri Feb 12 00:38:48 UTC 2021 2021-02-11 23:06:40 -05:00
Daniel Agar 8a0bf15b9e boards: CUAV X7Pro fix BMI088 orientation 2021-02-11 23:05:48 -05:00
Daniel Agar 7f76666fe9 Jenkins: hardware avoid unnecessary checkout 2021-02-11 23:04:26 -05:00
Daniel Agar c63107bb57 uORB: tests increase priorities to minimize failures with stackcheck/debug enabled
- also relax the maximum mean by 50%
2021-02-11 22:58:57 -05:00
Daniel Agar cb7aabf932 fw_pos_control_l1: cleanup body velocity and acceleration usage
- minimize storing unnecessary state (msg copies)
2021-02-12 00:41:39 +01:00
Daniel Agar 5b44bd67bb ist8310: fix 16 times average configuration 2021-02-11 13:18:13 -05:00
Daniel Agar 7e18cffc5f Update submodule mavlink v2.0 to latest Thu Feb 11 12:41:13 UTC 2021 2021-02-11 12:51:22 -05:00
Daniel Agar a76e429b1a calibration parameters volatile (offsets and scale factors)
- anything set vehicle side should be volatile and excluded from the
param hash
2021-02-10 09:01:47 +01:00
Daniel Agar 9f00fd2796 move PWM params to lib 2021-02-09 08:57:00 +01:00
Daniel Agar 8f0918a16b boards: remove unused linker __param section 2021-02-08 23:22:48 -05:00
Daniel Agar 58ca575871 UAVCAN v1 bridge
- NuttX stm32f4/stm32f7 uses character device driver
 - NuttX kinetis and s32k uses socketcan
2021-02-07 17:18:45 +01:00
Daniel Agar 1848ac3bc7 mavlink: receiver accept ODOMETRY MAV_ESTIMATOR_TYPE_UNKNOWN for legacy support 2021-02-07 09:51:05 -05:00
Daniel Agar f461481548 Revert "mavlink: ODOMETRY handler accept all other estimator_types for now"
This reverts commit b216714d56.
2021-02-07 09:51:05 -05:00
Daniel Agar b216714d56 mavlink: ODOMETRY handler accept all other estimator_types for now 2021-02-06 22:32:20 +01:00
Daniel Agar d67a84d941 boards: holybro can-gps-v1 fix bosch bmm150 path 2021-02-06 15:56:11 -05:00
Daniel Agar 41b0f83c0c drivers/magnetometer: Bosch BMM150 rewrite
- same pattern as other new drivers (state machine, checked register mechanism, no sleeps, etc)
 - self test has been rolled into regular startup sequence
 - still I2C only, but will be expanded in the future
 - configure to high accuracy preset
2021-02-06 12:50:23 -05:00
Daniel Agar 61e935105f Update submodule mavlink v2.0 to latest Sat Feb 6 00:38:29 UTC 2021 2021-02-05 20:20:50 -05:00
Daniel Agar 9d90529e7f Jenkins hardware print vehicle_status and vehicle_status_flags 2021-02-05 20:11:13 +01:00
Daniel Agar 6633ff5089 commander: vehicle_status_flags add attitude and angular velocity 2021-02-05 20:11:13 +01:00
Daniel Agar 3f1ca4dfc9 Update submodule mavlink v2.0 to latest Wed Feb 3 18:41:38 UTC 2021 2021-02-03 18:41:02 -05:00
Daniel Agar a2442ffb48 board: enable UAVCAN sensors by default on F7/H7 2021-02-02 09:01:12 +01:00
Daniel Agar a9a8a95c44 drivers/distance_sensor: add drivers_rangefinder linking dependency
- fixes https://github.com/PX4/PX4-Autopilot/issues/16715
2021-02-01 09:25:23 -05:00
Daniel Agar 78dff6adcb boards: add CONSTRAINED_MEMORY build option
- currently the main change is that it reduces the max number of ORB multi instances to 4, but usage will be expanded as needed
 - limits number of EKF2 multi instances to 2.
 - enabled on all cortex m4 boards
2021-02-01 08:56:22 +01:00
Daniel Agar d1a3590aac PWM: transition PWM_{MIN,MAX,DISARMED,RATE} -> PWM_MAIN 2021-02-01 08:53:33 +01:00
Daniel Agar 8b8adbf48e Jenkins hardware reduce IMU_GYRO_RATEMAX on some boards 2021-01-31 21:26:26 -05:00
Daniel Agar 3b71e8e62d boards: cubepilot fix BAT2_V_DIV param default typo 2021-01-31 21:16:42 -05:00
Daniel Agar b1e85b0b04 Jenkins hardware add CUAV X7 Pro 2021-01-31 19:48:00 -05:00
Daniel Agar 61d7be82cc Jenkins hardware add CubePilot CubeOrange 2021-01-31 18:51:32 -05:00
Daniel Agar 5097d531bf mavlink: send LINK_NODE_STATUS 2021-01-31 15:02:30 +01:00
Daniel Agar 4cbbd0ebf3 mavlink: receiver estimate total lost messages 2021-01-31 15:02:30 +01:00
Daniel Agar bb7dd0cf00 modules/sih: move to px4 work queue (wq:rate_ctrl)
- respect IMU_GYRO_RATEMAX for configured interval
 - optionally compile at higher optimization level per board (${MAX_CUSTOM_OPT_LEVEL})
2021-01-31 12:56:45 +01:00
Daniel Agar 470f24037e systemcmds/param: use PX4_INFO_RAW directly (delete qurt special case) 2021-01-31 11:43:47 +01:00
Daniel Agar 9e112dd48b platforms: px4 log build string then print (fputs) 2021-01-31 11:43:47 +01:00
Daniel Agar 0c58d12216 mavlink: receiver estimate total lost messages 2021-01-31 11:41:56 +01:00
Daniel Agar b30bd7f589 drivers: no longer any need to advertise immediately (baro, mag, rangefinder) 2021-01-31 11:35:46 +01:00
Daniel Agar 6a4835bbcc sensors: vehicle_magnetometer combine extra _vehicle_magnetometer_pub 2021-01-30 21:50:01 -05:00
Daniel Agar ce76c84ce2 sensors: vehicle_magnetometer respect publication rate limit SENS_MAG_RATE 2021-01-30 21:50:01 -05:00
Daniel Agar 318c7e83b3 support up to PWM 14
- generate PWM_MAIN 1-14
 - generate PWM_AUX 1-8
 - generate PWM_EXTRA 1-8
 - px4io and pwm_out directly read configuration parameters
    - only available and active physical outputs are actually shown for configuration
 - overall saves flash despite adding many new parameters
2021-01-30 15:55:53 +01:00
Daniel Agar e7f2195a9b ekf2: error if unable to copy every sensor publication 2021-01-29 22:12:29 -05:00
Daniel Agar f0d1f1d679 boards: disable BDMA on STM32H7 for now 2021-01-28 21:16:23 +01:00
Daniel Agar cf43d07f70 uavcannode: refactor into separate publishers and subscribers 2021-01-27 20:57:23 -05:00
Daniel Agar c033681c56 uavcannode: add parameter default value 2021-01-27 13:11:41 -05:00
Daniel Agar 1b9d68abd5 parameters: add new param_get_default_value() 2021-01-27 13:11:41 -05:00
Daniel Agar 53a14e847d drivers/rc_input: support RC_RSSI_PWM_CHAN 2021-01-26 18:19:52 -05:00
Daniel Agar 3b26b7adaf sensors: magnetometer preserve original mag cal offset for status message 2021-01-26 16:04:10 -05:00
Daniel Agar 15cbe8c09a px4_work_queue: wq:nav_and_controllers increase stack 1730 -> 1760 bytes 2021-01-26 16:03:37 -05:00
Daniel Agar b422da45ec boot_app_shared automatically generate UAVCAN bootable image 2021-01-26 10:21:29 -08:00
Daniel Agar 347c185967 UAVCAN bootloader merge duplicate boot_app_shared 2021-01-26 10:21:29 -08:00
Daniel AgarandKenneth Thompson e656c9c13f drivers/uavcannode: Add a simple parameter server (simpler version for merging) (#16649)
* drivers/uavcannode: Add a simple parameter server

Added a simple parameter server using the libuavcan ParamServer class.
The parameter server exposes a selection of PX4 parameters via UAVCAN.
Also, Increased the stack size of the uavcan work queue in order to
prevent a stack overflow.

* uavcannode: fetch all active PX4 parameters

Co-authored-by: Kenneth Thompson <ken@flyvoly.com>
2021-01-26 10:19:20 -08:00
Daniel Agar d1dfa26903 consume all available queued vehicle_commands 2021-01-26 12:00:18 -05:00
Daniel Agar d5c7e243a9 vehicle_command: increase queue depth 4 -> 8
- prevent slower modules from missing commands
2021-01-26 12:00:18 -05:00
Daniel Agar 350ebf5a1f boards: CUAV CAN GPS flash based parameters 2021-01-26 08:06:54 -08:00
Daniel Agar 39ef2fd0b7 delete unused struct pwm_output_rc_config 2021-01-25 10:55:57 -05:00
Daniel Agar 75f02d64b6 delete unused PWM_SERVO_SET_SBUS_RATE 2021-01-25 10:55:57 -05:00
Daniel Agar 2b0a047f0c delete unused DSM_BIND_POWER_UP 2021-01-25 10:55:57 -05:00
Daniel Agar 439c573242 delete unused PWM_SERVO_SET_TRIM_PWM 2021-01-25 10:55:57 -05:00
Daniel Agar 2ff69a4456 delete unused PWM_SERVO_SET_COUNT 2021-01-25 10:55:57 -05:00
Daniel Agar 18bac6aff5 ROMFS: posix rcS set EXTRA_MIXER_MODE 2021-01-21 11:26:23 -05:00
Daniel Agar e0b33ba842 mavlink: temporarily disable ACTUATOR_OUTPUT_STATUS stream by default
- the presence of this stream appears to be causing the MAVSDK tests to fail and needs to be investigated
2021-01-21 11:25:42 -05:00
Daniel Agar 9a066959d4 delete empty src/lib/DriverFramework 2021-01-20 14:15:49 -05:00
Daniel Agar ac8f4e3c48 mc_pos_control: only update constraints if topic updated
- update failsafe constraints
2021-01-19 14:44:42 +01:00
Daniel Agar 77b21680fb sync ctrlalloc boards and add to CI 2021-01-18 11:25:37 -05:00
Daniel Agar 311a2bd3e8 update ctrlalloc airframe location 2021-01-18 11:25:37 -05:00
Daniel Agar 3e5e5ab1d5 control_allocator and angular_velocity_controller throttle parameter_update subscription 2021-01-18 11:25:37 -05:00
Daniel Agar dab90f86a4 drivers/gps: limit to ublox only flash constrained targets 2021-01-18 09:30:01 +01:00
Daniel Agar e4d223f098 boards: CUAV Nora fix BMI088 orientation 2021-01-17 23:19:18 -05:00
Daniel Agar 1ec10bfcc6 boards: disable CONFIG_ARMV7M_LAZYFPU again (#16573)
- this was causing hard faults on the CUAV Nora and possibly other boards, disabling everywhere until we fully understand the root cause
2021-01-17 22:40:21 -05:00
Daniel Agar 3abe2e82d1 mpu9250: create dedicated i2c version and delete legacy driver
- update crazyflie and bbblue usage
 - eventually this should be merged with the SPI version after interface
changes are made
2021-01-17 16:11:19 -05:00
Daniel Agar c9a7894230 boards: bitcraze crazyflie fix boot
- add console to USART3 for now
2021-01-17 16:11:19 -05:00
Daniel Agar 4d7b875ee2 flight_mode_manager: merge with flight_tasks 2021-01-17 15:46:30 +01:00
Daniel Agar 420ceb76fc cmake: NuttX generated vscode launch.json requires DEBUG_DEVICE found 2021-01-14 10:32:26 -05:00
Daniel Agar 52b07a932a github actions build and store cannode uavcan firmware 2021-01-14 08:52:38 -05:00
Daniel Agar e96571b45d uavcannode: GPS working on cuav_can-gps-v1
- use sensor_gps directly from sensor rather than vehicle_gps_position (aggregated value)
2021-01-13 22:06:46 -05:00
Daniel Agar d8e8e23947 vscode: add cuav_can-gps-v1_canbootloader variant 2021-01-13 22:06:46 -05:00
Daniel Agar 58909b208d boards: cuav can-gps-v1 add safety button and LED 2021-01-13 22:06:46 -05:00
Daniel Agar a894ca30e8 cmake: add STM32F412CE debug helper 2021-01-13 22:06:46 -05:00
Daniel Agar a0d8d5ac74 sensors/vehicle_gps_position: untangle and remove unnecessary state 2021-01-13 20:17:49 -05:00
Daniel Agar bc8ec5d1f5 uavcannode: support optical_flow 2021-01-13 19:35:28 -05:00
Daniel Agar a57b9f9381 delete drv_baro.h, drv_mag.h, drv_range_finder.h, drv_device.h and purge UAVCAN CDev usage 2021-01-12 22:04:52 -05:00
Daniel Agar 7f5fae91b0 boards: mro ctrl zero f7 fix default power module calibration 2021-01-12 16:51:05 -05:00
Daniel Agar 48f125f150 estimated IMU bias preflight checks
- commander preflightcheck use estimator_sensor_bias message instead of EKF state index magic number
 - ekf2 publish estimated bias limits in estimator_sensor_bias
 - preflightcheck only error if bias estimate exceeds half of configured limit (delete COM_ARM_EKF_AB and COM_ARM_EKF_GB parameters)
2021-01-12 09:09:42 +01:00
Daniel Agar cb74cb8692 boards: enable CONFIG_ARMV7M_LAZYFPU everywhere 2021-01-12 09:04:38 +01:00
Daniel Agar abec2bd8df msg: estimator_status_flags shorten fields
- previously this message exceeded the logger total field length (1500 bytes)
2021-01-11 11:49:51 -05:00
Daniel Agar 04f9ada500 ekf2: selector improve fallback selection when the primary becomes unhealthy
- if an ekf instance becomes unhealthy prefer switching to the next best healthy instance on a different IMU
2021-01-11 09:38:26 -05:00