ArduPilot / ArduPilot/ardupilot
Plane: Automatic hand-launch from moving vehicle
- Dominant language
- C++
- Stars
- 15.9k
- Forks
- 21.4k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 119
Description
## Feature request
**Is your feature request related to a problem? Please describe.**
Recently, attempting to perform an automatic takeoff (hand-launched) from a moving vehicle, I saw the aircraft pitch down back to the ground after being launched. Further investigation concluded that the TAKEOFF mode logic assumed the aircraft was already flying, and simply commanded a climb to the takeoff altitude using regular TECS. See: https://github.com/ArduPilot/ardupilot/blob/0bf65c3a8719ba97b3ac684bdc6b3d630930ecd8/ArduPlane/mode_takeoff.cpp#L91
**Describe the solution you'd like**
It would be nice to support automatic takeoff from moving vehicles (ie. pick-up truck). One alternative could simply be to add an option for moving vehicle takeoff, which would bypass the logic checking if the vehicle is already flying.
**Describe alternatives you've considered**
Alternatively, the logic checking if the vehicle is already flying could additionally check if the vehicle is above the wings level altitude for an automatic takeoff.
**Platform**
[ ] All
[ ] AntennaTracker
[ ] Copter
[X] Plane
[ ] Rover
[ ] Submarine
Contributor guide
Research direction
Start with ArduPlane/mode_takeoff.cpp around the linked line and trace the TAKEOFF mode logic that decides whether the aircraft is already flying. Clarify how a moving-vehicle launch should differ from a conventional automatic takeoff, then determine how the selected behavior can be validated without the aircraft pitching back toward the ground. Done means the requested moving-vehicle launch scenario is supported consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- embedded-iot, robotics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100