So, the title sums it up pretty well. I am part of a University rocketry team, and one of our goals this year is to get a drone (quadcopter) to launch from our rocket and land at a designated location, all autonomously.
While there are multiple interesting challenges in doing this, I am currently working on the software part of this project, or more specifically find a way to do all of this autonomously. I stumbled upon the Lua Scripting page in the docs, which seems to be good for what we want to do. However, we are using the OpenPilot Revolution flight controller, which doesn’t satisfy the 2 MB of flash requirement for Lua. Because of this, we are currently thinking of modifying the Ardupilot code to satisfy our needs.
Here are the rough steps of what that code should do (with the least amount of human intervention):
Before the rocket launch, arm the drone (but the motors would not spin)
Periodically check if the drone is falling at a certain speed based on GPS
If so, deploy the arms using a servo
Start the motor, go to a waypoint, and land
I started looking at the Ardupilot code and documentation. However, since the developer doc doesn’t talk much about autonomous flight, I am starting to see that we are maybe not doing this right. Se my question is, what would be the best way (and least time consuming) to do these steps autonomously?
Could we use Lua scripts even if our flight controller doesn’t satisfy the memory requirement? If modifying the ardupilot code is the best way to do this, could someone give a general idea of how to do this, so we don’t have to do as much try and error? For example, which function to call to arm the drone safely, is AC_WPNav the library to use to go to our waypoint and land, etc.