Crubier, on 30 November 2011 - 10:02 PM, said:
I don't know precisely what you mean by canonical quadcopter.
Obviously it's about controlling and stabilizing quadcopters in a smarter way.
Is it about controlling in closed loop not only pitch yaw roll and thrust, but also other parameters such as air velocity ?
No, nothing so crazy. It's just the idea that if you want a multirotor to fly, you have to be able to find a degenerate quadcopter within the existing configuration of motors. If you can't do that, then you can't fly with all axes decoupled.
Crubier, on 30 November 2011 - 10:02 PM, said:
What I need to know is how to get started.
- Should I start making a more general flight control Module ?
- Should I try defining other UAVObject s representing the data I need to use ?
- I should probably begin by doing something else ... you tell me.
peabody124 will certainly chime in, but one of the big stumbling blocks to trying new controllers is that the firmware is programmed in such a way that there is no easy way to swap out different controllers. For instance, what would be really nice is
if (controller==PID){
outputs=cntrl_PID(state, setpoint, gains);
}
else if (controller == LQR){
outputs=cntrl_LQR(state, setpoint, Q, R);
}
else if (controller == GEOMETRIC_CONTROL){
outputs=cntrl_GEOM(state, trajectory, gains);
}
and then you could just add in an additional `else if` for your new controller. If you can master this, then you open the door to changing your controller mid-flight, in order to compare and contrast different approaches.
The reason this is difficult today is because the hardware commands are not uniformly abstracted out from the software.
Crubier, on 30 November 2011 - 10:02 PM, said:
Anyway, in a long term, my project make me think that it would be a good thing to :
- Allow more general aircraft configurations by making a more general flight control module, not only based on attitude, but also on other variables.
- Modify slightly the GCS airframe configuration section, as said peabody, to allow a more general parameter tuning for exotic configurations.
The first of these two goals is certainly fulfilled by abstracting out the control from the hardware. In order for the second to see widespread use, it will have to be through loadable plugins. There is a great emphasis on keeping the GCS simple so that it's not a bewildering array of buttons (a
click-o-rama, as my former PhD director called it), so exotic airframes might be best seen as plugins put on a webpage for download into GCS.