Commit Graph

14227 Commits

Author SHA1 Message Date
Paul Riseborough 46ece548cd ekf2: Changes following code review 2017-05-03 08:37:14 +02:00
Paul Riseborough 8421ad3dfd commander: Changes following code review 2017-05-03 08:37:14 +02:00
Paul Riseborough 6473f1458f commander: reset learned ekf2 mag biases when performing a mag cal
The learned ekf2 mag bias values are invalidated when the sensor calibration is updated and must be reset.
2017-05-03 08:37:14 +02:00
Paul Riseborough 6474922224 ekf2: Save learned magnetometer biases 2017-05-03 08:37:14 +02:00
Beat Küng b4178e0388 BlockParam: add BlockParam::commit_no_notification() 2017-05-03 08:37:14 +02:00
Paul Riseborough 3bcb710da9 voted_sensors_update: publish sensor selections (+3 squashed commits)
Squashed commits:
[290660d] voted_sensors_update: revert the new_accel_data check (and others)

The check removed the ability to detect sensor timeouts.
[c8dc7ad] sensors: publish changes to sensor selection
[dd90dec] sensors: ensure all sensor selections published first time
2017-05-03 08:37:14 +02:00
priseborough 8ea0b2d3c5 commander: rework posvel validity checks
Move into functions.
Reset probation time and recalculate checks if a mode change is demanded to give the operator ability to regain control as soon as possible after nav performance is regained. (+11 squashed commits)
Squashed commits:
[a4bb800] commander: enable pilot to quickly recover from loss of position accuracy
[19e16a0] commander: rework postal probation time
[f96284e] commander: rework bad pos and vel test probation time
[00d5f0c] commander: Allow EKF preflight checks to pass with moving vehicle

Separates the 'is using GPS' and the GPS quality checks.
Uses a reasonable subset of the GPS quality checks which allows checks to pass if the vehicle is moving.
[4cdfb5c] commander: remove unused variable
[349385a] commander: add EKF GPS quality checks to pre-arm checking

Only perform check if GPs checking is activated by parameter setting.
Display fault messages that makes it clear if EKF quality checks are failing or the EKF is not using GPS for another reason. We do not want to confuse this with GPS lock.
[340ae29] commander: make position invalid fail-safe more sticky

Require check to pass for 7 seconds before exiting failsafe. This is required because if GPs is failing innovation tests for a prolonged period, the EKF will periodically reset to the GPS and report good accuracy at the time of reset.
Adding this delay gives time for an underlying error condition (eg bad IMU or compass) to be re-detected.
[b04ac95] commander: Increase RAM allocation to eliminate low stack warnings
[9dca12f] commander: add missing position invalid fail-safe responses
[69f264d] commander: Update position invalid fail-safe responses

Replace separate logic for each case with a generic function
Add velocity checks.
[8e8cef1] commander: rework position validity checks

Consolidate existing checks for global and local position validity and add checking of velocity accuracy.
Enable checks to be bypassed using the CBRK_VELPOSERR parameter.
2017-05-03 08:37:14 +02:00
priseborough 519e903347 systemlib: Add circuit breaker parameter for position error checks 2017-05-03 08:37:14 +02:00
priseborough e61e733d1d local_position_estimator: publish placeholder values for velocity accuracy 2017-05-03 08:37:14 +02:00
priseborough 3680057e6d ekf_att_pos_estimator: publish placeholder values for accuracy reporting 2017-05-03 08:37:14 +02:00
priseborough 68c1ffd3e5 position_estimator_inav: publish placeholder values for velocity accuracy 2017-05-03 08:37:14 +02:00
priseborough 1f5908786e ekf2: don't publish estimator status and innovations unless updated 2017-05-03 08:37:14 +02:00
priseborough fb6e050b06 ekf2: Improve error reporting
Add missing velocity accuracy reporting
Add missing dead reckoning reporting
2017-05-03 08:37:14 +02:00
David Sidrane e86d9adb93 px4fmu-v4:Implement board_on_reset API
Added board_on_reset, to force timer GPIO to output low on reset
   This will stop the motors.
2017-05-03 08:33:05 +02:00
David Sidrane e967c2b340 board_common:Added new API point board_on_reset
This optionally provided function called on entry to
  board_system_reset. It should perform any house keeping
  prior to retunring to do the rest.
2017-05-03 08:33:05 +02:00
David Sidrane 33f2897f00 px4fmu-v4:Configure timer IO pins with pull downs
When the CCER is cleared the IO pin tends to float. The FMUV4
  HW has no TXS0108 and if cut off while high will decay.

  By adding the pull down the pins will seek the low state faster.
  13.8 us from off to decabe below threshold.
2017-05-03 08:33:05 +02:00
Lorenz Meier be375e25d3 Update GPS driver submodule. Fixes #7173 2017-05-03 08:30:29 +02:00
David Sidrane 95fd2cd184 Create NuttX git hash and tag 2017-05-03 08:18:47 +02:00
David Sidrane f66f024e3a ver:Print vMM.mm.pp format 2017-05-03 08:18:47 +02:00
David Sidrane bf570dee2f Added use of SPI_LOCK in the ms5611 driver on any HW where the
PX4_SPI_BUS_BARO == PX4_SPI_BUS_RAMTRON
2017-05-03 08:17:12 +02:00
David Sidrane 6aadc75d18 Removed interrupt based locking on FMUv4 HW
The ramtron driver already calls SPI_LOCK when accessing the
  FRAM.

  Removed the interrupt lockout and anabled the SPI_LOCK
  in the ms5611 driver on any HW where the
  PX4_SPI_BUS_BARO == PX4_SPI_BUS_RAMTRON
2017-05-03 08:17:12 +02:00
David Sidrane 5d70f74e36 px4fmu-v4:SPI and init clean up 2017-05-02 11:55:11 +02:00
Henry Zhang 92fc82da33 MindPX: Remove MPU6500 driver, use MPU9K driver instead 2017-05-02 11:52:12 +02:00
Lorenz Meier 40eb5df8de UAVCANCAN: Better param documentation and reboot requirements where appropriate 2017-05-02 07:42:14 +02:00
David Sidrane 05ceeec1ba piofirmware:Base the debug message buffer size on the defconfig
Recover 16 bytes. Size of debug max message is 40 so limit
  the usart tx buffer to same size.
2017-05-02 07:40:50 +02:00
David Sidrane f7835a8677 io_timer driver:Only support capture if DIRECT_INPUT_TIMER_CHANNELS > 0
This removes the unused input capture capabilities from the px4io
   and saves 128 bytes of ram.
2017-05-02 07:40:50 +02:00
Lorenz Meier 60a022329f IO Firmware: Use new RC lib format 2017-05-02 07:40:50 +02:00
Lorenz Meier 71731d17a9 RC C library: Use same buffer as the protocols do not decode in parallel. 2017-05-02 07:40:50 +02:00
Lorenz Meier 118b9aad19 MC pos control: Document the reference update handling function better 2017-05-01 17:23:11 +02:00
Paul Riseborough 9983bf2364 ekf2: fix errors in publishing of local position origin validity flags 2017-05-01 17:23:11 +02:00
Lorenz Meier 875a35fcd5 GPS: FIncrease stack by 100 bytes
The app reached the check limit and needed a bit more headroom.
2017-04-30 12:03:14 +02:00
Mohammed Kabir 6a99ca70e9 camera_trigger : clarify power control comment 2017-04-30 12:00:06 +02:00
Mohammed Kabir 3ba0275952 camera_trigger : switch to queued publisher 2017-04-30 12:00:06 +02:00
Mohammed Kabir b5ce55bab6 camera_trigger : don't advertise garbage 2017-04-30 12:00:06 +02:00
Mohammed Kabir 3ebfb0cd27 camera_trigger : optimize GCS test command handling 2017-04-30 12:00:06 +02:00
ChristophTobler 6c15666368 ekf2: accept min/max range 2017-04-27 21:15:47 +02:00
Khoi Tran 1b7838c2fe Implement Mavlink PLAY_TUNE 2017-04-27 14:48:25 +02:00
Matthias Grob 0c4719de3e mc_pos_control: smooth takeoff, fixed gradient of the velocity ramp by takeoff speed parameter
because we need a workaround for the broken auto takeoff logic which can start the vehicle with a loiter setpoint
in this case the very first moment is still a jump but then it gets taken over by the fix gradient ramp
this can basically be reverted after the auto takeoff logic is fixed
2017-04-27 14:05:20 +02:00
Matthias Grob b5820afa14 mc_pos_control: smooth takeoff, fixed ramp reset bug and takeoff speed limiting condition
currently when the vehicle is landed again (not after bootup) the core position controller does not run anymore
therefore the velocity limit ramp in some cases did not get reset correctly

speed limiting in auto takeoff mode only needs to be limited when the user did not take over
2017-04-27 14:05:20 +02:00
Matthias Grob 9a162a24bb mc_pos_control: improved smooth takeoff and used it for manual takeoff as well
adresses:
there were setpoint twitches at the beginning and end of my smooth takeoff routine
it was to slow and not configurable
it was only available for automatic takeoff
2017-04-27 14:05:20 +02:00
Matthias Grob 75872b0713 mc_pos_control: switched auto takeoff to clean position control to takeoff point with gradual velocity limit
auto takeoff  was pretty chaotic and bypassed the velocity controller until some magic condition
the goal of this approach is to make the behaviour and smoothness more predictable and reuse the exact same logic for manual takeoff
2017-04-27 14:05:20 +02:00
Matthias Grob 5fd6bfc18c mc_pos_control: reorder velocity setpoint limiting, adding comments 2017-04-27 14:05:20 +02:00
Matthias Grob f5964ec237 mc_pos_control: pure refactor, reduce one level of indentation in calculate_thrust_setpoint 2017-04-27 14:05:20 +02:00
Matthias Grob 40d058558b mc_pos_control: pure refactor, split up core position control into velocity and thrust setpoint generation 2017-04-27 14:05:20 +02:00
Matthias Grob fac34de11e mixer_multirotor: switched to math::constrain (#7073)
- a local implementation was used before which is not necessary
2017-04-26 15:25:05 -04:00
Beat Küng fc30f880c8 px4fmu_spi.c for v4: fix usage of wrong GPIO macros
This got introduced with the refactoring in c5e841256a
2017-04-26 13:56:59 +02:00
Daniel Agar f04f1d6b03 sensors HIL increase gyro and accel timeout
- fixes #7050
2017-04-25 23:52:11 +02:00
Beat Küng 0d22e97c09 sensor_params: document PWM_RATE=0 for Oneshot125 2017-04-25 12:59:12 +02:00
David Sidrane 0a1fbef8c8 pwm:ensure that a rate of 0 will invoke the ioctl
Prior to onshot being added to the system. The -r of the
   "rate" command would not invoke the ioctl PWM_SERVO_SET_UPDATE_RATE
   when -r was not provided on the command line. This may have been a
   feature or a bug.

   When onshot was added to the pwm command a bug was intorduced
   that precluded the ioctl PWM_SERVO_SET_UPDATE_RATE from being
   called on -r 0.

   This commit fixes that issue, and preserves the "prio to oneshot"
   behavior of the "rate" command when -r is not specified.
2017-04-25 09:02:28 +02:00
Beat Küng 44a507fcfe camera_interface: initialize _p_pin & handle error 2017-04-24 16:49:26 +02:00