Commit Graph
100 Commits
Author SHA1 Message Date
Matthias Grob 938be68c69 mavlink streams: add gimbal orientation feedback to normal stream
It only publishes when the information is available on uORB
and is useful for the groundstation to show the gimbal's status.
2023-12-01 11:02:37 -05:00
Matthias Grob d85aaf4dfd v5x/v6x: save flash by not compiling analog OSD by default 2023-11-30 17:16:02 +01:00
Matthias Grob 82c422b818 fmu-v5x: don't build roboclaw driver by default
it's not used that often and for rovers only.
2023-11-30 17:16:02 +01:00
Matthias Grob 8bb20db7da GotoControl: Save flash 2023-11-30 17:16:02 +01:00
Matthias Grob 7b4712cb29 sensor_simulator: initialize VelocitySmoothing with desired limits 2023-11-30 17:16:02 +01:00
Matthias Grob d014d76ca7 HeadingSmoothing: set correct maximum heading
The velocity smoothing library constrains the maximum vellocity.
I set the default constraint to 0 to find these exact issues.
The heading smoothing did not initialize the maximum velocity
which in this use case is the maximum heading.
So heading was always constrained to 0 -> north until this change.
2023-11-30 17:16:02 +01:00
Matthias Grob 5a2efc1cb2 GotoControl: remove dependency on PositionControl
It was there only to have the empty trajectory setpoint defined.
I rather redefine it for the single use.
2023-11-30 17:16:02 +01:00
Matthias Grob c853acc2ff GotoControl: also provide maximum velocity to position smoother 2023-11-30 17:16:02 +01:00
Matthias Grob d1e8bdbd16 GotoControl: rename yaw rate acceleration parameter
such that not only one letter differs to MPC_YAWRAUTO_MAX
2023-11-30 17:16:02 +01:00
Matthias Grob dc7f9165d1 logged_topics: fix goto_setpoint name 2023-11-30 17:16:02 +01:00
Matthias Grob 3de6fee07f GotoControl: make interface over uORB 2023-11-30 17:16:02 +01:00
Matthias Grob 96a81c22e3 GotoControl: simplify configuration wrapping 2023-11-30 17:16:02 +01:00
Matthias Grob 439d6c61e0 Revise GotoControl 2023-11-30 17:16:02 +01:00
Matthias Grob 14b8afe972 PositionSmoothingTest: remove duplicate vector comparison 2023-11-30 17:16:02 +01:00
Matthias Grob 591845bb41 HeadingSmoothing: rename, simplify, add cpp 2023-11-30 17:16:02 +01:00
Matthias Grob be05b3e8d7 helper_functions: include defines for M_PI_PRECISE
The defintion of the custom symbol M_PI_PRECISE
was not included in one of the only places it's used.
Looks like a mistake that happened in
34c852255e
possibly because a lot of things are included
almost everywhere and if the include order
ligns up there are no compile errors.
2023-11-30 17:16:02 +01:00
Matthias Grob efb325d25d motion_planning: remove deprecated separate test
It's functionality probably broke already in
befbb6b106c4c04933222ecb205f001fd77fa85f
and the tests are now covered by
VelocitySmoothingTest.cpp
2023-11-30 17:16:02 +01:00
Matthias Grob 53076b9863 PositionSmoothing: guard division by zero
Note that the unit test also passes without
thechange. But the VelocitySmoothing's
local_time would get NAN. This would leads to
wrong trajectory calculations.
2023-11-30 17:16:02 +01:00
Matthias Grob 11cca72ef1 VelocitySmoothing: fix division by zero cases
Problem: Zero maximum jerk and/or zero
direction would lead to divisions by zero in
various cases depending on the exact configuration and code path.

Solution: There was already one check for the
direction being zero in one path and I
summarized to check in both
updateDurations...() functions the product
of direction * max_jerk to not be zero
because that's exactly the value calculations
devide by.
2023-11-30 17:16:02 +01:00
Matthias Grob 6f295d91d1 Revert "motion_planning: sanitize inputs to position and velocity smoothing libs"
This reverts commit 2951c846ee07e52c2e3d97ea4629185016f3a011.
2023-11-30 17:16:02 +01:00
Matthias Grob 14785eeb47 GotoSetpoint message: reorder flag directly before value 2023-11-30 17:16:02 +01:00
Matthias Grob f53edfa440 Roboclaw: major cleanup 2023-11-28 16:30:17 +01:00
Matthias Grob c27181a154 Rename RoboClaw -> Roboclaw
The manufacturer uses both naming schemes, RoboClaw more than Roboclaw
but it's always one word and hence I think it's more consistent to name
it the latter.
2023-11-28 16:30:17 +01:00
Matthias Grob 87683aa790 Roboclaw: move parameters to module.yaml 2023-11-28 16:30:17 +01:00
Matthias Grob 8f4ce28e84 RoboClaw: declutter, make it compile again 2023-11-28 16:30:17 +01:00
Matthias Grob 5b4031356e RoboClaw: fix style 2023-11-28 16:30:17 +01:00
Matthias Grob a857df88e4 Driving possible 2023-11-28 16:30:17 +01:00
Matthias Grob 8271faedeb control_mode: reorder modes according to controller cascade 2023-11-23 20:35:48 +01:00
Matthias Grob 6e31638817 control_mode: add allocation to orbit mode to not crash 2023-11-23 20:35:48 +01:00
Matthias Grob 9bed8f48c7 Remove LNDMC_ALT_MAX
This should be replaced with the maximum geofence
altitude GF_MAX_VER_DIST. I'm not aware anyone is using
this functionality as is.
2023-11-20 14:52:35 +01:00
Matthias Grob ead16d0e6c Commander: add parameter to disallow disarming in manual thrust modes 2023-11-17 09:53:56 +01:00
Matthias Grob 78987f6016 ManualControl: introduce stick gesture for killing 2023-11-17 09:53:56 +01:00
Matthias Grob 0dcecf0666 FlightModeManager: avoid internal flight task running concurrently with external mode 2023-11-15 13:18:58 +01:00
Matthias Grob 9d455d5f1f ThrowLaunch: move into separate class 2023-11-13 11:57:19 +01:00
Matthias Grob 4485c7aa11 PositionSmoothing: fix corner altitude bug
During a round corner the L1 distance calculation
was only done in 2D and the z-axis coordinate
was directly coming from the next waypoint.
This lead to an unpredictable altitude profile
between two waypoints. Sometimes almost all
altitude difference was already covered during
the turn instead of going diagonally.
2023-11-10 10:02:20 +01:00
Matthias Grob c53e0c4799 cpuResourceCheck: use hysteresis class 2023-11-07 11:19:28 +01:00
Matthias Grob ae888b73d0 battery: report over voltage 2023-11-06 18:17:28 +01:00
Matthias Grob 12b291b82f px4_log: comment typo alway{s} 2023-10-25 16:43:06 -04:00
Matthias Grob 2ef807eaa0 sdcardCheck: shorten hardfault log message
To make sure it's showing correctly in the output.
2023-10-25 16:43:06 -04:00
Matthias Grob 8ea04b0f8f ActuatorEffectivenessHelicopterCoaxial: fix copy paste error in saturation logic 2023-09-28 08:55:06 +02:00
Matthias Grob 8a2d2fb1cd HelicopterCoaxial: only publish unallocated thrust in the saturation case 2023-09-28 08:55:06 +02:00
Matthias Grob 169a0f580d HelicopterCoaxial: correct constraining for minimum 2 swash plate servos 2023-09-28 08:55:06 +02:00
Matthias Grob 20f2df4410 HelicopterCoaxial: handle yaw saturation
This had to be done for the integrators to work at all.
2023-09-28 08:55:06 +02:00
Matthias Grob cf40d95ef0 HelicopterCoaxial: adjust for coaxial allocation 2023-09-28 08:55:06 +02:00
Matthias Grob b3b373e074 control_allocator: add coaxial helicopter effectiveness
It's now just a copy of the helicopter such that changes get well
visible in the history.
2023-09-28 08:55:06 +02:00
Matthias Grob b56e7a036c control_allocator: allow for only 2 swash plate servos
This is required to support fixed pitch propeller helicopters that have
no collective but only cyclic pitch with two degrees of freedom and
hence only two servos.

The amount of thrust in the body z axis is then controlled using the
motor speed which makes particularly sense on coaxial helicopters
that need to control yaw with changing motor speeds already.
2023-09-28 08:55:06 +02:00
Matthias Grob 35b32e8cb0 ActuatorEffectivenessHelicopter: spacing 2023-09-28 08:55:06 +02:00
Matthias Grob 2be687a84c Helicopter: add collective pitch offset to Actuator UI parameters 2023-09-28 08:55:06 +02:00
Matthias Grob 99e2acf89c ActuatorEffectivenessHelicopter: explicitly handle unsaturated case
This became necessary otherwise
the allocation reports saturation all
the time and the rate integrator doesn't work.
2023-09-28 08:53:35 +02:00
Matthias Grob a03af59c5c battery: show unknown cell count
Unkown cell count is the default and
should be possible to select again from the drop down.
2023-09-28 07:32:06 +02:00
Matthias Grob 710f977349 mc_att_control: ramp thrust in after spoolup time 2023-09-21 17:25:53 +02:00
Matthias Grob 4ca366c04f mc_att_control: respect spoolup time in Stabilized mode 2023-09-21 17:25:53 +02:00
Matthias Grob 24111df176 mc_att_control_main: zero minimal thrust when landed
but this time compared to
2fbb70d9ca
the minimum thrust is ramping to not produce a thrust jump.

The better long term solution will be to always have airmode but
with the effect limited to a magnitude of MPC_MANTHR_MIN.
2023-09-21 17:25:53 +02:00
Matthias Grob be56f74c1d mc_acro_params: beginner/tuning friendly defaults
high rates and (super) expo are necessary for
- acrobatic flying
- fpv
- racing
but they are not useful for:
- a typical vehicle's rate control tuning
- beginners

The defaults that I set in #8036 were put with the assumption Acro mode
is mainly used on racing drones for acrobatic manouvers but instead
users including me use it most of the time to tune any drone.
When tuning the rates are lowered and expo disabled.

My suggested strategy is to make the beginner friendly rates without
expo which are good for tuning the default and document more clearly
how this can be raised for acrobatic flying in documentation and later
on hopefully also directly in the ground station UI
on an Acro mode specific page.
2023-09-20 17:45:07 -04:00
Matthias Grob 77c2df2e04 mc_acro_params: separate parameter group 2023-09-20 17:45:07 -04:00
Matthias Grob 189fa6831a mc_acro_params: more readable descriptions 2023-09-20 17:45:07 -04:00
Matthias Grob df3a0de734 mc_rate_control: move acro parameter to separate file 2023-09-20 17:45:07 -04:00
Matthias Grob f8d729147b Craziflie configs: remove default 100% thrust parameter 2023-09-14 09:50:21 -04:00
Matthias Grob 38b0de94c1 system_params: improve distance sensor check description 2023-09-05 13:11:20 -04:00
Matthias Grob d2819ca754 FunctionsMotors: include motors instead of servos topic 2023-08-31 16:56:08 -04:00
Matthias Grob 2b78431566 PositionControl: use float literals for sqrtf sign check 2023-08-31 16:56:08 -04:00
Matthias Grob 22e613a24a commander_params: more precise COM_FAIL_ACT_T description
regarding RC stick override
2023-08-21 16:39:10 +02:00
Matthias Grob 0200ef9a60 Tools/auterion: add Skynode upload scripts (#21842) 2023-08-21 08:03:07 +02:00
Matthias Grob 6889443bd7 temperature_compensation: use snprintf instead of sprintf
because sprintf is deprecated on MacOS
and CI fails with warning -> error:

'sprintf' is deprecated: This function is
provided for compatibility reasons only.
Due to security concerns inherent in the
design of sprintf(3), it is highly
recommended that you use snprintf(3) instead.
2023-07-20 13:18:45 +02:00
Matthias Grob ce8dd2ba48 deploy_all: add git ownership workaround
See
a6d2c2cf5e
2023-07-19 19:09:13 +02:00
Matthias Grob 0c2a8266bc CI: use the same container versions consistently
I updated all versions to the newest one that's used anywhere.
Then at least the straing can be found with full text search.
It's another step towards understanding and unifying the CI environment.
2023-07-19 07:46:45 -07:00
Matthias Grob 39ab1f5809 generate_board_targets: use current version of each container
to consistently use container versions and fix the beaglebone build
in metadata deployment CI.
2023-07-19 07:46:45 -07:00
Matthias Grob 013856fac1 generate_board_targets: explicitly specify build containers
in order to have the right container version for each toolchain
currently for the metadata deployment GitHub actions build.
2023-07-19 07:46:45 -07:00
Matthias Grob 83b832fdce ManualControl: fix case where mode switches unintentionally in air
Case: A vehicle is already operating but has no stick input or another
source than RC. When RC stick input is switched to either because it gets
first time available or as a fallback to joystick then the mode was
immediately changed to the switch position. This can lead to loss of
control e.g. when the vehicle is flying far away and the
mode switch of the RC is in some fully manual piloted mode.

I added tests to cover the cases where RC mode initialization is expected
and also unexpceted because the vehicle is already armed.
2023-07-13 12:00:35 +02:00
Matthias Grob 2235c40e28 ManualControl: add functional test for switch behavior
Using the established interface processInput() function.
2023-07-13 12:00:35 +02:00
Matthias Grob 877f37d79e ManualControlSelector: add parentheses in condition for clarity 2023-07-13 12:00:35 +02:00
Matthias Grob b19b0d0163 ManualControl: separate switches logic function + reset fix
Fix the previous switches initialized flag getting reset when no RC was
present or in use. This was found during functional testing.
2023-07-13 12:00:35 +02:00
Matthias Grob 3b2b60adde ManualControl: put input processing in separate testable function 2023-07-13 12:00:35 +02:00
Matthias Grob 8dc73c4621 ManualControl: correct manual control input subscription name 2023-07-13 12:00:35 +02:00
Matthias Grob 258fc786dc ManualControl: put parameter update into separate function 2023-07-13 12:00:35 +02:00
Matthias Grob 17535c288c ManualControl: correct CMake module definition
modules__ instead of module__ prefix
The module depends on the hysteresis library and probably because
it compiles with the still prevalent global includes the dependency
is not declared.
2023-07-13 12:00:35 +02:00
Matthias Grob 632596c1ea FlightTask: correct header comments 2023-07-13 12:00:35 +02:00
Matthias Grob 618724b409 Functional gtests: remove unnecessary subscription updates
A new subscription is updated on instanciation and no additional
update needs to be called for processing the first sample.
2023-07-13 12:00:35 +02:00
Matthias Grob 715a1ff701 Jenkins, docker_run.sh: use Debian 11 armhf container
also for the other linux target builds. It's a follow up to
e5503480e3
I wasn't aware that there are multiple different
container versions used for almost the same build.
2023-07-11 17:49:36 +02:00
Matthias GrobandJunwoo Hwang 2dcb525cd9 RCUpdateTest: RC switch correct corner case test value
Co-authored-by: Junwoo Hwang <junwoo091400@gmail.com>
2023-07-11 15:58:48 +02:00
Matthias Grob 42fa41e601 rc_update: fix on-off-switch with negative threshold values 2023-07-11 15:58:48 +02:00
Matthias Grob 1fa5136e30 RCUpdateTest: add unit test for return switch 2023-07-11 15:58:48 +02:00
Matthias Grob 392d445783 RCUpdateTest: fix unit test parameters + restoring state after test
Channel values stay over one unit test but some tests assumed they are
reset each time. Reset the channel after these mode button tests.

Parameters survive between unit tests presumably as long as
the bianry runs. Reset them if a test requires that.
2023-07-11 15:58:48 +02:00
Matthias Grob e127ada07b rc_update: extend ModuleParams::updateParams() for local parameter updates 2023-07-11 15:58:48 +02:00
Matthias Grob 87c697a0d6 rc_update: switch back to protected scope and use fixture for testing 2023-07-11 15:58:48 +02:00
Matthias Grob 02ab5e0704 drv_pwm_output: remove unused PWM_ defines 2023-07-10 18:58:37 +02:00
Matthias Grob e776aca9ef UUV: stop motors when commanding zero speed 2023-07-10 18:58:37 +02:00
Matthias Grob 6b7aed3d44 Boats: stop motors when commanding zero speed 2023-07-10 18:58:37 +02:00
Matthias Grob 95a35c972d Rovers: stop motors when commanding zero speed 2023-07-10 18:58:37 +02:00
Matthias Grob 0be6069b83 TiltrotorVTOL: allow stopping front tilted motors in fast forward flight 2023-07-10 18:58:37 +02:00
Matthias Grob 66b451e61f TailsitterVTOL: allow explicitly stop forward motor with zero thrust 2023-07-10 18:58:37 +02:00
Matthias Grob 5568afbb12 StandardVTOL: explicitly stop forward motor with zero thrust 2023-07-10 18:58:37 +02:00
Matthias Grob 6b7b34a71a FixedWing: explicitly stop forward motor with zero thrust
This allows PWM and all other output methods to configure
stopped, idling and full thrust points and use them consistently.
The fact that a fixed wing motor can be stopped when zero thrust
is demanded is explicit and could in principle even be disabled.
The mechanism is the same as for a standard VTOL stopping the
multicopter motors in the fixed wing flight phase.
2023-07-10 18:58:37 +02:00
Matthias Grob 2a077181d9 ActuatorEffectiveness: add function to delectively stop motors with zero thrust 2023-07-10 18:58:37 +02:00
Matthias Grob a8bf47e606 Set default minimum and maximum PWM for motors
This allows to consistently define:
Motor stopped - disarmed PWM
Motor idling - minimum PWM
Motor at full thrust - maximum PWM

Any allocation can then distinctly decide if
a motor should be running or not depending
on the context and also explicitly command that.
2023-07-10 18:58:37 +02:00
Matthias Grob a36c922fc0 ActuatorEffectivenessHelicopterTest: adapt to new constructor 2023-07-03 16:21:27 +02:00
Matthias Grob b7e2a9c320 FlightTaskAltitude: remove duplicate, deprecated yaw stick handling 2023-07-03 09:52:47 +02:00
Matthias Grob 4d465533b5 FlightTaskManualAcceleration: remove duplicate yaw stick handling
It's already instanciated and ran by FlightTaskManualAltitude
which FlightTaskManualAcceleration inherits from.
2023-07-03 09:52:47 +02:00
Matthias Grob 03183ccacf mc_pos_control_params: remove forgotten trailing zeroes 2023-07-03 09:52:47 +02:00
Matthias Grob a6d2c2cf5e Github Actions: add workaround for dubious ownership errors
until I figure out what a better solution
would look like.
See
https://github.com/actions/runner/issues/2033
2023-06-27 17:17:31 +02:00