Commit Graph
748 Commits
Author SHA1 Message Date
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
David Sidrane 6fcc4cc6a2 WIP Digital PM Support 2019-06-26 14:34:02 -04:00
Daniel Agar 528d2f61a0 sensors partially move to new uORB::Subscription 2019-06-06 19:07:17 -04:00
bresch d5298fccbd PWM_REV - Clarify use case. The user shoul not be tempted to use that
parameter to reverse the direction of a rotor.
2019-06-05 09:10:06 +02:00
Daniel Agar 2c63e335e9 uORB::Subscription subscribe directly to uORB device node object 2019-06-03 17:06:21 -04:00
bresch 6d8d8e3c88 MC gyro cutoffs - Reduce IMU_GYRO_CUTOFF to 30Hz and disable MC_DTERM_CUTOFF.
A low gyro cutoff is needed for most medium/large size drones as the structural natural and blade-pass frequencies are low.
A higher value is still desirable for small platforms surch as racers
or well isolated autopilots and should be tuned by the user.
Specific values for config files are untouched.
The cutoff filter for the D term is disabled here as the required
cutoff frequency for the default D term of the rate controller is higher
than the gyro cutoff. In that case, enabling the D term cutoff would
just add some undesired phase lag to the derivative.
2019-05-07 12:15:51 +02:00
Roman d36c0e131d added aux6 RC channel
Signed-off-by: Roman <bapstroman@gmail.com>
2019-04-03 08:20:47 -04:00
Daniel Agar 88fd8147fd commander auto disarm if kill switch engaged for 5 seconds
- closes #10133
2019-02-20 18:37:20 +01: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
Julian Oes 1165739a56 sensors: check other gyros on timeout
@bkueng reviewed this and found that it is dangerous to continue on
timeout because we don't update other gyro sensors in the timeout case.
2018-12-22 10:32:18 +01:00
Julian Oes 9b7857315c sensors: handle timeout 2018-12-22 10:32:18 +01:00
Julian Oes 5b9dea5604 Replacing usleep with px4_usleep
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
Daniel Agar 3e0a3559a9 cmake use standard mechanisms for settings flags 2018-11-26 14:40:14 -08:00
Daniel Agar ac04db6084 delete unnecessary drv_px4flow.h 2018-11-06 07:43:43 +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
MaEtUgR 4f0e090e88 drv_rc_input: replace useless rc_input_values define 2018-09-21 16:26:27 +02:00
bresch 740e409016 PWM - Add PWM_MIN and PWM_MAX parameters for MAIN and AUX (#10452) 2018-09-16 18:07:29 -04:00
Daniel Agar 1a0472dfab sensors increase MAIN stack 2018-09-02 15:31:54 -04:00
bresch 04c765f497 Failsafe PWM - Add PWM_MAIN/AUX_FAILx parameters to set "failsafe" values. 2018-08-28 11:23:25 -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
Daniel Agar c415477caf calibration parameter category consistency 2018-08-03 16:48:49 +02:00
mcsauder ac8f44268b Added remaining two channels of PWM_AUX_DIS disarm parameter set commands, remove trailing whitespace from pwm_params_aux.c and pwm_params_main.c, gps/params.c and added block comment headers to separate sections instead of whitespace. 2018-07-30 09:36:44 +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 875ee794ef sensors: do not advertise topics before we have valid data
Modules generally do not check for a valid timestamp, thus we need to avoid
publishing invalid data.

This is for example problematic in the attitude_estimator_q, if the
system has no mag: it will copy the (invalid) data and then fails to
initialize, as there is no more mag data coming in.
2018-07-23 22:32:17 +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 8985403c00 FMU relocate MOT_SLEW_MAX and THR_MDL_FAC parameters centrally 2018-07-17 19:59:41 -04:00
Daniel Agar c26ca49f36 PWM parameters centralize under sensors and add aux 7&8 2018-07-17 19:59:41 -04:00
Daniel Agar 3b580514ae delete unused airspeed.true_airspeed_unfiltered_m_s 2018-07-16 01:09:19 -04:00
Daniel Agar 9a4de09325 sensors remove airspeed negative check 2018-07-16 01:09:19 -04:00
Daniel Agar 9ce83f2208 fix all sign-compare warnings 2018-07-01 09:36:55 +00:00
Daniel Agar 3ba97297d5 tests simple timing microbenchmark 2018-07-01 09:25:22 +00:00
Beat Küng 02fc68a53e commander arming: disable stick (dis-)arming when arming switch/button is used
A reason for using switch arming in the first place is that you cannot
accidentally disarm in-air with the sticks during acrobatic flights.

It also adds a low-throttle arming requirement for switch arming.
2018-06-27 10:41:21 +02:00
Beat Küng f241e49ebf voted_sensors_update: initialize _last_magnetometer & _last_airdata 2018-06-13 16:19:34 +02:00
Beat Küng 226d7c79da sensors: initialize adc only if BOARD_NUMBER_BRICKS > 0
Fixes the SITL startup error:
ERROR [sensors] no ADC found: /dev/adc0 (9)

Introduced in 8404889098
2018-06-13 15:54:45 +02:00
Daniel Agar 20aabd3566 move systemlib/airspeed to standalone lib 2018-06-12 09:06:30 +02:00
Daniel Agar d73d20bcce systemlib delete unused systemlib.h 2018-06-12 09:06:30 +02:00
Mohammed Kabir 7f1686171b sensors : add parameter for maximum flow rate 2018-06-09 13:38:04 +02:00
Mohammed Kabir b3c5e53333 Unify optical flow height limiting 2018-06-09 13:38:04 +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