Commit Graph
45 Commits
Author SHA1 Message Date
Matthias Grob 7b850a91b4 Sicks: use new 2D rotation 2023-04-15 21:57:40 +02:00
bresch c7bddda1db MC auto: add maximum RC assist distance during landing 2023-03-22 10:03:48 +01:00
Matthias Grob b0189d95af Use new Vector4 class 2023-03-21 15:01:26 +01:00
Daniel AgarandMatthias Grob 9be8f81d75 flight_mode_manager: StickAccelerationXY protect from NAN velocity reset
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-03-10 08:17:20 -05:00
Matthias Grob bd5838faf0 FlightTask: don't instaniate unused parameters 2023-03-09 17:40:55 +01:00
Matthias Grob 21d580293a StickYaw: use consistently for all flight tasks
- Switching to the first order filter that was previously
only in FlightTaskManualAltitude.
- Moving the scaling of full stick deflection to
radians per second into the class.
2023-03-02 12:06:40 +01:00
Matthias Grob 0c1f340154 StickAccelerationXY: improve comments 2023-03-02 12:06:40 +01:00
Matthias Grob da4644c20a Sticks: only use stick input if flagged valid
and add a function for just pitch roll stick input
2023-03-02 12:06:40 +01:00
Matthias Grob 1dada5daf4 Add StickTiltXY utility class to FLightTasks
to map stick input to vehicle tilt consistently and reliably across modes.
2023-03-02 12:06:40 +01:00
Matthias Grob a7c03de434 StickAccelerationXY: apply jerk limit after drag 2023-01-13 10:19:43 +01:00
Matthias Grob 331cb21dee manual_control_setpoint: change stick axes naming
In review it was requested to have a different name for
manual_control_setpoint.z because of the adjusted range.

I started to investigate what naming is most intuitive and found
that most people recognize the stick axes as roll, pitch, yaw, throttle.
It comes at no surprise because other autopilots
and APIs seem to share this convention.

While changing the code I realized that even within the code base
the axes are usually assigned to a variable with that name or
have comments next to the assignment clarifying the axes
using these names.
2022-11-28 19:25:55 +01:00
Matthias Grob 83246c84cf Switch manual_control_setpoint.z scaling from [0,1] to [-1,1]
To be consistent with all other axes of stick input and avoid future
rescaling confusion.

Note: for the MAVLink message 69 MANUAL_CONTROL it's using the full range
according to the message specs now [-1000,1000].
2022-11-28 19:25:55 +01:00
Matthias Grob 5ca28dd6dc Use isAllFinite() in all places that check finiteness on entire vectors or matrices 2022-10-19 19:09:20 +02:00
Beat Küng d542ffc10c refactor vehicle_status_flags: rename to failsafe_flags 2022-10-13 16:05:25 -04:00
Beat Küng 38d3739b6d refactor commander: rename rc_signal_lost -> manual_control_signal_lost, data_link_lost -> gcs_connection_lost 2022-10-11 22:31:20 -04:00
Beat Küng e4bb219d10 vehicle_status_flags: cleanup message, move non-failsafe flags to vehicle_status 2022-10-11 22:31:20 -04:00
Daniel Agar 085ec0e8ef flight_mode_manager: StickAccelerationXY minimize setpoint oscillations around 0 2022-09-16 07:54:12 +02:00
bresch 3b26c611af mpc: add sideways and backward speed for manual position modes 2022-07-08 14:03:44 +02:00
Junwoo Hwang 146f0cafe0 Add get*Expo() functions to the Sticks library
To return Exponential Values, which is helpful for reducing the
sensitivity of the stick around the centered value (0), since it's
exponential curve.

Useful for user adjustment implementations, where accidentally touching the stick
wouldn't have so much effect when using the Exponential value, compared
to using the raw position value.
2022-05-16 23:55:05 +02:00
Matthias Grob 897506267d Sticks: name getThrottle() explicitly about range 2022-03-23 11:54:05 +01:00
Junwoo Hwang 0e5c305163 Stick Verbose Functinos : Make get functions for roll, pitch, yaw and throttle const to specify that it's not changing Sticks' internal variables 2022-03-23 11:54:05 +01:00
Junwoo Hwang f78465428c Stick Verbose Functions : Edit other FlightTasks using checkAndUpdateStickInputs() functions and correct Throttle returned value inverse issue 2022-03-23 11:54:05 +01:00
Junwoo Hwang 8266a4df98 Sticks : Add utility functions to get pitch, roll, throttle and yaw values intuitively and rename ambiguously named function checkAndSetStickInputs() 2022-03-23 11:54:05 +01:00
bresch f751dd2242 FlightTask: set yaw_setpoint to NAN when yaw should not be controlled 2021-11-16 18:09:37 -05:00
Matthias Grob 2a5751233a FlightTasks: remove unused StraightLine library
It was meant as an example for an easy to use interface of a
motion primitive with a minimal implementation. But the implementation
is much worse than the jerk optimized trajectory. We rather
work on making it easier to use. #18390 was a first step towards that.
2021-11-16 18:08:27 -05:00
Matthias Grob fabf865411 Use backwards compatible manual_control_setpoint instead of manual_control_input 2021-11-09 16:05:25 +01:00
Julian Oes 6a6b8d49fc msg: re-use manual_control_input in setpoint
This way we avoid duplication between manual_control_input and
manual_control_setpoint.
2021-11-09 16:05:25 +01:00
RomanBapst 7cb99f521c moved ManualVelocitySmoothing to motion_planning lib
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-11-05 18:04:33 +01:00
Matthias Grob 2edd97102b Sticks/StickYaw: refactor to use constructor properly 2021-10-05 18:05:54 -04:00
Matthias Grob bb9f167d79 StickAccelerationXY: add reseting position to specified coordinates 2021-10-05 18:05:54 -04:00
Daniel Agar 883624d915 lib/geo: move from ecl 2021-07-15 10:38:24 -04:00
Daniel Agar b5430c22c4 AlphaFilter: move from ecl -> mathlib 2021-07-15 10:38:24 -04:00
Matthias Grob 5e75f17680 StickAccelerationXY: fix acceleration reset using x component instead of y
This entire feature only has an impact if the last mode set
a huge acceleration and we have to take over as smooth as possible.
But it's stil lworth fixing.
2021-04-23 21:57:27 -04:00
Matthias Grob fee4728b1f StickAccelerationXY: change function name feasibility limit -> jerk limit
for clarity because it's more accurate.
2021-04-23 21:57:27 -04:00
Matthias Grob 4865d027f9 StickAccelerationXY: factor in stricter tilt limit on takeoff 2021-04-20 18:18:21 +02:00
bresch 6fda6e43af StickAcceleration: synchronize XY acceleration profiles 2021-03-19 13:51:15 +01:00
Matthias Grob 63a35ccabd StickAccelerationXY: fix losing the internal velocity setpoint state
because of a failing position unlock with NAN velocity setpoint feedback.
2021-03-11 00:40:27 +01:00
Beat Küng 836c7c6575 StickAccelerationXY: brake a bit faster
The drag is based on max_acc/max_vel, which means that increasing the
maximum velocity leads to slower braking (at the same starting speed).

Especially a combination of small max_acc (slow responsiveness) with high
max_vel led to an exceedingly high braking distance.
This improves that while still being smooth.
2021-02-24 17:27:31 +01:00
Lorenz Meier 66d86aae2e Flight mode manager: Protect for full throttle scaling
PX4 supports -1 to 1 as input and this module was not protected against the input range.
2021-02-14 11:17:28 +01:00
Matthias Grob 82d6cc3dba FlightTasks: use .xy() where possible
to take the first two elements of a Vector3f.
2021-02-10 15:56:58 +01:00
Matthias Grob dec353219d FlightTaskManualAcceleration: smooth position unlock
The velocity setpoint of the position controller
does a jump when unlocking position with a non-zero position error.

This is solved by using the velocity setpoint feedback to smoothly
take over.
2021-02-09 11:31:35 +01:00
Matthias Grob c9eac29d25 StickAccelerationXY: access member setpoints directly
This is a leftover from before converting the logic into
a completely separate class.
2021-02-09 11:31:35 +01:00
Matthias Grob 79739c5676 StrickAccelerationXY: name setpoints unambiguous 2021-02-09 11:31:35 +01:00
Beat Küng 76a447ed0f fix StickAccelerationXY: avoid setpoint oscillations around 0
With a higher responsiveness, after centering the stick, the velocity and
acceleration setpoints could oscillate around 0 and never reach 0, due to
discretization.
This also prevented position lock engagement.
2021-02-08 13:51:36 +01:00
Daniel Agar 4d7b875ee2 flight_mode_manager: merge with flight_tasks 2021-01-17 15:46:30 +01:00