updated test cards for optical flow flights (#25676)
Container build / Set Tags and Variables (push) Has been cancelled
Container build / Build Container (amd64) (push) Has been cancelled
Container build / Build Container (arm64) (push) Has been cancelled
Container build / Deploy To Registry (push) Has been cancelled
Docs - Crowdin - Upload Guide sources (en) / upload-to-crowdin (push) Has been cancelled
Docs - Deploy PX4 User Guide / build (push) Has been cancelled
Docs - Deploy PX4 User Guide to AWS / build (push) Has been cancelled
Docs - Deploy PX4 User Guide / deploy (push) Has been cancelled
Docs - Deploy PX4 User Guide to AWS / deploy (push) Has been cancelled
Handle stale issues and PRs / stale (push) Has been cancelled

* updated test cards for optical flow flights

* Update docs/en/test_cards/mc_07_optical_flow_failure.md

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>

* updated docs

* fixed mis-type in url

* subedit

* Update docs/en/test_cards/mc_06_optical_flow.md

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

* updated test card

* changes to file name and some instructions

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
This commit is contained in:
Andrew Wilkins
2025-10-08 14:02:03 -05:00
committed by GitHub
parent d3bcdf8ba7
commit 60dd343152
8 changed files with 159 additions and 25 deletions
+3 -1
View File
@@ -831,8 +831,10 @@
- [Test MC_04 - Failsafe Testing](test_cards/mc_04_failsafe_testing.md)
- [Test MC_05 - Manual Modes (Inside)](test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_06 - Optical Flow (Inside)](test_cards/mc_06_optical_flow.md)
- [Test MC_07 - VIO (Inside)](test_cards/mc_07_vio.md)
- [Test MC_07 - Optical Flow Low Mount](test_cards/mc_07_optical_flow_low_mount.md)
- [Test MC_08 - DSHOT ESC](test_cards/mc_08_dshot.md)
- [Test MC_09 - VIO (Visual-Inertial Odometry)](test_cards/mc_09_vio.md)
- [Test MC_10 - Optical Flow / GPS Mixed](test_cards/mc_10_optical_flow_gps_mixed.md)
- [Unit Tests](test_and_ci/unit_tests.md)
- [Fuzz Tests](test_and_ci/fuzz_tests.md)
- [Continuous Integration](test_and_ci/continous_integration.md)
+3 -1
View File
@@ -829,8 +829,10 @@
- [Test MC_04 - Failsafe Testing](/test_cards/mc_04_failsafe_testing.md)
- [Test MC_05 - Manual Modes (Inside)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_06 - Optical Flow (Inside)](/test_cards/mc_06_optical_flow.md)
- [Test MC_07 - VIO (Inside)](/test_cards/mc_07_vio.md)
- [Test MC_07 - Optical Flow Low Mount](/test_cards/mc_07_optical_flow_low_mount.md)
- [Test MC_08 - DSHOT ESC](/test_cards/mc_08_dshot.md)
- [Test MC_09 - VIO (Visual-Inertial Odometry)](/test_cards/mc_09_vio.md)
- [Test MC_10 - Optical Flow / GPS Mixed](/test_cards/mc_10_optical_flow_gps_mixed.md)
- [Unit Tests](/test_and_ci/unit_tests.md)
- [Fuzz Tests](/test_and_ci/fuzz_tests.md)
- [Continuous Integration](/test_and_ci/continous_integration.md)
+3 -1
View File
@@ -28,5 +28,7 @@ These are run by the test team as part of release testing, and for more signific
- [MC_04 - Failsafe Testing](../test_cards/mc_04_failsafe_testing.md)
- [MC_05 - Indoor Flight (Manual Modes)](../test_cards/mc_05_indoor_flight_manual_modes.md)
- [MC_06 - Indoor Flight (Optical Flow)](../test_cards/mc_06_optical_flow.md)
- [MC_07 - VIO (Visual-Inertial Odometry)](../test_cards/mc_07_vio.md)
- [MC_07 - Optical Flow Low Mount](../test_cards/mc_07_optical_flow_low_mount.md)
- [MC_08 - DSHOT ESC](../test_cards/mc_08_dshot.md)
- [MC_09 - VIO (Visual-Inertial Odometry)](../test_cards/mc_09_vio.md)
- [MC_10 - Optical Flow / GPS Mixed](../test_cards/mc_10_optical_flow_gps_mixed.md)
+19 -10
View File
@@ -2,25 +2,23 @@
## Objective
To test that optical flow works as expected
Test that optical flow works as expected
## Preflight
Disconnect all GPS / compasses and ensure vehicle is using optical flow for navigation
([Setup Information here](../sensor/optical_flow.md))
Disconnect all GPS / compasses and ensure vehicle is using optical flow for navigation ([setup information here](../sensor/optical_flow.md))
Ensure there are no other sources of positioning besides optical flow
Ensure there are no other sources of positioning besides optical flow:
- [EKF2_OF_CTRL](../advanced_config/parameter_reference.md#EKF2_OF_CTRL): `1`
- [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL): `0`
- [EKF2_EV_CTRL](../advanced_config/parameter_reference.md#EKF2_EV_CTRL): `0`
- [SYS_HAS_MAG](../advanced_config/parameter_reference.md#SYS_HAS_MAG): `0`
Ensure that the drone can go into Altitude / Position flight mode while still on the ground
Ensure that the drone can go into Altitude / Position mode while still on the ground
## Flight Tests
❏ Altitude flight mode
[Altitude mode](../flight_modes_mc/altitude.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
@@ -28,7 +26,7 @@ Ensure that the drone can go into Altitude / Position flight mode while still on
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
❏ Position flight mode
[Position mode](../flight_modes_mc/position.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Horizontal position should hold current value with stick centered
@@ -38,6 +36,16 @@ Ensure that the drone can go into Altitude / Position flight mode while still on
&nbsp;&nbsp;&nbsp;&nbsp;❏ Pitch/Roll/Yaw response set to pitch/roll/yaw rates
❏ Varying height terrain
&nbsp;&nbsp;&nbsp;&nbsp;❏ Put boxes on the ground to create varying heights in terrain
&nbsp;&nbsp;&nbsp;&nbsp;❏ Take off in position mode and fly over the boxes such that the downward facing rangefinder varies in value
&nbsp;&nbsp;&nbsp;&nbsp;❏ Do a few passes with varying amounts of time over the boxes (1-30 seconds if possible)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Drone should not raise in height when flying over boxes
## Landing
❏ Land in either Position or Altitude mode with the throttle below 40%
@@ -47,7 +55,8 @@ Ensure that the drone can go into Altitude / Position flight mode while still on
## Expected Results
- Take-off should be smooth as throttle is raised
- Drone should hold altitude in Altitude Flight mode without wandering
- Drone should hold position within 1 meter in Position Flight mode without pilot moving sticks
- Drone should hold altitude in Altitude mode without wandering (over surface with many features)
- Drone should hold position within 1 meter in Position mode without pilot moving sticks
- No oscillations should present in any of the above flight modes
- Drone should not raise in height when flying over boxes
- Upon landing, copter should not bounce on the ground
@@ -0,0 +1,45 @@
# Test MC_07 - Optical Flow Low Sensor
## Objective
Test that optical flow works as expected with a low mounted optical flow sensor
## Preflight
Ensure that the drone's optical flow sensor is mounted more than an inch off of the ground
Ensure that [MPC_THR_MIN](../advanced_config/parameter_reference.md#MPC_THR_MIN) is tuned correctly for landing
Disconnect all GPS / compasses and ensure vehicle is using optical flow for navigation
([Setup Information here](../sensor/optical_flow.md))
Ensure there are no other sources of positioning besides optical flow
- [EKF2_OF_CTRL](../advanced_config/parameter_reference.md#EKF2_OF_CTRL): `1`
- [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL): `0`
- [EKF2_EV_CTRL](../advanced_config/parameter_reference.md#EKF2_EV_CTRL): `0`
Ensure that the drone can go into [Position mode](../flight_modes_mc/position.md) while still on the ground
## Flight Tests
❏ [Position mode](../flight_modes_mc/position.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Horizontal position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
&nbsp;&nbsp;&nbsp;&nbsp;❏ Pitch/Roll/Yaw response set to pitch/roll/yaw rates
## Landing
❏ Land in Position mode with the throttle below 40%
❏ Upon touching ground, copter should disarm automatically within 2 seconds (default: see [COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND))
## Expected Results
- Take-off should be smooth as throttle is raised
- Drone should stay in Position mode, NOT fall into [altitude](../flight_modes_mc/altitude.md) mode
+5 -5
View File
@@ -6,22 +6,22 @@ Regression test for DSHOT working with PX4
## Preflight
- Ensure vehicle is using a DSHOT ESC.
- Ensure vehicle is using a DSHOT ESC
- Parameter [DSHOT_BIDIR_EN](../advanced_config/parameter_reference.md#DSHOT_BIDIR_EN) is enabled
- Parameter [DSHOT_TEL_CFG](../advanced_config/parameter_reference.md#DSHOT_TEL_CFG) is configured (if ESC supports telemetry)
- Parameter [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) has Debug (`5`) checked
## Flight Tests
❏ Stabilized Flight mode
[Stabilized mode](../flight_modes_mc/manual_stabilized.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Takeoff in stabilized flight mode to ensure correct motor spin
&nbsp;&nbsp;&nbsp;&nbsp;❏ Takeoff in stabilized mode to ensure correct motor spin
&nbsp;&nbsp;&nbsp;&nbsp;❏ Pitch/Roll/Yaw response 1:1
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response 1:1
❏ Position flight mode
[Position mode](../flight_modes_mc/position.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Horizontal position should hold current value with stick centered
@@ -41,6 +41,6 @@ Regression test for DSHOT working with PX4
- Download flight logs
- Load into Data Plot Juggler
- Ensure data is logged for esc_status/esc.0x/esc_rpm
- Ensure data is logged for `esc_status`/`esc.0x`/`esc_rpm`
![Reference frames](../../assets/test_cards/dshot_log_output.png)
@@ -1,14 +1,14 @@
# Test MC_07 - VIO (Visual-Inertial Odometry)
# Test MC_09 - VIO (Visual-Inertial Odometry)
## Objective
To test that external vision (VIO) works as expected
Test that external vision (VIO) works as expected
## Preflight
Disconnect all GPS / compasses and ensure vehicle is using VIO for navigation
Ensure that the drone can go into Altitude / Position flight mode while still on the ground
Ensure that the drone can go into [Altitude](../flight_modes_mc/altitude.md) / [Position](../flight_modes_mc/position.md) mode while still on the ground
Ensure there are no other sources of positioning besides VIO:
@@ -19,7 +19,7 @@ Ensure there are no other sources of positioning besides VIO:
## Flight Tests
❏ Altitude flight mode
[Altitude mode](../flight_modes_mc/altitude.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
@@ -27,7 +27,7 @@ Ensure there are no other sources of positioning besides VIO:
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
❏ Position flight mode
[Position mode](../flight_modes_mc/position.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Horizontal position should hold current value with stick centered
@@ -46,7 +46,7 @@ Ensure there are no other sources of positioning besides VIO:
## Expected Results
- Take-off should be smooth as throttle is raised
- Drone should hold altitude in Altitude Flight mode without wandering
- Drone should hold position within 1 meter in Position Flight mode without pilot moving sticks
- Drone should hold altitude in Altitude mode without wandering
- Drone should hold position within 1 meter in Position mode without pilot moving sticks
- No oscillations should present in any of the above flight modes
- Upon landing, copter should not bounce on the ground
@@ -0,0 +1,74 @@
# Test MC_10 - Optical Flow / GPS Mixed
## Objective
Test that optical flow mixed with GPS works as expected
## Preflight
[Setup optical flow and GPS](../sensor/optical_flow.md)
Ensure there are no other sources of positioning besides optical flow
- [EKF2_OF_CTRL](../advanced_config/parameter_reference.md#EKF2_OF_CTRL): `1`
- [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL): `7`
- [EKF2_EV_CTRL](../advanced_config/parameter_reference.md#EKF2_EV_CTRL): `0`
- [SYS_HAS_MAG](../advanced_config/parameter_reference.md#SYS_HAS_MAG): `1`
- [EKF2_HGT_REF](../advanced_config/parameter_reference.md#EKF2_HGT_REF): `1` (GPS)
Ensure that the drone can go into [Altitude](../flight_modes_mc/altitude.md) / [Position](../flight_modes_mc/position.md) mode while still on the ground
## Flight Tests
❏ [Altitude mode](../flight_modes_mc/altitude.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Pitch/Roll/Yaw response 1:1
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
❏ [Position mode](../flight_modes_mc/position.md)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Horizontal position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
&nbsp;&nbsp;&nbsp;&nbsp;❏ Pitch/Roll/Yaw response set to pitch/roll/yaw rates
❏ GPS Cutout
&nbsp;&nbsp;&nbsp;&nbsp;❏ Takeoff in position mode in GPS rich environment (outdoors)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Open QGC and navigate to MAVLink Console
&nbsp;&nbsp;&nbsp;&nbsp;❏ Type `gps off` to disable GPS
&nbsp;&nbsp;&nbsp;&nbsp;❏ Drone should maintain position hold via optical flow
❏ GPS Degredation
&nbsp;&nbsp;&nbsp;&nbsp;❏ Takeoff in position mode in GPS rich environment (outdoors)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Fly under a metal surface (or other GPS blocking structure)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Ensure drone does not lose position hold or start drifting
&nbsp;&nbsp;&nbsp;&nbsp;❏ Fly out of metal structure to regain GPS
❏ GPS Acquisition
&nbsp;&nbsp;&nbsp;&nbsp;❏ Takeoff in position mode in non-GPS environment
&nbsp;&nbsp;&nbsp;&nbsp;❏ Fly into a GPS rich environment (outdoors)
&nbsp;&nbsp;&nbsp;&nbsp;❏ Ensure drone acquires GPS position
## Expected Results
- Take-off should be smooth as throttle is raised
- Drone should hold position within 1 meter in Position mode without pilot moving sticks
- Drone should hold position in GPS rich environment as well as non-GPS environment
- No oscillations should present in any of the above flight modes