-
Notifications
You must be signed in to change notification settings - Fork 13.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FW LandDetector: disregard horizontal velocity if local_position.v_xy_valid is false #24133
base: main
Are you sure you want to change the base?
Conversation
|
||
if (!_vehicle_local_position.v_xy_valid) { | ||
// set _velocity_xy_filtered to 0 if data is invalid | ||
val = 0.0f; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may need to add some logic that makes the acceleration threshold tighter if we don't have ground speed and airspeed. Similar to what we already do for the ground speed check if there is no airspeed.
Otherwise it gets dangerous to fly planes without GPS and without airspeed sensor, as then they could detect "landing" in-air if flies very smoothly.
* @decimal 1 | ||
* @group Land Detector | ||
*/ | ||
PARAM_DEFINE_FLOAT(LNDFW_ROT_MAX, 5.0f); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made up this default value - needs to be verified/adjusted.
@@ -114,6 +114,14 @@ bool FixedwingLandDetector::_get_landed_state() | |||
const float acc_hor = matrix::Vector2f(_acceleration).norm(); | |||
_xy_accel_filtered = _xy_accel_filtered * 0.8f + acc_hor * 0.18f; | |||
|
|||
// Check for angular velocity (disregard yaw) | |||
float max_rotation_threshold = math::radians(_param_lndfw_rot_max.get()); | |||
val = _angular_velocity.xy().norm(); // TODO: check if this should be low pass filtered |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in MC landing detector the angular velocity is not filtered. Unsure if it might be necessary for FW - I don't know how noisy the data usually is in comparison.
🔎 FLASH Analysispx4_fmu-v5x [Total VM Diff: 184 byte (0.01 %)]
px4_fmu-v6x [Total VM Diff: 152 byte (0.01 %)]
Updated: 2024-12-20T15:48:02 |
Solved Problem
Horizontal velocity considered in land detector for fixed wings even when invalid.
Solution
Changelog Entry
For release notes:
Test coverage