Commit Graph

20525 Commits

Author SHA1 Message Date
Beat Küng
5cacf17e47 navigator mission: simplify reset logic
This can be simplified because we now only activate Mission while armed.
2020-01-24 08:42:16 +01:00
Beat Küng
92aa341c18 navigator: do not set a mode while disarmed
This avoids premature state machine execution, most notably for missions.

In particular this fixes these issues:
- when landed, and the vehicle has a valid mission: switching to mission
  would execute the first item.
- after executing a mission with a land waypoint, the mission is reset
  and the first item is executed.

In case the first waypoint is a takeoff, it would print a user message:
"Takeoff to x meters above home.". If it was a vehicle command, it would
execute that.
Note that because the vehicle is disarmed, the vehicle would not actually
do anything (except for commands that are accepted while disarmed).
2020-01-24 08:42:16 +01:00
Beat Küng
e939f60a9e FlightTaskAuto: accept invalid triplet_setpoint (and interpret as loiter)
This will allow navigator to not output any setpoints while disarmed.
Otherwise the position controller outputs warnings in the form of:
Auto activation failed with error: Activation Failed

The risk here is that it could hide problems, where navigator sends invalid
triplets when it should not.
2020-01-24 08:42:16 +01:00
Beat Küng
c0352027fb mc_pos_control: do not warn when going into failsafe while disarmed
It's possible to get invalid or no setpoints from navigator while disarmed.
2020-01-24 08:42:16 +01:00
kritz
47cab3dba5 Update external vision interface (#13989)
* Update external vision interface

* Update ECL Version
2020-01-23 15:36:08 +01:00
kamilritz
9554f8f98b Update ECL version 2020-01-23 13:27:30 +01:00
kamilritz
8d25dcd543 Update EKF auxiliary velocity interface 2020-01-23 13:27:30 +01:00
kamilritz
9d184ea3d6 Update EKF range finder interface 2020-01-23 13:27:30 +01:00
kamilritz
230d7f2558 Update EKF airspeed interface 2020-01-23 13:27:30 +01:00
kamilritz
8772e09963 Update EKF gps interface 2020-01-23 13:27:30 +01:00
kamilritz
19b7421f86 Update EKF baro interface 2020-01-23 13:27:30 +01:00
kamilritz
439a20bfcb Update EKF mag interface 2020-01-23 13:27:30 +01:00
Daniel Agar
009ba638f5 PX4Accelerometer/PX4Gyroscope update FIFO case to trapezoidal integration 2020-01-22 18:35:41 -05:00
Daniel Agar
697dbfb9f8 sensors/vehicle_imu: incremental step towards multi-EKF 2020-01-22 18:04:29 -05:00
RomanBapst
0e90448e52 navigator: add position setpoint reset helper with safe defaults
- use in reset_triplets()
2020-01-22 18:03:25 -05:00
Daniel Agar
98042bf58f uORB: introduce SubscriptionBlocking
- uORB::SubscriptionBlocking is a specialized uORB::Subscription that allows you to do a blocking read
 - this is intended to be an easy to use, hard to misuse replacement for the typical orb fd + poll pattern we've relied on historically
2020-01-22 17:56:28 -05:00
SalimTerryLi
3ed8e876b7 New pca9685 pwm output driver 2020-01-22 15:19:47 -05:00
Claudio Micheli
421a06685c BMM150: Fix priority assignment
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2020-01-22 12:26:49 -05:00
Beat Küng
db36edffe8 commander: fix mission topic publication
The local scope caused the topic to be unadvertised, which in turn caused
a copy() failure in navigator and 'mission update failed' printf error.
2020-01-22 12:08:32 -05:00
Beat Küng
c61e44f55b commander: fix variable naming 2020-01-22 12:07:51 -05:00
Beat Küng
8bfbfa033c fix commander: avoid LED printf errors on every SITL startup 2020-01-22 12:07:51 -05:00
Beat Küng
67f3234b5b posix cdev_platform: set errno on px4_open failure 2020-01-22 12:07:51 -05:00
Daniel Agar
21a8d7db7f WorkItem modules: Run() shouldn't be public 2020-01-22 12:03:03 -05:00
Martina Rivizzigno
8162b1095b send obstacle distance data in onboard mode such that they are
received by the gcs when using mavlink router
2020-01-22 16:22:32 +01:00
Beat Küng
d865d9e64e safety_button: fix missing return when module exits 2020-01-22 09:49:20 -05:00
Beat Küng
35fc51de92 safety_button: add support for pairing command (3x pressing the button) 2020-01-22 09:49:20 -05:00
Daniel Agar
b47eaa6061 update C++ standard (c++11 -> c++14)
- temporarily disable snapdragon builds until toolchain is updated
2020-01-21 21:49:10 -05:00
Daniel Agar
cf195b0755 commander: safety button disarm require land detector
- landed, maybe_landed, or ground_contact required before the safety
button is able to disarm
 - this reduces the risk of a faulty safety button triggering in regular
flight
2020-01-21 23:35:25 +01:00
Daniel Agar
4f868fc565 commander: use arm_disarm() helper for safety button disarm 2020-01-21 23:35:25 +01:00
Daniel Agar
350268ee68 navigator: mission WORK_ITEM_TYPE_MOVE_TO_LAND altitude isn't relative 2020-01-21 23:27:22 +01:00
Roman Bapst
fa83f3799a navigator: set acceptance radius even for IDLE position setpoint 2020-01-21 11:14:43 -05:00
kamilritz
04e09d772e Add missing mag calibration biases 2020-01-21 13:36:08 +03:00
kamilritz
a3d2254e44 Move mag downsampling to ECL lib 2020-01-21 13:36:08 +03:00
kamilritz
4e8665082e Move baro downsampling and dynamic pressure comp to ECL lib 2020-01-21 13:36:08 +03:00
Daniel Agar
dc05ceaad2 create temperature_compensation module
- this is a new module for temperature compensation that consolidates the functionality previously handled in the sensors module (calculating runtime thermal corrections) and the events module (online thermal calibration)
 - by collecting this functionality into a single module we can optionally disable it on systems where it's not used and save some flash (if disabled at build time) or memory (disabled at run time)
2020-01-20 21:42:42 -05:00
Daniel Agar
e863dd317e Update submodule ecl to latest Tue Jan 21 00:39:21 UTC 2020
-  ecl in PX4/Firmware (ac205456f93857f447595eb0005c954a78461778): 011b4c2e4e
    - ecl current upstream: 950e75e484
    - Changes: 011b4c2e4e...950e75e484

950e75e 2020-01-18 Matthias Grob - EKF_ringbuffer: minor missing space for style
26125c2 2020-01-17 kamilritz - Switch from jenkins to github actions
2020-01-20 21:01:02 -05:00
Daniel Agar
635ceccfdb land_detector: relax data timeouts uniformly
* if we're hitting these timeouts there are much larger problems in the system
2020-01-20 17:14:00 -05:00
Daniel Agar
d1260aa28c logger: add safety (switch) at minimal rate 2020-01-20 14:30:24 -05:00
Daniel Agar
c270e75156 vehicle_local_position: delete unused and redundant dist_bottom_rate 2020-01-18 12:50:57 -05:00
Matthias Grob
1e06f6bbd2 mc_pos_control: fix derivative spike when regaining velocity estimate
When having no velocity estimate the derivative was updated with zero.
When losing the velocity estimate this is fine since the resulting
derivative spike doesn't get used and acceleration is set to NAN.
But when regaining the velocity estimate the spike from zero to
the first estimated velocity gets used as acceleration in the position
controller and results in a twitch.

To solve this I use the derivative reset I introduced in pr #13522
commit b64abf48b2
2020-01-18 10:57:12 +01:00
Matthias Grob
a6cc972b5c mc_pos_control: do not use invalid vz estimate 2020-01-18 10:57:12 +01:00
Matthias Grob
4d83170746 mc_pos_control: do not ignore EKF vz with terrain following
This caused bad altitude control performance when enabling
terrain following. It even leads to complete vertical control
instability in case dist_bottom is inaccurate.

Relying on the estimator states is the way to go instead of
silently using one altitude source as state.
2020-01-18 10:57:12 +01:00
Daniel Agar
bb465ca5b7 sensor accel/gyro message cleanup
- split out integrated data into new standalone messages (sensor_accel_integrated and sensor_gyro_integrated)
 - publish sensor_gyro at full rate and remove sensor_gyro_control
 - limit sensor status publications to 10 Hz
 - remove unused accel/gyro raw ADC fields
 - add device IDs to sensor_bias and sensor_correction
    - vehicle_angular_velocity/vehicle_acceleration: check device ids before using bias and corrections
2020-01-18 01:15:00 -05:00
Daniel Agar
1d932f6ec9 IMU drivers using FIFOs increase max length to 16 and sync similar implementations
- this provides some extra space when the FIFO transfers don't align perfectly
 - I've also made an effort to keep the different drivers (icm20602, icm20608g, ism330ldc) in sync so we can factor out the common portions later once we've confident in the pattern.
2020-01-17 22:06:09 -05:00
Low Orbit Ion Cannon
7dd949edb1 ADSB traffic avoidance improvements using UTM_GLOBAL_POSITION (#13159)
* Treat UAVS diffrently from manned aviation 
 * Added fake_traffic testing functionality,
 * Added NAV_TRAFF_AVOID Hold and Landmode
 * Added Behavior: HOLD Position to collision avoidance mode and implemented Landmode to collision avoidance.

Boards where no Hardware GUID is defined will send 0 as GUID.

Right now collision avoidance for more than one FMU without Hardware GUID is not possible.
We should consider adding a randomly generated HW GUID as a placeholder for legacy Boards
2020-01-17 14:58:28 -05:00
Nicolas de Palezieux
8d0402f274 land detector: fix ordering of hysteresis updates to ensure we report LANDED only if also MAYBE LANDED and GROUND CONTACT, and MAYBE LANDED only if also GROUND CONTACT 2020-01-17 20:46:17 +01:00
RomanBapst
3e90cbe686 mission: explicitly set backtransition mission item altitude
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2020-01-17 12:59:36 -05:00
PX4 BuildBot
6beecafbad Update submodule matrix to latest Fri Jan 17 00:39:22 UTC 2020
- matrix in PX4/Firmware (b9c304e461b8fe9a8060110a902fce7eac0eea8d): 3b581fb599
    - matrix current upstream: a37b91c96a
    - Changes: 3b581fb599...a37b91c96a

    a37b91c 2020-01-13 kamilritz - Type cast remaining integer
2020-01-16 20:34:06 -05:00
Daniel Agar
6630087654 TECS: remove height rate complementary filter 2020-01-16 11:04:28 -05:00
Timothy Scott
e9890d01d9 Fixed digital power module validity check 2020-01-16 10:43:23 -05:00