Commit Graph
798 Commits
Author SHA1 Message Date
Mohammed Kabir 51b23f0b57 sensors : add parameters for 4th mag into used parameters list 2017-06-14 19:53:07 +02:00
Beat Küng ce7d8d2270 sensor_mag.msg: add is_external flag & set it in the mag drivers
With this we don't have to use the ioctl MAGIOCGEXTERNAL, which does not
work on POSIX (eg. RPi).
2017-06-14 19:53:07 +02:00
Beat Küng ba3d66abba voted_sensors_update: fix invalid/stale mag data on posix
Problem: _mag_device_id is used to get the correct rotation matrix for each
mag. But on POSIX, _mag_device_id was always 0, leading to invalid rotation
matrices.
This resulted in stale mag error messages (rot matrix=0 ==> mag data=0).
_mag_device_id was 0 because there are no /dev/magX devices (eg. on RPi),
thus the mag driver could not be opened.

This patch does: get the device id from the uorb topic instead. We still
need the device handle on certain platforms to apply the calibration params
and to check if the mag is internal or external.

Problem left: on POSIX, the check for external mag does not work.
2017-06-14 19:53:07 +02:00
Beat Küng 76f593afb0 fix voted_sensors_update: remove DevMgr::releaseHandle(h);
the 'continue' continues with the inner loop, whereas the outer loop is
responsible for opening the handle. Thus the inner loop needs to keep it
open.
2017-06-14 19:53:07 +02:00
Beat Küng af6846b9a8 fix voted_sensors_update: use int32 for param_get() 2017-06-14 19:53:07 +02:00
Beat Küng ce27e75a76 sensors: better status output 2017-06-14 19:53:07 +02:00
Lorenz Meier d104f984d4 Sensors: print airspeed validator status 2017-06-11 11:19:25 +02:00
Kabir Mohammed 5cbaaa633b FINALLY fix mag rotation issues. (#7366)
* sensors : second cut at fixing mag calibration - remove old problematic code

* sensors : use more intuitive naming for loop variables
2017-06-07 10:49:57 +02:00
davidaroyer 99799d83b1 ocpoc support: update copyright dates 2017-06-04 04:24:50 +08:00
davidaroyer a236bd1015 sensors: add support for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
Daniel Agar 5d626bd940 clang-tidy remove redundant init 2017-06-02 19:35:18 -04:00
Mohammed Kabir 0cb3eb99dc sensors : correctly handle internal magnetometer rotations 2017-06-03 02:16:58 +08:00
Mohammed Kabir 49890c61f5 sensors : require reboot for all sensor orientation changes 2017-05-27 00:31:05 +02:00
Mohammed Kabir 62b7645130 sensors : remove deprecated (since 2015) mag rotation parameter 2017-05-27 00:31:05 +02:00
Mohammed Kabir 6ee09ca16f sensors : map between driver rotation order and uORB instance order when recieving first mag message 2017-05-27 00:31:05 +02:00
Nicolae Rosia 32498009a3 navio_adc: add driver for Navio2 ADC
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-14 17:51:02 +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
Daniel Agar f04f1d6b03 sensors HIL increase gyro and accel timeout
- fixes #7050
2017-04-25 23:52:11 +02:00
Beat Küng 0d22e97c09 sensor_params: document PWM_RATE=0 for Oneshot125 2017-04-25 12:59:12 +02:00
Mohammed Kabir 57aa41df2c sensors : decouple maximum sensor count and allow flexible maximums 2017-04-24 12:24:11 +02:00
Mohammed Kabir f0accd39f0 sensors : add support for 4th magnetometer 2017-04-24 12:24:11 +02:00
Mohamed Abdelkader Zahana 60e0ca9321 add both options (pwm/i2c) for lidar lite 2017-04-23 23:29:10 +02:00
Mohamed Abdelkader Zahana 9911a55393 use i2c for lidar lite 2017-04-23 23:29:10 +02:00
Daniel Agar c86185d4be sensors init CAL_ACC0_ID and CAL_GYRO0_ID for QGC 2017-04-18 10:54:19 +02:00
Daniel Agar 4b8bedef48 avoid double promotions 2017-04-01 20:19:28 +02:00
Beat Küng 9597e708df sensors: remove sensors_init
The initialization code is redundant and incomplete (only the first sensor
is done). I verified that all drivers already set this on startup.
For the mags, they all set their maximum supported update rate.
For the baro, the call can silently fail, as for example the MS5611 which
does not support 150Hz update. But it also sets the maximum in
initialization.

Tested on Pixhawk & pixracer.
2017-03-10 11:28:41 +01:00
Beat Küng af1984ac07 sensors: do not warn about baro in HIL mode 2017-03-10 09:00:24 +01:00
Beat Küng bc91005e7a voted_sensors_update: increase accel & gyro timeout in HIL mode 2017-03-10 09:00:24 +01:00
Beat Küng aabdc4125b ekf2: publish ekf2_timestamps topic 2017-03-04 22:47:54 +08:00
Beat Küng 881f2d2d36 sensors: add 'sensors start -hil' parameter
This does the following if given:
- don't initialize the sensors (the sensor drivers are not started)
- publish sensor_combined even in hil mode
- do not apply or publish thermal corrections
2017-03-04 05:59:10 +08:00
Beat Küng f43f3baa02 ATT_VIBE_THRESH param: move the definition of this param to sensors
since it's only used in sensors module (otherwise it could get pruned)
2017-02-25 11:02:15 +01:00
Andreas Antener a5f3f65c2b Switch assignment: added manual and stabilized switch for a default stabilized switch scheme, let FW go into Acro 2017-02-18 08:03:19 +01:00
Paul Riseborough 9858b0b491 sensors: Add calibration control parameters to QGC list 2017-02-12 09:21:37 +01:00
Daniel Agar 80c8130f07 sensors true airspeed fix
- _voted_sensors_update.baro_pressure() is already in pascals
2017-02-09 21:29:03 +01:00
Matthias Grob 9e80a6c9d6 sensors: rc filter no unstable cutoff, better initialisation, reset filter on change, constrain output
Filter gets unstable if cutoff is above sample rate/2.
Filter initial frequencies do not matter a lot because they get replaced by parameters anyways.
Filter delay values get reset to 0 when the filter is reconfigured otherwise there can be some weird spikes in the output.
Filter output gets constrained to the range again because of possible overshoot.
2017-02-02 21:24:05 +01:00
Matthias Grob 81dcba3a2a sensors: rc added low pass filter parameters 2017-02-02 21:24:05 +01:00
Matthias Grob d991285406 sensors: rc filter: added sample rate of 33.3Hz and lowpass cutoff 5Hz hardcoded for testing 2017-02-02 21:24:05 +01:00
Matthias Grob 27a4ce2691 sensors: rc added lowpass filters to the 4 main channels without useful samplerate and cutoff frequency yet 2017-02-02 21:24:05 +01:00
Matthias Grob a14dbdcfdb sensors: rc refactored min max ifs to constrain 2017-02-02 21:24:05 +01:00
Daniel Agar 6631e72d6f clang-tidy modernize-redundant-void-arg 2017-02-01 22:15:50 -05:00
Beat Küng 80c348d3b0 temperature_compensation: fix return value for set_sensor_id
got dropped during rebase cleanup
2017-02-01 08:40:23 +01:00
Beat Küng 4f6e379e50 temperature_compensation: use const for reference 2017-02-01 08:40:23 +01:00
Paul Riseborough 7d8ce9ab9c sensors: Fix bug in temperature offset calculation 2017-02-01 08:40:23 +01:00
Beat Küng e31958cad1 voted_sensors_update: don't report failover if previous index is invalid 2017-02-01 08:40:23 +01:00
Beat Küng 4a8d29800c voted_sensors_update: cleanup & remove some attributes
since the correction topic now contains data from all sensors, we don't
need additional fields in voted_sensors_update
2017-02-01 08:40:23 +01:00
Beat Küng 6ee3c1a117 temperature_compensation: fix copy-paste error (max_temp was not initialized) 2017-02-01 08:40:23 +01:00
Beat Küng 75be1abc4c temperature_compensation: make sure to reset temperature when params change
Makes sure that the offsets & scales are updated and published later on.
2017-02-01 08:40:23 +01:00
Paul Riseborough bdd3b094a7 sensors: report mapping from uORB to compensation parameter index 2017-02-01 08:40:23 +01:00
Paul Riseborough 8b1a5461c4 sensors: Update documentation 2017-02-01 08:40:23 +01:00
Paul Riseborough f2f5034832 sensors: prevent high frequency updating of sensor corrections
The use of a float to integer cast was causing high frequency reporting when the float value was close to the rounding boundary.
2017-02-01 08:40:23 +01:00