Commit Graph
100 Commits
Author SHA1 Message Date
Matthias Grob 1a5b06d0cf FlightTasks: refactor NAN initializations, spacing 2019-12-18 15:57:48 +01:00
Matthias Grob ab4473319a Takeoff: add proper unit test 2019-12-18 15:57:48 +01:00
Matthias Grob 42dbddb156 mc_pos_control: adopt to module internal include convention 2019-12-18 15:57:48 +01:00
Matthias Grob 2303071df4 PositionControl: simplify constraint conditions 2019-12-18 15:57:48 +01:00
Matthias Grob 121d743049 PositionControl: clear setter interface naming, order, description 2019-12-18 15:57:48 +01:00
Matthias Grob a3d30fc970 mc_pos_control/FlightTask: apply nit-pick review findings 2019-12-11 14:03:16 +01:00
Matthias Grob 904ab16558 Fix trailing whitespace, EOF newline, indentation 2019-12-09 13:22:19 +01:00
Matthias Grob 633469dd8c FixedWingPositionControl: ommit */ with ///< doxygen comments 2019-11-28 11:21:05 -05:00
Matthias Grob 4a28c8180b FlightTaskManualAltitude: yawspeed filter remove line with no effect, comments
FlightTaskManualAltitude: declaration order

Addressing @bkueng's review comments.
2019-11-25 11:55:47 +01: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
Matthias Grob 6589aa5f71 posix rcS: remove overwriting default altitude 2019-11-22 13:36:05 -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
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
Matthias Grob b63044393e PositionControl: remove unwanted debug printfs 2019-11-21 00:52:09 +01:00
Matthias Grob 1bef35d843 PositionControl: correct float initialization literals
according to @bresch's review
2019-11-20 11:42:09 +01:00
Matthias Grob bd491c8511 PositionControl: add unit tests for directions and limits 2019-11-20 11:42:09 +01:00
Matthias Grob 25a445d5f8 PositionControl: remove parameter dependency
to make the class easier to understand,
more modular and easily unit testable
2019-11-20 11:42:09 +01:00
Matthias Grob b64abf48b2 mc_pos_control: reset velocity derivatives 2019-11-19 22:18:01 +01:00
Matthias Grob 675af4f5f9 uavcan_kinetis: fix flexcan code style
* flexcan: fix code style
* flexcan: exclude from style check to avoid that a different version of astyle breaks indentation again
2019-11-12 20:50:54 -05: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
Matthias Grob b6de83117e PositionControl: fix attitude setpoint timestamp
The plot of the attitude setpoint in the log did not show any values
because the message timestamp that the position control module sets
was overwritten by the PositionControl attitude generation.
2019-11-05 13:05:16 +01:00
Matthias Grob c6cc9f0902 mc_pos_control: fix cutting thrust when landed
by applying it directly to the attitude setpoint which is the output of
the position controller.

The problem was that before the input to the attitude setpoint generation
was adjusted to generate a level attitude with zero thrust keeping the
heading. I refactored the PositionControl class in #13262 to directly
generate the attitude setpoint output. So here I'm adjusting the attitude
setpoint to do the exact same thing as before but without interleaving
with the PositionControl logic.
2019-11-05 13:05:16 +01:00
Matthias Grob 2416d0fc63 mc_pos_control: remove unused function declarations 2019-11-04 15:07:06 -05:00
Matthias Grob cc06009932 pre-commit: fix indentation style 2019-11-02 09:49:46 -04:00
Matthias Grob 5c0692e59e pre-commit: add error messages for style issues 2019-11-02 09:49:46 -04:00
Matthias Grob 933ff8d480 Remove duplicate EOF trailing newlines
because they can screw up git when merging branches.
2019-11-02 09:49:46 -04:00
Matthias Grob be545db44f mc_pos_control: reuse timestamp to reduce hrt calls 2019-10-26 06:11:18 +02:00
Matthias Grob d0084766ff PositionControl: make getters const functions 2019-10-26 06:11:18 +02:00
Matthias Grob f70d4d21a1 PositionControl: add getter for output attitude setpoint 2019-10-26 06:11:18 +02:00
Matthias Grob 198605d258 PositionControl: add getter for output position setpoint 2019-10-26 06:11:18 +02:00
Matthias Grob 40edd33078 mc_pos_control: reduce scope of attitude setpoint
No need for a gloabl state since it gets produced freshly
by the controller and then published.
2019-10-24 14:58:57 +02: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
Matthias Grob f317d227ef arch.sh: get rid of ignition-cmake workaround
The AUR repository got fixed upstream after
I reported the issue. I tested on a fresh machine
so we can get rid of the workaround that was necessary. See
https://aur.archlinux.org/packages/ignition-cmake/#comment-712301
2019-10-24 08:50:18 +02:00
Matthias Grob 38651ceee1 mc_pos_control: address @bresch's review comments 2019-10-23 17:33:47 +02:00
Matthias Grob d60e1e2774 ControlMath: switch to gtest for unit tessting 2019-10-23 17:33:47 +02:00
Matthias Grob ad60f6d786 PositionControl: make it self contained library 2019-10-23 17:33:47 +02:00
Matthias Grob 08ec6a28f0 mc_att_control: remove TPA
because it's mostly unused and we have thrust curve correction
see parameter THR_MDL_FAC
2019-10-18 15:54:09 -04:00
Matthias Grob 22c4bb498c FlightTaskDescend: set no vertical thrust when commanding velocity 2019-10-18 16:18:19 +02:00
Matthias Grob 5f53ae1253 mc_pos_control: execute failsafe with invalid setpoints 2019-10-18 16:18:19 +02:00
Matthias Grob cefa7ec5dc arch.sh: use nproc instead of grepping /proc/cpuinfo 2019-10-17 12:48:04 -04:00
Matthias Grob a053b7f69b vtol_att_control_main: only reset thrust when disarmed
to see flaps moving according to attitude control before arming
and not have tailsitter elevons move to follow north heading.
2019-10-16 16:30:38 +02:00
Matthias Grob 45a53726d6 LandDetector: switch to uORB::Publication 2019-10-16 00:47:01 -04:00
Matthias Grob 679e4fedf5 LandDetector: switch land flags to properies instead of one state 2019-10-16 00:47:01 -04:00
Matthias Grob e843090383 Replace a lot of memset with {} initializers 2019-10-15 10:01:03 -04: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
Matthias Grob 185e2811dc gyro_calibration: use constexpr instead of const 2019-10-15 10:01:03 -04:00
Matthias Grob 09faa4647b ekf2_params: correct typo 2019-10-15 10:01:03 -04:00
Matthias Grob 9f639d1f3b mc_att_control: move rate control to RateControl class
This makes the controller more modular, more readable and hence
better maintainable.
2019-10-15 07:46:47 +02:00
Matthias Grob bb91db2057 AttitudeControlTest: fix adaptAntipodal() function 2019-10-14 18:23:22 +02:00
Matthias Grob 83dfa227a7 AttitudeControlTest: include all corner case combinations
Which revealed antipodal quaternion corner cases when
the first element is zero.
2019-10-14 18:23:22 +02:00
Matthias Grob 511828bfd2 AttitudeControlTest: add first controller convergence test 2019-10-14 18:23:22 +02:00
Matthias Grob 7e2fb6b4da arch.sh: switch permissions of pip install (again)
after testing the right solution on a fresh installation
2019-10-14 10:54:09 -04:00
Matthias Grob 001da78089 mc_pos_control: improve failsafe handling
See issue #12307

Since commander should still handle all failsafes we should only run
into this case as last resort to not crash.
If all failsafe actions are disabled but data is missing
e.g. RC loss action disabled but flying in manual and no RC
this can be tested.
2019-10-14 15:07:09 +02:00
Matthias Grob 068f56d66f FlightTasks: fix switchTask() comment typo 2019-10-14 15:07:09 +02:00
Matthias Grob 093d3b76d9 PULL_REQUEST_TEMPLATE: change order of titles (#13174) 2019-10-14 13:11:44 +02:00
Matthias Grob c09ea2a9b0 arch.sh: don't execute pip as root
otherwise packages get installed in
/root/.local/lib/python3.7/site-packages
2019-10-12 08:38:39 +02:00
Matthias Grob 50c5150471 arch.sh: work around gazebo AUR build error and correct comments 2019-10-12 08:38:39 +02:00
Matthias Grob bba464d722 arch.sh: enable multicore gazebo compilation 2019-10-12 08:38:39 +02:00
Matthias Grob 7dd1be65ca arch.sh: add gazebo installation 2019-10-12 08:38:39 +02:00
Matthias Grob 7f63ed8202 Arch setup script (#13111)
* ubuntu.sh: fix space and capitalization

* Add setup script for Arch Linux

* arch.sh: remove numerous confirmations, added some base packages

* setup scripts: adjust messages according to review
2019-10-10 08:59:11 +02:00
Matthias Grob ca711fecc7 Commander: improve message for RC override event 2019-10-09 15:34:46 +02:00
Matthias Grob c1faea8d32 Commander: add const qualifiers for clarity 2019-10-09 08:03:07 +02:00
Matthias Grob 63f2c009c7 PreflightCheck: refactor failureDetectorCheck return value 2019-10-09 08:03:07 +02:00
Matthias Grob 8e0ee88e0a PreflightCheck: add const qualifiers to parameters
to help readability
2019-10-09 08:03:07 +02:00
Matthias Grob c570dc9315 PreflightCheck: remove goto from imu consistency check 2019-10-09 08:03:07 +02:00
Matthias Grob 05446c0875 ubuntu.sh: correct output during ccache installation (#13106) 2019-10-07 09:14:00 +02:00
Matthias Grob c8f3f07ff7 matrix: pull explicit constructors 2019-10-05 11:46:07 -04:00
Matthias Grob bc8781d130 Appveyor: update to Windows Toolchain v0.6 (#13016) 2019-09-25 10:43:04 +02:00
Matthias Grob 6a5ca6e336 FlightTask: use inline assignment initializer for reset_counters struct 2019-09-24 10:34:08 +02:00
Matthias Grob 412b44ff6e Commander: allow RC to override during RTL 2019-09-23 12:42:33 +02:00
Matthias Grob 4f44fde080 Commander: remove not disarming by RC message
Refactoring the condition to be more clear.
2019-09-23 12:42:33 +02:00
Matthias Grob fa13f63db6 ekf2: temporarily hardcode new quality information to unkown
until priseborough's and nicovanduijn's pr #12950
2019-09-18 22:01:36 -04:00
Matthias Grob c8d0eba1d2 Update ecl and matrix to safe matrix access 2019-09-18 22:01:36 -04:00
Matthias Grob 1ecbf8efd2 test_matrix: remove duplicate namespace accesses 2019-09-18 22:01:36 -04:00
Matthias Grob 270e12a4df VelocitySmoothing: refactor local scope t variables instead of array 2019-09-17 09:27:00 +02:00
Matthias Grob d4f984fea5 FlightTaskAutoLineSmooth: Fix comment to be style compliant 2019-09-13 18:10:05 +02:00
Matthias Grob 328544ae2e deltaquad: remove deprecated parameter MAN_R_MAX 2019-09-01 14:56:59 -04:00
Matthias Grob d3c7d06288 FlightTaskOrbit: don't apply yaw feed forward in circle approach
The yaw pointing towards the center makes sense since that's the approach
direction anyways. But with the yaw feed forward results in a weird looking
bias when not orbiting yet.
2019-08-31 14:25:39 +02:00
Matthias Grob 7774b150a9 FlightTaskOrbit: only reapproach circle if center changed
The condition that the vehicle is more than 3m away from the circle line
was too sloppy. That often happens when the radius is changed by sticks.
A reapproach is only necessary when the center is moved and that's only
possible through the orbit command.
2019-08-31 14:25:39 +02:00
Matthias Grob cca7596bcd FlightTaskOrbit: use StraightLine library to approach circle
The initial approach to the circle to orbit on was very agressive since
it was just the controller trying to stay on the circle reaching the
limits. Now there's first an approach phase in which the vehicle reaches
the circle trajeectory in a smooth perpendicular line before starting the
orbit execution.
2019-08-31 14:25:39 +02:00
Matthias Grob 345ad06d7e StraightLine: rewrite old implementation
Before it was:
- not used anywhere
- copied from an old mission implementation version
- didn't plan in advance
- had a lot of broken cases
- dependent on a lot of parameters

I'm starting with a new relatively simple implementation that works as
expected for a minimum viable implementation and can be improved over time.
The first version is used to approach the circle path in Orbit mode to
verify the interface and get testing such that it gets eventually used
everywhere.
2019-08-31 14:25:39 +02:00
Matthias Grob 161429f8c6 voted_sensors_update: refactor to camelCase function names 2019-08-07 18:44:39 +02:00
Matthias Grob 89a0a3acb6 PreflightCheck: improve output in case of mag inconsistency 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
Matthias Grob d0f1a551e9 manual_contol_setpoint: fix mode slot numbering (#12578)
* This fix is necessary because usually uORB structs get initialized with
all zeros and then get filled with the fields that are actually in use.
 * The number 0 for the mode slot was already commanding to switch to the
mode in slot one even though for example the joystick input via mavlink
does not use this mechanism at all.
2019-08-01 12:27:58 -04:00
Matthias Grob 5afa404b7f appveyor: fix PX4 version format check
by removing shallow clone such that we can infer the version from the
last tag
2019-07-25 10:36:58 -04:00
Matthias Grob e964af9262 commander_params: enable RC override by default
It doesn't affect fixed wing flying anymore. I disabled it for the
deltaquad since I presume @sanderux prefers to have the feature disabled
even when flying in multicopter mode.
2019-07-22 09:57:37 +02:00
Matthias Grob 706500f19c Commander: make RC override multicopter only
AAs discussed in the devcall this functionality is only useful for
rotary-wing (multicopter) flying since it's a big safety hazard to
accidentally bring a fixed wing out of an auto mode e.g. a mission
and fly away in a straight line or into an obstacle.
2019-07-22 09:57:37 +02:00
Matthias Grob 5c1ab06343 Commander: pure refactor of RC override conditions 2019-07-22 09:57:37 +02:00
Matthias Grob aaad71faab commander_params: enable automatic disarming after land detection by default 2019-07-18 14:36:50 +02:00
Matthias Grob 5002b13bda mc_att_control: Increase default rate integral gain
@bkueang and me realized that on every frame we tune the integral gain for
the roll and pitch rate controller is much too low. Usually it needs to be
increased to 0.3 or even 0.4 to have better "locked in" flight performance
and 0.2 seems like a good compromise for a safe default.
2019-06-24 18:26:27 +02:00
Matthias Grob 443381327e Airframes: rename normal S500 to generic and remove PX4 defaults 2019-06-24 18:26:27 +02:00
Matthias Grob c22825ee45 Airframes: add Holybro S500 Kit which was tested at dev summit 2019-06-24 18:26:27 +02:00
Matthias Grob 146a3866c0 Testing: hotfix to recover test coverage CI
CMAKE_TESTING should automatically be enabled
but I hoped to do that in the test.cmake
target specific options and not in the main
CMakeLists. I have to see if I can make that
order work. Here the hotfix to make CI work
again.
2019-06-14 06:54:10 -07:00
Matthias Grob 048cca7bc4 vtol_att_control: apply multicopter takeoff hotfix also for vtol (#12250)
Please see reference:
https://github.com/PX4/Firmware/issues/12171
2019-06-12 13:59:29 -04:00