Hello to everyone on here! You guys can thank Monroe for getting me involved with this project, he and I have been friends for quite a while now and we think a lot alike. To make a long story short, we are working on a guided rocket project and the option that made the most sense was to use the APM hardware as the main flight controller since it was essentially usable as-is off the shelf. However, the code leaves something to be desired.
I have only been working with it for about a week, but I have created what is essentially a pared-down version of ArduPlane 2.50 with large chunks of unnecessary code removed. Mainly we are interested in active stabilization and simple guidance (as in fly straight up). Eventually for something like a suborbital or orbital space shot we would need logic to fly a programmed flight path. However, that still leaves a lot of the Arduplane code as unnecessary, stuff like:
-failsafe logic (how are you going to have a rocket circle or return to the launch site?)
I got to the point where the remaining code actually compiles without errors. The really big gaps in the code are now the pitch and roll controllers. The existing airplane based code is not suitable for rocket applications at all. I'm trying to find Jon Challinger's new routines but I'm not sure where to start looking. I'm aware that due to the wide speed range inherent in rocket flight none of the existing control routines may be suitable, leaving us with developing our own. It's been a while since I took my control systems theory courses but I'm prepared to do that if necessary.
The hardware we are planning on building will be a modification to an existing high power rocket (G-H-I power) to add a guidance section in the payload bay at the nose. The guidance section will contain the APM, RC receiver, standard rocket altimeter/parachute deployment controller, 2M APRS tracker, cameras, and two servos with canard fins. Essentially to the APM it will be elevon mode, with the control directions reversed since the fins will be in front of the CG. The rocket will have passive stability and the purpose of the guidance is just to make sure it goes absolutely straight up regardless of winds. This is a common problem with rockets and becomes particularly acute with higher performance flights. A small initial deviation from vertical grows over time. For things like (A) setting altitude records and (B) not chasing rockets for miles downrange, it's advantageous to ensure it will always go straight up. The APM will also provide a whole bunch of useful functions, some of which are available in current technology rocket flight computers and some of which aren't. Things like data logging of accelerometer and GPS data can be done with currently available off the shelf parts, but none of them provide real time telemetry with a ground station.
The long term capability exists for ArduRocket to become its own full-featured vehicle platform for amateur and even professional rocketry. Currently, rocket hobbyists have to buy a melange of altimeters, timers, radios, trackers and other hardware to get capabilities that could easily be exceeded by what one APM can do. Also, the possibility of being able to do active stabilization is tantalizing, since there are many full-scale rockets that aren't passively stable and can't be done as a scale model without doing things like adding transparent fins as a crutch.
For anyone who's interested in helping, we will be open sourcing the code. I have lots of experience coding in general but I'm still trying to get up to speed on the APM hardware and ArduPlane software. Immediately, the main thing standing in the way of having usable code that we can start ground testing is the lack of the pitch and roll control functions.