Skip to content
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

[Bug] Height Anomaly Issue in Drone Mission Execution Due to Relative Home Position #22491

Open
Drone-Lab opened this issue Dec 6, 2023 · 3 comments

Comments

@Drone-Lab
Copy link
Contributor

Drone-Lab commented Dec 6, 2023

Describe the bug

The pilot (i.e., GCS operator) executes missions by setting waypoints for the drone. In the event that the operator moves the Home point while the drone is en route to any waypoint and subsequently re-executes the mission, a vulnerability is triggered. This vulnerability can result in inaccurate altitude determination during the flight, leading to unexpected descent or ascent, deviating from the intended mission altitude set by the operator. Such altitude anomalies have the potential to cause serious consequences, including drone crashes or the occurrence of hazardous incidents.
Maybe the relative altitude of the mission should be based on the initial Home point's altitude, which is set as a constant value. Even if the Home point is moved, it should not affect the altitude settings of the mission.

To Reproduce

  1. The operator begins by plotting the mission path, setting the expected altitude to 10m (a smaller value to increase the likelihood of triggering a crash). The first waypoint (takeoff point) is intentionally placed at a location different from the drone's initial position. Note: According to PX4 specifications, when the takeoff point is not at the same location as the drone, it is considered the first waypoint of the mission.

  2. The operator manually initiates the drone takeoff.

  3. The operator relocates the Home point to a position with an altitude lower than the current Home point's altitude (it is easy to overlook the altitude setting during the actual adjustment). Let the difference between the original Home altitude and the current Home altitude be denoted as X meters.

  • X ≥ 10m (expected altitude) → Drone crash
  • 0 < X < 10m (expected altitude) → Drone flies below the expected altitude
  • X < 0m → Drone flies above the expected altitude
  1. The operator proceeds to execute the mission.

  2. The drone follows the mission, flying towards the first waypoint. During the execution, the drone experiences a descent due to the fact that the mission's altitude is relative to the current Home point's altitude. This descent ultimately leads to a ground collision.
    image

Expected behavior

  • X ≥ 10m (expected altitude) → Drone crash
  • 0 < X < 10m (expected altitude) → Drone flies below the expected altitude
  • X < 0m → Drone flies above the expected altitude
    Our experiment resulted in the drone crashing to the ground

Screenshot / Media

image
image
image
image
image
image

If the Home point is changed during the drone's flight, the drone's current altitude will not be affected. However, upon reaching a waypoint, the drone may exhibit oscillations at the waypoint (while still in mission mode) and may not proceed to the next waypoint
image

Flight Log

02_43_15.zip

Software Version

HW arch: PX4_SITL
PX4 git-hash: 9d46561
PX4 version: 1.15.0 40 (17760320)
PX4 git-branch: main
OS: Linux
OS version: Release 5.15.0 (84869375)
Build datetime: Nov 30 2023 15:12:54
Build uri: localhost
Build variant: default
Toolchain: GNU GCC, 9.4.0
PX4GUID: 1006554d49534954414c44494e4f30303030

Flight controller

SITL

Vehicle type

None

How are the different components wired up (including port information)

No response

Additional context

No response

@DronecodeBot
Copy link

This issue has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:

https://discuss.px4.io/t/px4-community-q-a-december-06-2023/35574/2

@sfuhrer
Copy link
Contributor

sfuhrer commented Dec 15, 2023

When do you even have to change the Home position in air?

@Drone-Lab
Copy link
Contributor Author

When do you even have to change the Home position in air?

  • In certain application scenarios, task scheduling may be dynamic and require adjustments based on real-time information. For example, on mobile unmanned platforms such as vehicles or boats, it may be necessary to modify the home point according to the task requirements. I will write a program to dynamically send home point update commands in real-time.

  • It might be necessary to update the home point to ensure there is sufficient battery power for the return journey.

  • When the initial home point is inaccurate due to GPS deviation during drone takeoff, modification may be required.

Additionally, it cannot be guaranteed that users will always use rally points instead of home points.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

3 participants