9334 Commits

Author SHA1 Message Date
Mohammed Kabir
d79750a06c camera_feedback : inital module import 2017-05-12 22:11:17 +02:00
Mohammed Kabir
192e8b48d1 mavlink : send camera_image_captured message 2017-05-12 22:11:17 +02:00
Mohammed Kabir
2e92a3946d camera_trigger : completely refactor state handling 2017-05-12 22:11:17 +02:00
Lorenz Meier
7af7c86384 mavlink : send camera capture information 2017-05-12 22:11:17 +02:00
Dennis Mannhart
29795fa95f mc_pos_control: switch to auto only if triplets have been updated 2017-05-09 11:54:50 +02:00
lovettchris
47faaa5d78 Add loiter option to COM_OBL_RC_ACT (#7170) 2017-05-08 14:17:29 -04:00
Paul Riseborough
341bd6e836 commander: add timeout test for global position data 2017-05-08 09:21:38 +02:00
Paul Riseborough
00a42abc69 commander: Add parameter to control postal fallback after loss of navigation accuracy
Also remove else if branch that cannot be accessed.
2017-05-08 09:21:38 +02:00
Paul Riseborough
b85c8fa135 commander: fix bug in pos vel validity transition
This ensures that a mode change will occur immediately when the EKF reports the solution as invalid.
2017-05-08 09:21:38 +02:00
Lorenz Meier
981dac8e95 Navigator: Increase RAM size 2017-05-06 12:34:28 +02:00
Lorenz Meier
dc2a2a9552 IO: Better formatting 2017-05-04 22:57:47 +02:00
Julian Oes
bcd66f1408 mc_pos_control: ignore a NaN/inf position setpoint (#7186)
* mc_pos_control: ignore a NaN/inf position setpoint

This is a hotfix that prevents the position controller from trying to
do velocity control with a position setpoint that isn't valid in the
first place.

This is only a workaround, ideally the controls later should not scale
down throttle to the minimum just because the position setpoint is far
away if they still have valid setpoint in z.

* mc_pos_control: use PX4_ISFINITE and not isfinite
2017-05-04 22:55:53 +02:00
Lorenz Meier
1bb56e775e IO: Fix access to free memory
The free memory was accessed from interrupt context where it should not be accessed from. We build the statistic now at a fixed rate while not armed.
2017-05-04 22:32:52 +02:00
Beat Küng
8bfa84f73f log_writer_file: make sure to close the file
and avoid doing a loop iteration when the thread is requested to exit
(as it could access _buffer).
2017-05-04 08:44:11 +02:00
Nate Weibley
50740ef813 Improve FW landing predictability
- Use the course over ground as loiter exit criteria (better wind behavior)
 - Compute the tangent origin coordinate explicitly instead of using immediate position
2017-05-04 07:51:46 +02:00
Lorenz Meier
3d2d6c4fdc IO: Add lazy atomic OR, AND and CLEAR functions for flags
IO needs atomic updates of a few critical status flags, but doing these always atomic (with interrupts disabled) might cause a too high interrupts disabled interval. In order to avoid this only operations that change the state of the target variable are done with interrupts disabled, while operations without an effect on the target variable are not executed.
2017-05-04 07:46:57 +02:00
Werner Stern
dc6b688a6a fixed px4io firmware read-modify-write bug 2017-05-04 07:46:57 +02:00
Lorenz Meier
65baf99832 Logger hotfix: Allocate buffer on logging
This enables to use the RAM normally consumed by the log buffer to be used for calibration and other memory-intense tasks.
These run typically only disarmed when logging is not enabled.
2017-05-03 21:52:04 +02:00
ChristophTobler
dce28454c8 use current local position for land and not GPS -> e.g. flow 2017-05-03 16:52:37 +02:00
Paul Riseborough
5bfe6d7fec ekf2: Fix failure to save mag declination 2017-05-03 08:37:14 +02:00
Paul Riseborough
b64e40b5da ekf2: format fixes 2017-05-03 08:37:14 +02:00
Paul Riseborough
1a2ef45a4b commander: remove unused pos vel validity check functions 2017-05-03 08:37:14 +02:00
Paul Riseborough
625cc4aa83 commander: Use generic function for checking position and velocity validity 2017-05-03 08:37:14 +02:00
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
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
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
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
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
Lorenz Meier
60a022329f IO Firmware: Use new RC lib format 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
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