Commit Graph

13526 Commits

Author SHA1 Message Date
RomanBapst 133a6e38cc commander: make battery warning state sticky while armed
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2019-11-29 10:23:08 +03:00
baumanta 1c30b10585 prevent vmount from publishing mount orientation if smart gimbal is attached 2019-11-29 07:40:16 +01:00
Matthias Grob 633469dd8c FixedWingPositionControl: ommit */ with ///< doxygen comments 2019-11-28 11:21:05 -05:00
Julian Oes d27694728b mavlink: remove implicit cast from int to bool
It confused me that we used an int result and casted it into a boolean.

This doesn't change the logic but makes handling the return value explicit.
2019-11-27 10:10:07 -05:00
Julian Oes c5b9ccdc85 mavlink: don't interfere in ongoing transfers
As a convenience we send down the amount of do jumps left to do.
However, we should not send the mission item if happen to be in the
middle of another transfer.
2019-11-27 10:10:07 -05:00
Julian Oes 96fc68ebef mavlink: fix warning on do jump
This fixes the warning:
Mission storage: Unable to read from microSD
which appeared on do jump mission items. The reason was that the
_mission_type can be set to rally or geofence if that was the last
transfer which had happened earlier. Therefore, it would then try to
read a certain rally item from dataman when really a mission item was
supposed to be read.
2019-11-27 10:10:07 -05:00
Daniel Agar b1099379ae mavlink: delete SERVO_OUTPUT_RAW_{2, 3} 2019-11-27 09:30:22 -05:00
Daniel Agar 657138aeb0 mavlink: temporarily disable ACTUATOR_CONTROL_TARGET{1, 2, 3} 2019-11-27 09:30:22 -05:00
bresch 09c8c8f706 ekf: use PDOP instead of GDOP as TDOP (part of GDOP) is not given by the GNSS receiver 2019-11-27 10:33:27 +01:00
bresch 20705e3c53 ekf2_main: simplify "if true else false" with direct boolean assignment 2019-11-27 10:33:27 +01:00
bresch f6a72663fa ekf2_main: extract gps mgs fill 2019-11-27 10:33:27 +01:00
bresch 5d6e0587db ekf_main: fill gps gdop topic with pdop (combination of hdop and vdop) 2019-11-27 10:33:27 +01:00
daniele 07938692d4 fix for issue where flight_uuid in flight_information mavlink message wouldn't update at every disarm because the param update was not notified 2019-11-27 07:48:57 +01:00
TSC21 806b0ad10d remove microRTPS_client_dummy.cpp as it's not being used 2019-11-26 09:01:52 +01:00
TSC21 c9aab6319f microRTPS: update headers licenses 2019-11-26 09:01:52 +01:00
TSC21 a48c5942a7 remove 'update_time_ms' CLI option as it's not being used anymore 2019-11-26 09:01:52 +01:00
bresch 12177cb33b commander: add pre-flight check and parameter for magnetic field strength 2019-11-25 21:15:55 +01:00
Daniel Agar a8ea55d9b6 remove all <cmath> usage
* the NuttX c++ library is incomplete, let's avoid including it until we have a real standard library in place
2019-11-25 10:04:04 -05:00
bresch ffee103ae0 FlightTask: add 1st order lpf on yawrate satepoint for smooth motion 2019-11-25 11:55:47 +01:00
TSC21 4c5e5acefe micro-CDR: bump submodule version and update CMake and src code 2019-11-24 19:36:00 -05:00
TSC21 d80da97ef5 micrortps_client: more cleanup 2019-11-24 21:39:01 +00:00
TSC21 ec0803815e microRTPS_client: use updated uORB API; improve usage 2019-11-24 21:39:01 +00:00
Daniel Agar bc182e94e6 sensors split rc_update into new standalone module 2019-11-24 13:25:11 -05:00
Matthias Grob 28755d5bbf att_control: remove resetting the attitude setpoint
since the position controller publishes them again already when disarmed.
2019-11-24 11:06:03 -05:00
Matthias Grob d3bd251ffc mc_pos_control: start flight task already when disarmed
such that the controller always publishes attitude setpoints and there are no initialization issues.
2019-11-24 11:06:03 -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
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
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 79dc676c8f mixer: move MixerGroup out of Mixer hierarchy and delete mixer.h header 2019-11-22 15:00:25 -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
Silvan Fuhrer 5b235c34c2 Rally Points: enable rally points always, except for RTL type == RTL_MISSION
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2019-11-22 08:18:25 +01:00
Matthias Grob dee8d200d8 mc_pos_control: fix position setpoints being logged as zero when NAN (#13557)
This issue was found by @khabir and reported over slack.
It resulted from the split up of the big pr #12072 into #13262.
I took over the interface while the internal states still stayed the
hard to understand internal ones. One of the follow up refactors will
fix this completely and the entire legacy setpoint restore block can
be removed.
2019-11-21 16:03:13 -05:00
Silvan Fuhrer ebdc29bc5f Airspeed Selector: enable airspeed_validated in control modules (#12887)
* FW attitude controller, FW position controller and VTOL attitude controller subscribe to airspeed_validated topic
* add possibility to switch off the airspeed valid checks
* remove airspeed valid checks from commander
* clean up of VTOL transition logic
* Airspeed Selector: remove dynamic allocation of airspeed validators (depending on number of connected sensors) but do it statically for the maximum number allowed. Check for number of connected sensors not only during start up, but always when vehicle is disarmed.
* Airspeed Selector: change work queue from lp to att_pos_ctrl as this module is safety-critical
* add airspeed selector to px4_fmu-v2 defaults
2019-11-21 14:14:25 -05:00
Daniel Agar 45b32b5eaa dataman: add read and write perf counters 2019-11-21 11:10:35 -05:00
Beat Küng 1371887578 board config: add define for adc voltage scaling 2019-11-21 08:19:59 +01:00
Beat Küng 4b290c4903 voltage & current scaling: use px4_arch_adc_dn_fullcount() instead of 4096
Fixes the scaling on h7 boards (the ADC has 16 bits resolution).
2019-11-21 08:19:59 +01:00
Matthias Grob b63044393e PositionControl: remove unwanted debug printfs 2019-11-21 00:52:09 +01:00