You mentioned that you and Paul were doing some simulations with the new R Matrix approach. Can I ask what kind of simulations are being done? Hardware-In-Loop? Test cases? Parametric studies? Obviously an important step since this technique may well go beyond "gentle" corrections to full-blown 3D maneuvers (which I think is one of your goals). I saw something on ArduPilot where they actually interfaced the controller to a flight simulation program (X Plane I think). Do you have any plan for a simulation test-bed that could be used with a variety of platforms, using at least representative aerodynamic characteristics? That could be something that others in the community could contribute to, probably drawing on ArduPilot work as well.
I know this is a stretch, but is it out of the question to use this to stabilize a Heli with 3 servo CPPM? The hardware seem capable....the correct sensors and plenty of compute power.
Your roll-pitch-yaw demo is absolutely excellent!! I was wondering if might be able to post a video showing the board moving in conjunction with the servo output? Do you have an estimate of when the paper discussing the theory and math will be available?
Hi Bill
Great work this project has me hooked,
i have a few questions regarding more the GPS side of things
How do you program "way points" or a pre determined flight path and in what language
is that programming stored on the GPS module or on the main board
Just out of curiousity, I do not quite follow the choice of the external 16MHz clock. In essence this means if you are using the HS setting in FOSC your CPU will be clocked with 4MHz (FCY == FOSC / 4). So your only real choice to get decent CPU performance is to use FRC w/PLL x16. In which case of course you'd loose the precision of having an external crystal ...
if you can stuff these calculations into compact and efficient code then i'm sure world will beat the path to your door for this software. do you have a timeline for this?
As far as i know most modern EFIS suites use gyros and acceleromenters to calculate pitch roll and heading (along with vertical and horizontal speed) but stabilize what they get using gps and magnetometer information. is this exactly what you are working on now?
Hi, I have taken a quick look at the code. Now let's see here.... I have understood that the main feautures of this code version (gentleNAV) implements:
A state machine
Logic is interrupt controlled
Has a ticker bacground task for low-pri "user tasks"
Uses hw funcionality of the DsPIC chip implemented with macros
Specifically the multiply functions are hw mapped
Uses a CORDIC rotational algoritm do to the rectangular to polar coordinate operations
Implements:
Elevator control
Rudder control
It does assume that the plane is stable so no aileron controls / loops are needed or implemented?
You have two loops (PI loops):
LOOP1:
=======
rudderAccum =
(__builtin_mulss((zrate.filtered-zrate.offset+vref.filtered-vref.offset), YAWGAIN )>>8)
+ __builtin_mulss( ((int)error_dir ), STEERINGGAIN ) ;
This uses the Z gyro filtered and the steering error and two GAIN constants
LOOP2:
=======
elevAccum =
((__builtin_mulss(( xrate.filtered - xrate.offset + vref.filtered -vref.offset ), PITCHGAIN )
+ __builtin_mulss( (yaccel.filtered - yaccel.offset) , ACCELGAIN ))>>8) ;
This uses X gyro (nick/pitch rate = angular velocity of nose dip) and Y accelerometer (drop rate in (m/s^2) normalized) and adds those two and uses the GAIN constants in addition.
Have I understood the main outline of the code correctly?
Replies
You mentioned that you and Paul were doing some simulations with the new R Matrix approach. Can I ask what kind of simulations are being done? Hardware-In-Loop? Test cases? Parametric studies? Obviously an important step since this technique may well go beyond "gentle" corrections to full-blown 3D maneuvers (which I think is one of your goals). I saw something on ArduPilot where they actually interfaced the controller to a flight simulation program (X Plane I think). Do you have any plan for a simulation test-bed that could be used with a variety of platforms, using at least representative aerodynamic characteristics? That could be something that others in the community could contribute to, probably drawing on ArduPilot work as well.
Great work this project has me hooked,
i have a few questions regarding more the GPS side of things
How do you program "way points" or a pre determined flight path and in what language
is that programming stored on the GPS module or on the main board
Thanks
I want to program my UAV to utilize barometric altitude hold and airspeed hold not just GPS coordinates.
Do you think the autopilot board can be interfaced with the new Airspeed and Altitude MicroSensors from Eagle Tree Systems http://eagletreesystems.com/Standalone/standalone.htm to accomplish this?
Thanks,
Theredwire
A state machine
Logic is interrupt controlled
Has a ticker bacground task for low-pri "user tasks"
Uses hw funcionality of the DsPIC chip implemented with macros
Specifically the multiply functions are hw mapped
Uses a CORDIC rotational algoritm do to the rectangular to polar coordinate operations
Implements:
Elevator control
Rudder control
It does assume that the plane is stable so no aileron controls / loops are needed or implemented?
You have two loops (PI loops):
LOOP1:
=======
rudderAccum =
(__builtin_mulss((zrate.filtered-zrate.offset+vref.filtered-vref.offset), YAWGAIN )>>8)
+ __builtin_mulss( ((int)error_dir ), STEERINGGAIN ) ;
This uses the Z gyro filtered and the steering error and two GAIN constants
LOOP2:
=======
elevAccum =
((__builtin_mulss(( xrate.filtered - xrate.offset + vref.filtered -vref.offset ), PITCHGAIN )
+ __builtin_mulss( (yaccel.filtered - yaccel.offset) , ACCELGAIN ))>>8) ;
This uses X gyro (nick/pitch rate = angular velocity of nose dip) and Y accelerometer (drop rate in (m/s^2) normalized) and adds those two and uses the GAIN constants in addition.
Have I understood the main outline of the code correctly?
UFO-MAN
Norway