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:
-throttle control
-waypoints
-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.
Stew
Replies
Hi Guys, i know this was written and responded to in 2012, but i am into rocketry and would like to accomplish the same thing, I've gotten my rocket high in altitude in New Mexico but wind is a factor plus it would be cool to use maybe the Arducopter FW to bring in back like SpaceX , what do you guys think ?
In some places at least, adding guidance to an amateur rocket is illegal. ( as it goes from legally being a hobby device, to legally being a guided missile ) ... you don't need to have on-board explosives ( or any other deadly nasties) for it to be classified as a missile, just being guided and being rocket/impulse powered is enough. I know of a man in NZ who had built a large (guided) pulse-jet rocket, and had the authorities involved in a bad way.* Please check with your local authorities , or at least do a *very* careful read of your local, state, and federal legislation before proceeding with this.
Oh, and good luck, and have fun. We want to see a video, preferably from on-board!
Buzz
* http://www.interestingprojects.com/cruisemissile/
Hi Stewart,
What are you going to do about the accelerometers during the initial takeoff? I suspect the rocket will saturate them. That will throw off the attitude estimate from DCM.
You'll also need quite different code for the speed. I suspect the barometer is your best bet. That will need to be fed into the speed scaling used for the surfaces.
Cheers, Tridge
You could also base your stuff on ArduCopter instead of ArduPlane...that's what I would do although it's mostly because i'm more familiar with the ArduCopter code. One small advantage is that it's got the AP_Motors class which could be helpful in that it separates the mixing of the output to the servos from the main code base.
Guided rockets! wow. If you're too successful you will definitely make some people nervous.