Commit Graph

2116 Commits

Author SHA1 Message Date
PX4 BuildBot 6369ae858a Update submodule matrix to latest Wed Nov 13 22:07:30 UTC 2019
- matrix in PX4/Firmware (d3184c866c3012105c8950a9f6652a9722fa3296): https://github.com/PX4/Matrix/commit/93d42947b612733d2bd05e66ae093ada3e35ba12
    - matrix current upstream: https://github.com/PX4/Matrix/commit/cd185c995b6b28c12e06d20a2743a94bd68be7c2
    - Changes: https://github.com/PX4/Matrix/compare/93d42947b612733d2bd05e66ae093ada3e35ba12...cd185c995b6b28c12e06d20a2743a94bd68be7c2

    cd185c9 2019-11-13 Daniel Agar - add braces around statements and cleanup formatting (#107)
38e966c 2019-11-12 kritz - Add min, max, constrain function for Matrix (#105)
2019-11-13 19:07:24 -05:00
Daniel Agar 7996ee496c lib: name folders consistently 2019-11-13 09:29:21 -05:00
Daniel Agar c5520cbaca mpu9250: start building "NuttX" driver for Linux and QuRT 2019-11-13 09:21:02 -05:00
Daniel Agar 1c4e854f93 cmake don't build param "c" files and remove param defines
- these aren't actual source code
2019-11-11 10:25:42 -05:00
PX4 BuildBot 4dfe3e199e Update submodule matrix to latest Sat Nov 9 00:39:54 UTC 2019
- matrix in PX4/Firmware (c475bb84b7274d041065fc3fd673127ae2438f4d): https://github.com/PX4/Matrix/commit/9f464839510a2779b9418ffbc2303a31f155e851
    - matrix current upstream: https://github.com/PX4/Matrix/commit/93d42947b612733d2bd05e66ae093ada3e35ba12
    - Changes: https://github.com/PX4/Matrix/compare/9f464839510a2779b9418ffbc2303a31f155e851...93d42947b612733d2bd05e66ae093ada3e35ba12

    93d4294 2019-11-08 kritz - Add test for setting Quaternion to Identity (#104)
2019-11-09 00:51:44 -05:00
Daniel Agar 1896c758d0 [SQUASH ME] trivial style fix 2019-11-07 15:57:29 +01:00
Mike Wiatt 3595941554 Reposition landing gear check so that it is not overwritten by setpoint operations. 2019-11-07 15:57:29 +01:00
Tanja Baumann b60a955501 ColPrev: No direction change if no obstacle (#13398)
* only change direction if in other bin
2019-11-07 14:21:12 +01:00
Beat Küng 32359168d6 smbus: fix invalid memory access in read_word()
read_word() expected 3 bytes (uint16_t + PEC byte), but was passed an
address to an uint16_t value.

write_word() is changed to be type-safe as well.
2019-11-07 10:56:27 +01:00
Matthias Grob 1a79f75f94 Commander: start pulling arming related parts into separate folder
* PreFlightCheck: remove unused reportFailures flag
* Commander: pull all pre flight checks together on the PreFlightCheck class
* PreFlightCheck: separate checks into their own files
2019-11-05 11:25:59 -05:00
Julian Oes ef475fa9d8 mixer_module: fix poll error in SITL lockstep
This fixes the case where the mixer_module would subscribe and use its
own test_motor publication which was created only to make sure the
topic is advertised and subsequent updates will work properly.

This happened in SITL lockstep because the timestamp would be 0 at the
very beginning, and hence elapsed time would be 0 as well.
This lead to an actuator publication which would then get lockstep out
of sync causing poll errors on the Gazebo side.
2019-11-05 09:33:14 -05:00
PX4 BuildBot 6e395fe885 Update submodule matrix to latest Tue Nov 5 00:38:36 UTC 2019
- matrix in PX4/Firmware (dca3f78e198f89510890fbb8b305d2fa1c3caa69): https://github.com/PX4/Matrix/commit/92d1c8761ec8e5dbe9ba3f756cebd5e90956a1b2
    - matrix current upstream: https://github.com/PX4/Matrix/commit/9f464839510a2779b9418ffbc2303a31f155e851
    - Changes: https://github.com/PX4/Matrix/compare/92d1c8761ec8e5dbe9ba3f756cebd5e90956a1b2...9f464839510a2779b9418ffbc2303a31f155e851

    9f46483 2019-11-04 Julian Kent - Fix GCC-4.8 bug
445f58d 2019-11-01 Julian Kent - Fix weird C preprocessor conflicts (#101)
215203f 2019-10-23 Julian Kent - Automatic Differentiation 'Dual' Type (#100)
2019-11-04 20:05:43 -05:00
Julian Kent b8b7527d05 Fix off-track tracking in AutoLineSmoothVel (#13321)
* Use position instead of last setpoint

This calculates the target velocities better taking into account disturbances along
the flight route. Previously entry angles and more were calculated assuming the flight path
originates directly from the direction of the previous waypoint. This corrects this assumption
to instead make the direction come from the vehicle location.

* Allow to specify a final speed given a braking distance.

This is to allow planning to not stop at a waypoint, but instead
to reach the waypoint while maintaining a certain velocity

* Updated src/lib/matrix

* Account for speed at target when determining constraints

* Separate constraints into x/y components

* Use setpoint position, not vehicle position

* Fix whitespace, add documentation
2019-11-04 11:57:12 +01:00
Daniel Agar 3e189889ef FlightTasks: shift DEFINE_PARAMETERS to end of access modifiers
- DEFINE_PARAMETERS includes a private access modifier, so we need to
keep these at the end to prevent issues when extending a flight task
2019-11-02 12:41:45 -04:00
PX4 BuildBot f0ac270174 Update submodule ecl to latest Sat Nov 2 13:49:23 UTC 2019
- ecl in PX4/Firmware (4658aaf8a0ff90662843558dbc8ea68adcc7284d): https://github.com/PX4/ecl/commit/9b4b24ee71902c6a4289170e8fb1ca3306c1d9c4
    - ecl current upstream: https://github.com/PX4/ecl/commit/d76b7042251b6f4f230a34dd38818f7af1bb991d
    - Changes: https://github.com/PX4/ecl/compare/9b4b24ee71902c6a4289170e8fb1ca3306c1d9c4...d76b7042251b6f4f230a34dd38818f7af1bb991d

    d76b704 2019-11-01 kamilritz - Only inlcude gtest if standalone build
7c1e38d 2019-10-18 kamilritz - Make it build with Firmware
d79199c 2019-10-17 kamilritz - Remove swig and python test related things
d88e242 2019-10-17 kamilritz - pytest are replaced in gtests
71be26e 2019-10-17 kamilritz - Port RingBuffer Test to GTests
cac5f3f 2019-10-17 kamilritz - GTest and Coverage cleanup and Basic EKF GTest
fcea13e 2019-10-14 Martina Rivizzigno - add gtest, temp disable swig
2019-11-02 10:48:45 -04:00
Beat Küng 3b7c1b4ff1 src/drivers/boards: move to platforms/nuttx/src/px4/common 2019-10-30 11:48:47 +01:00
Beat Küng 3198610f85 src/platforms: move all headers to platforms/common/include/px4_platform_common
and remove the px4_ prefix, except for px4_config.h.

command to update includes:
for k in app.h atomic.h cli.h console_buffer.h defines.h getopt.h i2c.h init.h log.h micro_hal.h module.h module_params.h param.h param_macros.h posix.h sem.h sem.hpp shmem.h shutdown.h tasks.h time.h workqueue.h; do for i in $(grep -rl 'include <px4_'$k src platforms boards); do sed -i 's/#include <px4_'$k'/#include <px4_platform_common\/'$k/ $i; done; done
for in $(grep -rl 'include <px4_config.h' src platforms boards); do sed -i 's/#include <px4_config.h/#include <px4_platform_common\/px4_config.h'/ $i; done

Transitional headers for submodules are added (px4_{defines,log,time}.h)
2019-10-30 11:48:47 +01:00
Daniel Agar 375fc4a75c uavcan module cleanup
- move most orb to uORB::Publication and uORB::Subscription
 - update legacy message handling (warn to PX4_INFO, PX4_WARN, PX4_ERR)
 - add perf counters
 - sensors/mag support newer `uavcan::equipment::ahrs::MagneticFieldStrength2` message
 - sensors/gps support `uavcan::equipment::gnss::Auxiliary` for hdop and vdop
 - sensors delete obsolete ioctl and read methods
 - use PublicationMulti for actuator_outputs and esc_reports (to coexist with other output modules)
 - add GNSS parameter metadata (parameters_injected.xml)
2019-10-28 19:57:50 -04:00
Daniel Agar c284198bec clang-tidy: partially fix hicpp-use-override 2019-10-28 10:50:31 -04:00
Daniel Agar 744f06cc8f clang-tidy: enable readability-delete-null-pointer and fix 2019-10-28 10:50:31 -04:00
Julien Lecoeur 8f910f8435 ATTITUDE_QUATERNION: fill repr_offset_q for tailsitters (#13249)
* Conversions lib: add quaternion getter

* vehicle_status: add flag is_vtol_tailsitter

* ATTITUDE_QUATERNION: fill repr_offset_q for tailsitters
2019-10-28 09:27:53 +01:00
Daniel Agar 380cae18d1 clang-tidy: partially fix modernize-use-equals-default 2019-10-27 19:19:07 -04:00
Daniel Agar 967446af4c clang-tidy: enable readability-simplify-boolean-expr and fix 2019-10-27 19:19:07 -04:00
Daniel Agar 279df3b1b8 clang-tidy: partially fix hicpp-use-equals-delete 2019-10-27 19:19:07 -04:00
Daniel Agar d545825bf0 clang-tidy: enable performance-unnecessary-value-param and fix 2019-10-27 19:19:07 -04:00
Daniel Agar ae27dd60a6 Jenkins re-enable clang-tidy and update .clang-tidy
- device/Device: fix explicit constructor and uninitialized fields
 - systemcmds/motor_test: update NULL to nullptr
2019-10-27 17:19:11 -04:00
Daniel Agar 17b654f165 Update submodule ecl to latest Sun Oct 27 12:38:03 UTC 2019 (#13175)
- ecl in PX4/Firmware (dcfe226638): https://github.com/PX4/ecl/commit/f005e0ea8f33d10dd014a0700e712426540bb58a
    - ecl current upstream: https://github.com/PX4/ecl/commit/9b4b24ee71902c6a4289170e8fb1ca3306c1d9c4
    - Changes: https://github.com/PX4/ecl/compare/f005e0ea8f33d10dd014a0700e712426540bb58a...9b4b24ee71902c6a4289170e8fb1ca3306c1d9c4

9b4b24e 2019-10-17 RomanBapst - removed unused definition
0e3a0b8 2019-10-15 RomanBapst - range_finder_checks: parametrised signal quality hysteresis duration
16d1e15 2019-10-15 RomanBapst - addressed review comments
6bc6f26 2019-10-14 RomanBapst - range_finder_checks: set range height to valid if signal quality is non-zero
6299d81 2019-10-14 RomanBapst - ekf_helper: use latest validated range sample to reset height
00f49e6 2019-10-14 RomanBapst - cleanup checks of range finder data
4d37065 2019-08-22 Paul Riseborough - EKF: Make use of inverse rotation function consistent with name
36de2b3 2019-08-22 Paul Riseborough - EKF: Use matrix library for quaternion to rotation matrix conversion
1a4ab06 2019-10-22 bresch - rate controller: add override specifiers whenever needed
29f71ff 2019-10-21 bresch - ekf: Add override specifier for all functions that override virtual functions of the estimator interface class
50167bf 2019-10-16 bresch - estimator interface: add deprecated functions for backward compatibility
b38458c 2019-10-10 bresch - Terrain estimator: formatting and remove redundant comments
0aef0ed 2019-10-10 bresch - terrain_estimator: remove dead code. Since the terrain estimator is constantly reset on ground, it is not necessary anymore to fuse fake measurements on ground if the range measurements are bad.
370e04e 2019-10-03 bresch - terrain_est: Continuously reset terrain height on ground using known clearance. This is the best estimate as we should not rely on a distance sensor while on the ground. This also helps when the drone is carried over as it avoids starting with a crazy downward distance for optical flow scaling.
e09e3e1 2019-10-14 bresch - control: rename _range_aid_enabled to _is_range_aid_suitable rename rangeAidConditionsMet to checkRangeAidSuitability
fac69d0 2019-10-14 bresch - control: refactor rangeAidConditionsMet function
eae6e8f 2019-08-06 Paul Riseborough - EKF: Fix on ground yaw drift when using EKF2_MAG_TYPE = 4
4e946d5 2019-09-04 RomanBapst - implemented synthesized magnetometer Z measurement - calculate a theoretical value based on the knowledge of the direction and strength of the magnetic field vector and X/Y sensor measurements - needs knowledge about location on earth to work
2019-10-27 11:24:26 -04:00
bresch bdc546b2e0 AutoLineSmoothVel: fix constrain priority for autocontinue.
The constrainAbs function was not prioritizing the minimum value
that produces the autocontinue behaviour. This caused zig-zag
paths when the waypoints were almost -but not exactly- aligned.
2019-10-26 08:34:30 +02:00
Hamish Willee 564b29c0f8 Fix incorrect default for parser 2019-10-24 19:00:17 -07:00
Hamish Willee a904f78fad Parameter parser/markdown includes boolean flag 2019-10-24 19:00:17 -07:00
Matthias Grob 79334958a9 WeatherVane: only update with last row of rotation matrix 2019-10-24 14:58:57 +02:00
Matthias Grob 9c25b987bc vehicle_local_position_setpoint: make acceleration and jerk arrays 2019-10-24 14:58:57 +02:00
Beat Küng bc09a872fa mixer_module: do not enter test mode if kill switch is engaged 2019-10-24 09:27:29 +02:00
Beat Küng 285ae608a5 commander: add support for DO_MOTOR_TEST
- add an optional timeout to test_motor
- enforce a timeout when receiving DO_MOTOR_TEST
- limitation: DO_MOTOR_TEST can only control the MAIN outputs
2019-10-24 09:27:29 +02:00
Daniel Agar 35398e05ca perf counter cleanup (mostly intervals)
Some of these perf counters were useful during initial development, but realistically aren't needed anymore, some are redundant when we can now see the average interval from `work_queue status` and some of them simply aren't worth the cost at higher rates.
2019-10-21 18:54:17 -04:00
Beat Küng f956bafa4e MixingOutput: remove safety button check
The assumption is that the system can only ever get into armed state if
the safety button is already off.
2019-10-21 09:42:08 +02:00
Beat Küng a8f6622831 OutputModuleInterface::updateOutputs return bool to control actuator_outputs pub
Required for pwm_out_sim: only publish actuator_outputs when we get
actuator_controls. Otherwise lockstep startup does not work.
The issue was there before but hidden, due to a long poll timeout.

Works with HIL too.
2019-10-21 09:42:08 +02:00
Beat Küng 380247168d mixer_module: avoid using an enum as px4::atomic argument
Does not compile on MacOS.
2019-10-21 09:42:08 +02:00
Beat Küng 0871802568 mixer_module: add support for test_motor (motor_test CLI command) 2019-10-21 09:42:08 +02:00
Beat Küng 349469cf75 refactor pwm_out_sim: use mixer_module and run on work queue
Tested with SITL + HITL
2019-10-21 09:42:08 +02:00
Beat Küng 2837152983 refactor mixer_module: move some code in update() into separate methods 2019-10-21 09:42:08 +02:00
Beat Küng 72a8be538a mixer_module: more robust logic to set 'stop_motors' flag
Checking the first output_limited for a disarmed value is fragile.
For example a disarmed value might be within the range of min/max output
values and could then be triggered while armed.
2019-10-21 09:42:08 +02:00
Matthias Grob 22c4bb498c FlightTaskDescend: set no vertical thrust when commanding velocity 2019-10-18 16:18:19 +02:00
Julian Oes de90543d6f FlightTasks: add Descend task to land without GPS
This adds a flight task to catch the case where we want to do an
emergency descent without GPS but only a baro.

Previously, this would lead to the navigator land class being called
without position estimates which then made the flight tasks fail and
react with a flight task failsafe. This however meant that landed was
never detected and a couple of confusing error messages.

This applies if NAV_RCL_ACT is set to 3 "land".
2019-10-18 16:18:19 +02:00
Tanja Baumann be1f966e5f Collision prevention: Option to enable flying outside FOV and rename parameters (new CP group)
* rename parameters to allow more descriptive names under CP group
* add option to enable moving where there is no data
* add test for param CP_GO_NO_DATA

Co-Authored-By: Martina Rivizzigno <martina@rivizzigno.it>
2019-10-17 11:23:50 -04:00
Daniel Agar 6ccb4af8b0 CollisionPrevention: remove unnecessary double precision floating point math 2019-10-17 08:44:33 +02:00
Daniel Agar e942d3a3b2 FlightTasks: remove unnecessary double precision floating point math 2019-10-17 08:44:33 +02:00
Beat Küng 617f37afbf mixer_{multicopter,helicopter}: add buffer size check
Fixes a potential buffer overflow if an MC/helicopter mixer is used that
exceeds the number of physical pins.
This is not a useful/flyable configuration, but the system still should
not crash.
2019-10-16 13:13:17 +02:00
Matthias Grob 068f56d66f FlightTasks: fix switchTask() comment typo 2019-10-14 15:07:09 +02:00
Beat Küng 82106105b7 parameters: defer auto-saving to after disarming for flash-based params
This is especially important for DShot, that does not update when the CPU
stalls.
2019-10-11 08:14:17 +02:00