You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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.
The operator manually initiates the drone takeoff.
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
The operator proceeds to execute the mission.
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.
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
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
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.
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
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.
The operator manually initiates the drone takeoff.
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.
The operator proceeds to execute the mission.
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.
Expected behavior
Our experiment resulted in the drone crashing to the ground
Screenshot / Media
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
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
The text was updated successfully, but these errors were encountered: