Commit Graph

30780 Commits

Author SHA1 Message Date
Julien Lecoeur 1bb0bf95d3 Fixup vehicle_model 2019-11-25 19:19:09 +01:00
Julien Lecoeur f8c2b0d661 [WIP] test in SITL 2019-11-24 19:30:20 +01:00
Julien Lecoeur 96891df222 logger: log vehicle_model for system identification 2019-11-24 19:30:05 +01:00
Julien Lecoeur 96c9f56e1b Add module vehicle_model_estimator
This module estimates the vehicle mass and inertia matrix.

It uses a least mean square algorithm between
delayed, low pass filtered, and time differentiated setpoints
(thrust and torque, respectively),
and low pass filtered and time differentiated accelerations
(linear and angular, respectively).
2019-11-24 19:29:39 +01:00
Julien Lecoeur fa842c7caf fmu-v2: save flash 2019-11-24 12:06:40 +01:00
Julien Lecoeur 81561fd843 omnibus_f4sd_default: save flash 2019-11-24 12:06:40 +01:00
Julien Lecoeur 3a1e8f8172 intel_aerofc-v1_default: save flash 2019-11-24 12:06:40 +01:00
Julien Lecoeur 0bbfc36f11 fw_att_control: publich torque&thrust sp for VTOL during fixed wing mode 2019-11-24 12:06:40 +01:00
Julien Lecoeur 0fede1ff50 mc_rate_control: publish torque&thrust sp for VTOLs during hover and transition 2019-11-24 12:06:40 +01:00
Julien Lecoeur 2b98add9ec sitl iris: set inertia and update gains 2019-11-24 12:06:40 +01:00
Julien Lecoeur 62de8a2c5b mc_rate_control: add inertia matrix 2019-11-24 11:30:26 +01:00
Julien Lecoeur 4e1ce3393e logger: log angular acceleration, torque and thrust setpoints for system identification 2019-11-24 11:29:55 +01:00
Julien Lecoeur 63d5155587 uORB: Add angular accel, torque & thrust setpoints 2019-11-24 11:29:55 +01:00
Julien Lecoeur 3e4137ffe8 Add vehicle_angular_acceleration topic and sensor 2019-11-24 11:29:55 +01:00
Julien Lecoeur 7cb029288a LPF: add sample frequency getter 2019-11-24 11:29:55 +01:00
Daniel Agar a69e6b92c9 mpu6000: remove unnecessary CDev 2019-11-23 19:20:44 -05:00
Daniel Agar 76bdeca263 rgbled_pwm: remove unnecessary CDev 2019-11-23 19:20:44 -05:00
Daniel Agar 284c9afe32 px4iofirmware delete unused i2c and hx_stream 2019-11-23 18:58:43 -05:00
Daniel Agar d82f9590c6 vtol_att_control: apply_pwm_limits() don't spam error 2019-11-23 17:23:30 -05:00
Daniel Agar dbed772316 Jenkins hardware select quadcopter airframe for holybro_durandal-v1_stackcheck 2019-11-23 17:23:30 -05:00
Daniel Agar d74cc5ba8c holybro_durandal-v1_stackcheck limit to primary IMU only 2019-11-23 17:23:30 -05:00
Daniel Agar 2811307293 px4_work_queue: increase wq:hp_default stack 1500->1800 bytes (found by stackcheck) 2019-11-23 17:23:30 -05:00
Daniel Agar 92559f7a85
Bosch bmp280 barometer cleanup 2019-11-23 15:31:22 -05:00
Julian Oes cbea76f62a navigator: fix triplet resetting/publication logic (#13534)
The navigator has a notion of resetting the triplets which means the
triplet setpoints are set to invalid and therefore not to be used by
downstream modules such as flight tasks.

However, before this patch, the triplets were not published if invalid
meaning that a valid triplet would stay the truth until a new valid
triplet would get published.

E.g. this lead to the corner case case where we publish a valid triplet
with an IDLE setpoint on ground in HOLD and then don't update the
triplet while flying in POSCTL mode. Later, when RTL is engaged, the
flight task will use IDLE until navigator (which runs slower) has
published the next triplet.

The fix involves two main changes:
- Publish invalid triplets to avoid stale triplets.
- Avoid publishing the triplet on every iteration in manual modes by not
  setting `_pos_sp_triplet_published_invalid_once = false`.

When testing this I realized that a mission upload during RTL would stop
RTL. This is because the mission is updated while the mission navigation
mode is not active and reset_triplets() is called from there. This is
now only done for the case where we are actually in mission navigation
mode. The fact that a mission is updated when not active also seems
wrong and is something to fix another time.
2019-11-23 10:29:41 -05:00
Beat Küng 86eb91fc18 uorb: do not open a node exclusively for an advertiser
Exclusive open is not required, but we now need to ensure the queue size
is set atomically.

It avoids a race condition between 2 single-instance advertisers,
where one of them would fail to open the node with -EBUSY.
2019-11-23 10:10:05 -05:00
Beat Küng 6c8048d057 uorb: fix several race conditions during topic initialization
Possible race conditions (they all happen between the check of existence
of a topic and trying to create the node):
- single instance, with multiple advertisers during the first advertise:
  both advertisers see the topic as non-existent and try to advertise it.
  One of them will fail, leading to an error message.
  This is the cause for telemetry_status advert failure seen in SITL in
  rare cases.
- multi-instance: subscription to non-existing instance -> px4_open fails,
  and the subscriber tries to create the node. If during that time a
  publisher publishes that instance, the subscriber will get (instance+1)
  (or fails if the max number of instances is exceeded).
  This is a race that goes pretty much unnoticed.
- multi-instance: 2 publishers can get the same instance (if is_published()
  is false in case both have not published data yet).
  This can also go unnoticed.
  Therefore the patch changes where _advertised is set: it is now set
  directly during the advertisement instead of during publication.
2019-11-23 10:10:05 -05:00
Beat Küng 63b2befeed refactor uorb: rename published to advertised
No semantic change (yet)
2019-11-23 10:10:05 -05:00
Beat Küng 0f6f795aca uORBDeviceNode: use px4::atomic instead of volatile for _generation
_generation is read in a multi-threaded context w/o locking.
2019-11-23 10:10:05 -05:00
Daniel Agar d648d52ac3
Update submodule GpsDrivers to latest Sat Nov 23 12:39:59 UTC 2019
- GpsDrivers in PX4/Firmware (0913ec7e6df0dfa84203b9a6fed72b1230157d9f): 085a85c48a
    - GpsDrivers current upstream: 781d4f1255
    - Changes: 085a85c48a...781d4f1255

    781d4f1 2019-11-22 Daniel Agar - remove all <cmath> usage
2019-11-23 09:04:20 -05:00
PX4 BuildBot 879e4a5b16 Update submodule sitl_gazebo to latest Sat Nov 23 00:38:19 UTC 2019
- sitl_gazebo in PX4/Firmware (3f92bc26ce): ec3a32a604
    - sitl_gazebo current upstream: 2637a94816
    - Changes: ec3a32a604...2637a94816

    2637a94 2019-11-18 JaeyoungLim - Address comments
94d479c 2019-11-15 Jaeyoung-Lim - Handle camera zoom mavlink message
2019-11-23 10:19:24 +00:00
Silvan Fuhrer 3f92bc26ce airspeed_selector: fix airspeed subscription
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2019-11-22 18:25:22 -05:00
Daniel Agar 75da6e351b mixer: organize by type 2019-11-22 16:48:10 -05:00
Daniel Agar f271efaf62 local_position_estimator: move to WQ and delete unused SubscriptionPollable 2019-11-22 16:02:54 -05:00
Daniel Agar db69ff0a6e attitude_estimator_q: move to WQ, module base and module params 2019-11-22 16:02:54 -05:00
Daniel Agar c8211dee28 drv_mixer.h - delete unused MIXERIOCGETOUTPUTCOUNT 2019-11-22 15:00:25 -05:00
Daniel Agar a255789be4 mixer: px_generate_mixer use static constexpr 2019-11-22 15:00:25 -05:00
Daniel Agar cc7807c066 mixer: update to List<> container 2019-11-22 15:00:25 -05:00
Daniel Agar 79dc676c8f mixer: move MixerGroup out of Mixer hierarchy and delete mixer.h header 2019-11-22 15:00:25 -05:00
Daniel Agar 011186b8a5 mixer: delete copy constructors and operators 2019-11-22 15:00:25 -05:00
Daniel Agar a172858db2 mixer: move scale() and scale_check() to SimpleMixer 2019-11-22 15:00:25 -05:00
Daniel Agar 9a572b0cf2 mixer: delete unused SimpleMixer::pwm_input() 2019-11-22 15:00:25 -05:00
Daniel Agar 37ec78dc2a mixer library split into separate headers and name consistently 2019-11-22 15:00:25 -05:00
Matthias Grob 6589aa5f71 posix rcS: remove overwriting default altitude 2019-11-22 13:36:05 -05:00
Matthias Grob ccb21e3c4b navigator: remove double member initialization 2019-11-22 13:36:05 -05:00
Matthias Grob 06f667a8b3 vtol_att_control: convert angle in one line 2019-11-22 13:36:05 -05:00
Matthias Grob 9f545ae3cf navigator: convert to radians in configuration getter 2019-11-22 13:36:05 -05:00
Julian Oes 334a599b2d vmount: tell user how to use vmount test
This confused me, so hopefully it will help the next user, e.g. me.
2019-11-22 16:48:17 +01:00
Julian Oes a36a3d6c5c vmount: remove commented out code 2019-11-22 16:48:17 +01:00
Julian Oes 1e8ebe20d1 vmount: set correct MAV_MOUNT_MODE 2019-11-22 16:48:17 +01:00
David Sidrane bbd37ada41 holybro_durandal-v1: update cdcacm product id 2019-11-22 09:39:15 -05:00