Commit Graph
87 Commits
Author SHA1 Message Date
Beat Küng 5ff83ef740 gyro calibration: remove unused scale parameters 2019-11-29 11:28:17 -05:00
Matthias Grob b8f70e865c voted_senors_update: remove memset 0 initializations because of zero initializer in header 2019-10-15 10:01:03 -04:00
Dusan Zivkovic b6f21fa76e voted_sensors_update: fix style 2019-10-10 10:31:56 +02:00
Dusan Zivkovic 316a188e8e voted_sensors_update: parameter CAL_*_EN enables sensor with id CAL_*_ID 2019-10-10 10:31:56 +02:00
Dusan Zivkovic d3e79c4726 voted_sensors_update: set priority properly in case of late mag subscriptions or sensors enabled param changes 2019-10-10 10:31:56 +02:00
Julian Kent 2d4ecab3b0 Remove unsafe access to .data() and _data in Matrix 2019-09-18 22:01:36 -04:00
Daniel Agar 20e6adc4ca sensors: update orb_publish to uORB::Publication<> 2019-09-02 20:44:03 -04:00
Matthias Grob 161429f8c6 voted_sensors_update: refactor to camelCase function names 2019-08-07 18:44:39 +02:00
Matthias Grob fe37ee2b7f voted_sensors_update: refactor out matrix:: because of using namespace 2019-08-07 18:44:39 +02:00
Matthias Grob 45187e1aa8 Improve magnetometer inconsistency check
To check directional difference between the magnetometer field vectors
instead of vector component difference.
2019-08-07 18:44:39 +02:00
Daniel Agar e69398c09f introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
Burak Saruhan 7789e2de88 sensors: mag reload calibration parameters when first seen (#12586)
* fixes UAVCAN MAG calibration application after reboot
2019-07-31 15:22:59 -04:00
Daniel Agar 2c63e335e9 uORB::Subscription subscribe directly to uORB device node object 2019-06-03 17:06:21 -04:00
Julian Oes 4dea79b2d6 sensors: prevent double orb_copy of gyro topic
By using the uORB::Subscription API we use a separate subscription
rather than `orb_copy` on the existing file descriptor used in
sensors through `px4_poll`.

This fixes a very peculiar problem that we observed in SITL in CI for
fixedwing. The events were as follows:

1. `sensors` does `px4_poll` on the gyro topic (as normal), and gets
   the latest sample using `orb_copy`.
2. A parameter update happens when the mag is initialized and triggers
   `VotedSensorsUpdate::parameters_update()` where `orb_copy` happens
   before the main loop in `sensors` has started a `px4_poll`.
3. `sensors` now does the `px4_poll`, however waits indefinitely because
   it has already copied the latest sample.
   Also, the `px4_poll` will never time out because in lockstep the
   simulator waits for the next actuator control message which it never
   gets and therefore it never sends the next sensor message with a new
   timestamp to advance the time.

This only happens for fixedwing because there is only one "uORB path"
through the system unlike for multicopter where a gyro sample can get
picked up by either `sensors` or directly `mc_att_control`, so the
system can survive if `sensors` has "drops".
2019-02-18 11:44:07 -05:00
Daniel Agar 3e0a3559a9 cmake use standard mechanisms for settings flags 2018-11-26 14:40:14 -08:00
Daniel Agar 571364c617 delete baro_report (alias for sensor_baro_s) 2018-11-06 07:43:43 +08:00
Daniel Agar acc24da0c2 delete gyro_report (alias for sensor_gyro_s) 2018-11-06 07:43:43 +08:00
Daniel Agar 2a83a40491 delete accel_report (alias for sensor_accel_s) 2018-11-06 07:43:43 +08:00
CarlOlsson cd382d8874 voted_sensors_update: fix typo 2018-10-22 09:26:06 -04:00
Bob-F 627ea3b23e update according to pull request review comments 2018-08-06 13:32:36 +02:00
Bob-F 2ece14bad1 Port PX4 to BeagleBone Blue Board using library librobotcontrol instead of a submodule 2018-08-06 13:32:36 +02:00
Julian Oes 80cac6561f sensors: no temperature compensation in HITL
Temperature compensation is not supported in HITL. Therefore, don't try
and fail. This basically removes the confusing error message that we get
in HITL.
2018-07-24 18:56:36 +02:00
Beat Küng c166ea9ed5 sensors: fix potential busy loop when a gyro driver is stopped
When a gyro driver is stopped, the topic is unadvertised and
orb_group_count() returns a smaller count. This can have the effect, that
we poll on a certain gyro fd, but since _gyro.subscription_count is reduced
we never do the orb_copy for that fd.

This cannot happen when armed. And only someone playing with the shell
can trigger it (sensor failures do not have that effect).
2018-07-18 08:10:13 +02:00
Beat Küng 891a09f488 sensors: make sure to do an orb_copy, even if a gyro is disabled
This makes sure that poll() never returns immediately.
accel & mag are only updated to keep the code in sync.
2018-07-18 08:10:13 +02:00
Daniel Agar 9ce83f2208 fix all sign-compare warnings 2018-07-01 09:36:55 +00:00
Beat Küng f241e49ebf voted_sensors_update: initialize _last_magnetometer & _last_airdata 2018-06-13 16:19:34 +02:00
Philipp Oettershagen e12b470cac Subsystem_info status flags & checks: Small fixes according to @bkueng's review 2018-06-06 18:54:24 +02:00
Philipp Oettershagen 0b71c52225 Subsystem_info status flags & checks: Suppress sensor failover warnings in Hardware in the loop (HITL) 2018-06-06 18:54:24 +02:00
Philipp Oettershagen 302cb0a285 Subsystem_info status flags & checks: Moved the set_health_flags helper functions out of the /lib/ folder and into the module/commander folder because they are actually only needed there 2018-06-06 18:54:24 +02:00
Philipp Oettershagen bd2af289f5 Subsystem_info status flags & checks: Code style fixes and cleanup to avoid strcmp() as suggested by @LorenzMeier 2018-06-06 18:54:24 +02:00
Philipp Oettershagen e4d863b95f Subsystem_info status flags & checks: Separate the functionality to a) set the health flags inside commander and b) to publish them from external modules 2018-06-06 18:54:24 +02:00
Philipp Oettershagen 075009be2f Subsystem_info status flags & checks: 1) Set health flags in commander directly instead of publishing via uORB 2) move publish_subsystem_info into lib/ folder" 2018-06-06 18:54:24 +02:00
Philipp Oettershagen 6f1f414b49 Subsystem_info status flags & checks : Initial commit, updating the health flags in a centralized way mostly in commander and the votedSensorsUpdate function. 2018-06-06 18:54:24 +02:00
alessandro 3ed093ba59 Add baro temperature to sensor voter observation (#9411)
When determining the confidence of a barometer sensor, we should
consider the temperature as well, alongside the pressure.
Low-noise baros can show the same pressure reading for a second
or two when not moving and in an indoor location.
2018-05-04 12:40:10 -04:00
Daniel Agar 3b5b12e1d1 move baro and magnetometer data out of sensor_combined 2018-04-11 23:26:58 -04:00
Daniel Agar 5dc23def2a move pressure altitude from baros to sensors module 2018-04-11 23:26:58 -04:00
Beat Küng a8645b51d5 voted_sensors_update: reduce flash usage by allowing compiler to dedup equal strings
reduces roughly 130 bytes. Almost enough to pass CI.
2018-04-11 07:47:06 +02:00
Daniel Agar 3a0a896a9c sensors move to matrix lib 2018-03-22 08:17:32 +01:00
Lorenz Meier c31e31bf5e Voted sensors: Better error messages 2017-12-30 11:24:22 +01:00
Daniel Agar ed7f333fe8 sensors delete disabled ATT_VIBE_THRESH (#8372) 2017-11-26 17:25:45 -05:00
Daniel Agar fabab8ac4d sensors remove barometer enabled check for now 2017-11-15 01:34:59 -05:00
Daniel Agar 273742aa0d add boolean parameters to enable/disable each sensor 2017-11-14 15:54:37 -05:00
Daniel Agar 21995bd4b7 sensors ignore invalid failover index
- fixes CID 199478
2017-10-31 08:10:04 +01:00
Paul Riseborough b3d045d4d0 Revert "add boolean parameters to enable/disable each sensor"
This reverts commit 9fde19259e.
2017-10-30 20:49:36 +11:00
Daniel Agar 9fde19259e add boolean parameters to enable/disable each sensor 2017-10-29 16:24:31 +01:00
Daniel Agar 2a1ecaa13e sensors reduce priority of a failed sensor 2017-10-29 16:24:31 +01:00
Paul Riseborough 60a68d30c7 sensors: Calculate and publish magnetometer inconsistency 2017-10-05 09:30:26 -07:00
Daniel Agar e15afcca7a vehicle_command commands are uint16, not uint32 2017-09-08 09:06:30 +02:00
Lorenz Meier 576ad4b521 Sensors update: use correct constants 2017-08-01 12:46:59 +02:00
Nicolae Rosia 0a22a9c47c change gyro & accel dt from float to uint64. This has the benefit of
calculating the estimator timeslip correctly.

Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-07-16 14:08:37 +02:00