I did some work on the simulator today. The simulator had a bunch of bugs in it mostly due to the coordinates of the simulator and visualisation not lining up. Under certain situations the vehicle would not go in the direction you would expect it to. Fixing this was not as straightforward as I initially thought as there were lots of places in the simulation I could account for offsets and rotations; most having unintentional consequences. I have never worked on something so counter-intuitive and difficult to get a hold of.
The simulator now has realistic mass and moments of inertia and I can control it with the joystick just by commanding roll. The pid outputs from roll and pitch are also combined intelligently to produce pure roll and pitch.
Unfortunately although being good at responding to desired roll and pitch inputs (step inputs) the PID's cant cope at all with uneven thruster forces.
I tried using both the trigger (Armidillo style) and slider throttle to control thrust but the throttle seemed much better. It does mean that it will be harder to shut off in an accident.
I tried varying the thruster position away from the centre between 0.4 and 1m. The vehicle was definitely more responsive for farther positions but was still easily controllable at 0.4m
Perhaps the most exciting thing I discovered is that sinulink can compile code that can run stand alone on lots of different micro controllers! This is great because I wont have to implement the control system on a micro controller which is something I wasn't looking forward to doing. What's even better is that it can communicate with simulink running on a computer to display information, so I can interface the joystick directly to it and display gauges and other impressive looking but useless widgets! (I am considering a star trek theme). I plan on starting with an Atmel and going to a beagle board if I need more power.
If I can get the thruster unbalance correction working well then I think I will be ready to start working on the real thing. I think I will need to somehow account for thruster unbalances directly before the PID.