Matthias Grob
da01dd9eeb
mission_block: explicitly (re)set the acceptance radius to default for takeoff items
...
otherwise a previously adjusted or uninitialized radius from the last flight
can cause problems during the new takeoff
2022-09-08 14:49:32 +02:00
Matthias Grob
b825b61a20
mission_block: minimal acceptance radius of 1mm
...
to avoid float rounding errors leading to tiny acceptance radii
getting considered
2022-09-08 14:49:32 +02:00
Matthias Grob
e115095f70
Functions: correct interpolate function for N points
2022-09-07 08:00:27 +02:00
Matthias Grob
667e99be81
Helicopter: fix unit test after default throttle curve was changed
2022-09-07 08:00:27 +02:00
Matthias Grob
115cf4d572
Helicopter: More intuitive yaw direction configuration for the common cases
2022-09-07 08:00:27 +02:00
Matthias Grob
f233f2167e
generic_250, px4vision: remove zero manual thrust without airmode
...
When hitting zero thrust by stick there is 0 torque authority
without airmode. So 0% minimum manual thrust should never be the default
without airmode.
2022-09-07 08:00:27 +02:00
Matthias Grob
8a25d06ed7
heli_defaults: comment and spacing
2022-09-07 08:00:26 +02:00
Matthias Grob
f32d931117
helicopter: add yaw sign parameter & expose settings in UI
2022-09-07 08:00:26 +02:00
Matthias Grob
349f152601
Helicopter: throttle spoolup upon arming
...
Uses COM_SPOOLUP_TIME to slowly ramp the throttle and allow the
tailrotor to compensate in a coordinated way based on the yaw
compesation from throttle, see CA_HELI_YAW_TH_S.
This coordinated spoolup is necessary to avoid unsafe yaw twitches
because of the heli rotating until the correct compensation kicks in
through the feedback controller.
2022-09-07 08:00:26 +02:00
Matthias Grob
7bf62373ae
Helicopter: refactor complicated throttle curve logic
2022-09-07 08:00:26 +02:00
Matthias Grob
2edb35b1b5
Functions: add gradual function with arbitrary number of corner points
2022-09-07 08:00:26 +02:00
Matthias Grob
6a9a049f1e
Helicopter: add unit testing for throttle curve
2022-09-07 08:00:26 +02:00
Matthias Grob
9ba6f4efb7
Helicopter: add yaw compensation from throttle CA_HELI_YAW_TH_S
2022-09-07 08:00:26 +02:00
Matthias Grob
554d965a2d
Helicopter: use absolute value for yaw compensation from collective pitch
2022-09-07 08:00:26 +02:00
Matthias Grob
1f81101994
mc_att_control_main: do not jump throttle scaling when taking off
...
2fbb70d9ca made the lowest possible
throttle value commanded by stick in Stabilized mode before taking off 0.
The real world problem with this is that when takeoff is detected then
the entire throttle scaling range jumps from
[0, MPC_MANTHR_MIN]
to [MPC_MANTHR_MIN, MPC_MANTHR_MIN].
As a result whenever MPC_MANTHR_MIN is not zero there is a thrust jump
on every takeoff just at the moment takeoff is detected even when the
stick is moved continuously.
Because of this I suggest to revert to having a higher throttle value
from the beginning on because it's less complicated and there's
no obvious value in starting out with zero thrust if anyways not
possible to go back to zero for safety once takeoff is detected.
2022-08-11 14:18:54 +02:00
Matthias Grob
5b1b6f6080
mc_att_control_main: use gradual() for throttle curve rescale without hover thrust
2022-08-11 14:18:54 +02:00
Matthias Grob
7cb6a47714
TIME_ESTIMATE_TO_TARGET: fill unsupported fields with value representing unavailability
2022-08-11 07:27:04 +02:00
Matthias Grob
87cbda1992
FlightTaskOrbit: parameterize hardcoded maximum radius ( #20012 )
2022-08-05 09:19:32 +02:00
Matthias Grob
fb455c8f4b
vehicle_status: reorder message definition
...
for readability. No functional changes.
2022-07-12 15:50:49 +02:00
Matthias Grob
10a2b4c9f7
commander_helper: typo in set_tune() description
2022-07-08 14:51:15 +02:00
Matthias Grob
a3288ff732
Commander: run ekf checks without grace period after boot
2022-07-05 10:35:07 -04:00
Matthias Grob
8deebd07b8
preArmCheck: Shorten messages to to not write "Arming denied!"
2022-07-05 10:35:07 -04:00
Matthias Grob
21f858de1f
drv_pwm_output: remove not used anymore define for presumed servo middle position
2022-07-04 16:34:58 +02:00
Matthias Grob
af4b8bfd60
linux_pwm_out: sync configuration logic from FMU and IO
2022-07-04 16:34:58 +02:00
Matthias Grob
8ccd40185a
PWMOut/px4io: use disarmed values as default failsafe values
...
to avoid surprises where upon disarm an ESC can suddenly spool up
even though it stops when disarmed and no specific failsafe value is configured.
2022-07-04 16:34:58 +02:00
Matthias Grob
c8fb7a6990
fw/uuv control: remove duplicated comments, restyle initializers
2022-06-24 10:05:16 -05:00
Matthias Grob
78225f7b1f
examples/fixedwing_control: use initializers instead of memset
2022-06-24 10:05:16 -05:00
Matthias Grob
cfd4e64b02
uuv_pos_control: remove practically unused manual control subscription
2022-06-24 10:05:16 -05:00
Matthias Grob
3a239ff649
examples: remove empty fake_gyro
2022-06-24 10:05:16 -05:00
Matthias Grob
479c85047f
WeatherVane: Allow weathervane on multirotors not just VTOLs
2022-06-22 14:19:28 +02:00
Matthias Grob
54145cedc7
FlightTask: Weather vane cleanup
...
Remove the entire external yaw handler, dynamic memory allocation,
pointer passing logic. Directly instanciate the weather vane instance
in the flight tasks that support it.
2022-06-22 14:19:28 +02:00
Matthias Grob
92b6862485
Commander: replace arm requirements
2022-06-16 10:25:32 -04:00
Matthias Grob
3b3d8b9942
Commander: execute pre arm check with preflight checks
2022-06-16 10:25:32 -04:00
Matthias Grob
aa575d6af0
Commander: move first preflight check run to constructor
2022-06-16 10:25:32 -04:00
Matthias Grob
0f41a5e385
ArmStateMachine: simplify how preflight checks are called
2022-06-16 10:25:32 -04:00
Matthias Grob
c59809b14a
Commander: remove system_sensors_initialized
...
and system_hotplug_timeout. They're not in use for over 2 years.
Instead control LED with preflight checks.
2022-06-15 14:02:00 -04:00
Matthias Grob
f5e7b1e6a8
Commander: switch battery bitflied to dedicated datatype
2022-06-08 11:32:26 +02:00
Matthias Grob
9b2166de72
manual_control_params: configure arm gesture doesn't require reboot
...
I added wrong documentation here.
2022-06-08 05:12:05 -04:00
Matthias Grob
bd50a52c9c
Commander: fix startup sound interrupted by safety button initialization
...
The safetyButtonHandler() reports that the safety statatus
changed on the first loop iteration when safety is disabled which makes
sense to inform the system that safety is off but the tune for the user
should not be played because it interrupts the startup tune.
2022-06-08 05:12:05 -04:00
Matthias Grob
71103e6114
Safety: keep initialized constant flags when safety disabled
2022-06-08 05:12:05 -04:00
Matthias Grob
44c4b8fa85
Style refactoring related to safety button
2022-06-08 05:12:05 -04:00
Matthias Grob
5df266cedc
MulticopterRateControl: use constructor to copy thrust setpoint array
2022-06-07 11:45:59 -04:00
Matthias Grob
fad3d46907
Use signNoZero() where possible
2022-06-03 16:08:16 +02:00
Matthias Grob
a9cdfff7a3
FlightModeManager: only execute flight task commands when multicopter
2022-06-01 15:14:07 +02:00
Matthias Grob
96b0304049
PreFlightCheck: disallow arming in land mode
...
after the automatic switch to Hold mode was introduced.
2022-06-01 12:08:32 +12:00
Matthias Grob
83c15fca9f
Commander: switch back to Hold mode after autonomous landing
2022-06-01 12:08:32 +12:00
Matthias Grob
33df8b24f2
Commander: differentiate clearly between to arm and to disarm transition
2022-06-01 12:08:32 +12:00
Matthias Grob
400e1f8214
Commander: only initialize to tablet mode and don't switch back on RC loss
2022-06-01 12:08:32 +12:00
Matthias Grob
c03f5b9481
Commander: fix overlooked rebase naming error
2022-05-25 21:10:19 +02:00
Matthias Grob
44be415e0e
mission_block: make "Delay until" item work while landed
...
To enable landing, waiting and taking off again e.g. for delivery.
2022-05-24 13:42:03 +02:00
Matthias Grob
0be474430c
Commander: don't disarm on landing amid a mission
2022-05-24 13:42:03 +02:00
Matthias Grob
4f34207c4e
battery_params: increase default empty cellvoltage to 3.6v
...
Based on feedback that very often the battery is used down too low.
I observed this happens consistently when the cell voltage is properly
load compensated. The default load compensation before #19429 was very
inaccurate and resulted in unpredictable estimate.
After that if there is a usable current measurement and the battery is
within expected tolerances of the default internal resistance the
compensation is pretty good and 3.5V is too low for an empty compensated
cell voltage. That was seen in various logs where the compensated
cell voltage was already dropping fast after 3.6V.
In case the voltage is not load compensated the vehicle estimates the
state of charge a bit too low which is safer than to high
especially for a default configuration.
2022-05-24 11:26:58 +02:00
Matthias Grob
62edcc7a57
battery: only compensate using sane current
2022-05-23 16:40:32 +02:00
Matthias Grob
2cbdcc9671
battery: default to reasonable internal resistance
...
instead of disabling the load compensation using current.
2022-05-23 16:40:32 +02:00
Matthias Grob
58b1139a21
battery: allow setting precise internal resistance with parameter
2022-05-23 16:40:32 +02:00
Matthias Grob
2c5a7ea118
battery: rather undercompensate for load
...
than over compensate which makes the estimate to high and breaks batteries
beause they get flown for too long.
2022-05-23 16:40:32 +02:00
Matthias Grob
38e027ee45
ArmStateMachine: remove dependency on armed.armed
...
To have the internal state as single source of truth
for the arming state within Commander.
2022-05-20 13:51:51 +02:00
Matthias Grob
37c485ce89
ArmStateMachine: move arm state into the class
2022-05-20 13:51:51 +02:00
Matthias Grob
47532ca07b
ArmStateMachine: replace state name array with method
2022-05-20 13:51:51 +02:00
Matthias Grob
887fe7dba2
commander_params: shorten low battery action delay
...
I got multiple times the feedback now that a consistent delay
is helpful and makes sense but the default delay
is too long
for low battery action where you're trying to come back in time
and possibly the emergency reaction kicks in while the critical action
is executing which leads to a longer accumulated delay.
2022-05-19 21:54:09 +02:00
Matthias Grob
02e11eddce
mavlink_mission: add more specific information to the error message
2022-05-17 07:49:00 +02:00
Matthias Grob
4bd2d4cf35
rc_update: add unit tests for mode slot
...
To verify RC mode switch and mode button functionality works as expected.
2022-05-16 14:37:29 +02:00
Matthias Grob and Mathieu Bresciani
57a0289627
trajectory_setpoint: correct comment typo "kinematically"
...
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com >
2022-05-12 17:19:48 +02:00
Matthias Grob
4017f4bb0b
vehicle_local_position_setpoint: reorder fields for clarity
2022-05-12 17:19:48 +02:00
Matthias Grob
b67fbac296
uuv_pos_control: siplify passing on trajectory position setpoint
2022-05-12 17:19:48 +02:00
Matthias Grob
200124f094
mavlink_receiver: check entire Vectors for NAN
...
Note: Behavioral change Inf also results in the flag being true.
2022-05-12 17:19:48 +02:00
Matthias Grob
8ca28f3796
Separate message for trajectory setpoint
2022-05-12 17:19:48 +02:00
Matthias Grob
b3776134b8
Commander: ensure diconnected battery is cleared from bit field
2022-05-06 10:32:27 -04:00
Matthias Grob
843c814fb8
MulticopterPositionControl: allow offboard takeoff also when not landed
2022-05-06 04:12:18 -07:00
Matthias Grob
fbc109436f
MultiCopterRateControl: refactor setpoint naming
2022-05-06 04:12:18 -07:00
Matthias Grob
1211a457d7
MulticopterPositionControl: Overwrite vertical acceleration during takeoff rampup only
2022-05-06 04:12:18 -07:00
Matthias Grob
d9a2fe5226
Revert "MCPosControl: fix invalid setpoint race condition"
...
This reverts commit e7a2c1d88e .
2022-05-06 04:12:18 -07:00
Matthias Grob
46fdc28cf8
MulticopterPositionControl: fix typo "descen{d/t}"
2022-05-04 02:22:18 -07:00
Matthias Grob
3fb4889ab9
MultcopterPositionControl: fix executing a zero setpoint for 200ms
...
This is a combination of the originally introduced delay:
06c10f61c1
then the emergency failsafe being changed to not just land,
position control being rescheduled to not overwrite every setpoint in:
e502214429576ce68ac3fee9d2db19112f4604b9
and it being fixed by overwriting the setpoint but not removing
the long obsolete hystersis here:
114e85d260
2022-05-04 02:22:18 -07:00
Matthias Grob
cb484c5ac7
PositionControl: publish NAN jerk
...
because the controller does not read or write jerk
2022-05-04 02:22:18 -07:00
Matthias Grob
5055fec796
MulticoperPositionControl: explicitly overwrite setpoint timestamp when setpoint is reset
2022-05-04 02:22:18 -07:00
Matthias Grob
424fd8b304
MulticoperPositionControl: remove time_stamp_now alias for timestamp_sample of the local position
...
to make it explicit what is used is not a fresh hrt_absolute_time() call
by this module.
2022-05-04 02:22:18 -07:00
Matthias Grob
8180f931de
MulticopterPositionControl: rename local_pos -> vehicle_local_position
2022-05-04 02:22:18 -07:00
Matthias Grob
4ffe796b4d
MulticopterPositionControl: clarify previous position control naming
2022-05-04 02:22:18 -07:00
Matthias Grob
97b2947416
FlightTaskAuto: refactor _commanded_speed_ts -> _time_last_cruise_speed_override
2022-04-13 12:23:27 +03:00
Matthias Grob
68cf686892
FlightTask: rename and move setCruisingSpeed() -> overrideCruiseSpeed()
2022-04-13 12:23:27 +03:00
Matthias Grob
f892a624b7
FlightModeManager/FixedwingPositionControl: robustify vehicle command parameter casting
2022-04-13 12:23:27 +03:00
Matthias Grob
6ce3e88f9d
vehicle_command: specify what SPEED_TYPEs are for
2022-04-13 12:23:27 +03:00
Matthias Grob
10f927ae2b
MulticopterPositionControl: remove unused return value parameters_update()
2022-04-12 10:13:11 -04:00
Matthias Grob
fe26ee244d
modeCheck: allow arming in land mode for MAVSDK compatibility
...
ideally we can remove it again when the workflow is changed to
first changing mode then arming.
2022-04-08 09:56:47 +02:00
Matthias Grob
92adc71424
ArmStateMachine: port over unit tests to functional gtests
2022-04-06 10:02:14 +02:00
Matthias Grob
f968a5947d
ArmStateMachine: port arming_state_names into the class
2022-04-06 10:02:14 +02:00
Matthias Grob
074080c816
Commander: separate out arm state machine to class
...
Pure refactoring and just the first step to avoid conflicts on the way.
2022-04-06 10:02:14 +02:00
Matthias Grob
dd28c3e019
battery: update average current also when no capacity is configured
2022-04-04 10:02:55 +02:00
Matthias Grob
13c3eae6d0
battery: use mechanism to keep an up to date armed state
2022-04-04 10:02:55 +02:00
Matthias Grob
3aee2497bb
commander_params: add precision land option for mode switch
2022-03-30 18:11:44 +02:00
Matthias Grob
7cd57b4415
FlightTaskOrbit: alert user about exceeded radius (mavlink_log)
2022-03-29 18:46:37 +02:00
Matthias Grob
3e8d2fea94
FlightTaskOrbit: alert user about exceeded radius (events)
2022-03-29 18:46:37 +02:00
Matthias Grob
8ad44ee128
FlightModeManager: remove needless space at the end of invalid task error string
2022-03-29 18:46:37 +02:00
Matthias Grob
9bdde98a68
FlightModeManager: refactor flight task switch result condition for vehicle commands
2022-03-29 18:46:37 +02:00
Matthias Grob
ffaef906c4
FlightModeManager: don't ack with result failed when parameters are invalid
...
Command denied is defined as "supported but has invalid parameters"
which matches the case.
2022-03-29 18:46:37 +02:00
Matthias Grob
fc0be6c4fc
FlightModeManager: switch to failsafe task if orbit is rejected
2022-03-29 18:46:37 +02:00
Matthias Grob
c7f114a26a
FlightTaskOrbit: increase radius limit
2022-03-28 17:57:56 +02:00
Matthias Grob
d0794c1189
FlightTaskOrbit: don't start Orbit if radius is not in range
2022-03-28 17:57:56 +02:00
Matthias Grob
e6ed595651
Commander: make last_fail_time_us parameter a reference instead of pointer
2022-03-23 15:04:48 -04:00