James Cotton
2723ff4be3
Factor the virtual flybar code out of the stabilization module
2012-08-03 09:37:46 -05:00
James Cotton
aae0e562c6
Create a sine lookup table that is cached in flash and make relay tuning start
...
ot use this.
2012-08-03 09:37:46 -05:00
James Cotton
924c91ce1e
Fix mistake from previous merge with duplicate the STABILIZATIONOMDE_ATTITUDE
...
case
2012-08-03 09:37:46 -05:00
James Cotton
8565dfbcc3
Factor the relay tuning out of the main stabilization.c file into it's own
...
tool.
2012-08-03 09:37:46 -05:00
James Cotton
561cf994b0
Reduce the memory footprint of the sin lookup table by using sin(x+pi) =
...
-sin(x). Still just needs to move into flash and have some options about
precision when in its own library function.
2012-08-03 09:37:46 -05:00
James Cotton
d0ef95ff9a
Fix idiotic bug in the stab_refactor
2012-08-03 09:37:46 -05:00
James Cotton
17878b32f3
Make autotune run within an attitude loop instead of direct rate mode. Easier
...
for beginners.
2012-08-03 09:37:44 -05:00
James Cotton
44e72d0a70
A big refactoring of stabilization.c to get rid of the two separate loops and
...
move them into one big structure. This makes it easier to implement other
modes.
2012-08-03 09:37:44 -05:00
James Cotton
e01c5d5f87
Get online estimation of period and amplitude working
2012-08-03 09:37:44 -05:00
James Cotton
4ac8df6aa8
Make the system perform an online estimate of the period and amplitude of the
...
oscillation during relay tuning
2012-08-03 09:37:44 -05:00
James Cotton
17a0d3ebb4
Add a relay stabilization mode
2012-08-03 09:37:44 -05:00
James Cotton
4afd9d110e
Don't zero the PIDs when the settings are updated. Fixes some quirks from
...
using TxPID tuning.
2012-07-03 14:19:21 +02:00
James Cotton
46a52fc5ce
Apply the virtual flybar stick scaling in stabilization.c because we need to
...
know the true stick position to dampen the gyros appropriately.
2012-06-04 12:22:39 -05:00
James Cotton
bda3f301cb
Rename VBar mode to VirtualBar
2012-06-04 12:22:39 -05:00
James Cotton
4c562b88d1
Make the amount to suppress the gyros adjustable instead of binary
2012-06-04 12:22:39 -05:00
James Cotton
59972d5570
Limit the number of degrees the vbar can deflect. This is good for fast flips
...
etc.
2012-06-04 12:22:39 -05:00
James Cotton
42ac4018b8
Woops. Fix really nasty bug in vbar mode I introduced. Also fix small bug in
...
scoping of gyro gain that made it not work.
2012-06-04 12:22:39 -05:00
James Cotton
6719ee8639
Add piro compensation option to the vbar mode
2012-06-04 12:22:39 -05:00
James Cotton
3283b99d4e
For hardcode flipping allow full stick to completely override the gyro
...
feedback.
2012-06-04 12:22:39 -05:00
James Cotton
fe978504bc
Add friendly settings for the vbar mode including the VbarTau which acts like
...
the time constant.
2012-06-04 12:22:39 -05:00
James Cotton
ff1b1a93cf
Implement a virtual flybar in a way inspired by behavior of Align 3G which
...
seems apply a leaky integrator to the swash angle. This is the similar to what
is done by Phubar (http://code.google.com/p/phubar/ ) as well although we refer
to the gyro term as the proportional and the flybar angle as the integral
2012-06-04 12:22:38 -05:00
Corvus Corax
64c1ac3bd6
Stabilization: Bugfix: moved queue initialisation to TaskStart where it belongs
2012-05-22 22:19:31 +02:00
Corvus Corax
d32dd0ccd4
Fixed fmod() versus fmodf() usage in flight/...
2012-03-26 04:16:54 +02:00
James Cotton
49a03a868b
Merge branch 'altitudehold' into revolution_overo
...
Conflicts:
flight/OpenPilot/UAVObjects.inc
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
flight/Revolution/Makefile
flight/Revolution/ins.c
2012-02-07 23:00:29 -06:00
James Cotton
727f0befc5
Make the gyro go a bit more regularly to stabilization but needs updating
...
regular CC
2012-01-25 22:50:19 -06:00
James Cotton
d2ce7761c5
Add derivative term
2012-01-03 12:37:18 -06:00
James Cotton
53cb5b67d1
Make the revo attitude now use the separate gyro object. CopterControl
...
attitude still needs an update.
2011-12-12 13:28:35 -06:00
James Cotton
07e3ad10af
Force some floating point units to be safe
2011-11-26 15:52:25 -06:00
James Cotton
c36297227d
Stabilization fix typo
2011-09-12 11:56:01 -05:00
James Cotton
b38081bb1b
Stabilization: When in none
mode zero the integral accumulators for rate and
...
attitude loops. When not using outer loop zero that accumulator.
2011-09-11 16:33:38 -05:00
James Cotton
6945f17eba
Make the StabilizationSettings.MaxRate field only apply to the stabilized
...
modes. That way ManualRate can exceed MaxRate.
2011-09-11 12:27:17 -05:00
James Cotton
482bec497b
Revert "Fixed modules that didn't initialize used UAVObjects correctly"
...
Modules should initialize their settings and the objects they source. Not just
everything.
This reverts commit 9ad85e9b7b
.
2011-08-19 09:44:38 -05:00
Corvus Corax
9ad85e9b7b
Fixed modules that didn't initialize used UAVObjects correctly
2011-08-19 13:20:15 +02:00
James Cotton
bbe3c1533a
Merge branch 'next' into camera_stabilization
2011-08-10 21:57:45 -05:00
James Cotton
ab288e95ab
Stabilization: Small patch so that by default the integral is zeroed while
...
throttle is low (good for quads) but can be disabled (good for planes and also
testing helis).
2011-08-10 03:51:46 -05:00
James Cotton
96c2d24253
Merge branch 'next' into camera_stabilization
...
Conflicts:
flight/CopterControl/Makefile
flight/CopterControl/System/coptercontrol.c
flight/Modules/Actuator/actuator.c
flight/Modules/GPS/GPS.c
flight/Modules/ManualControl/manualcontrol.c
flight/Modules/Stabilization/stabilization.c
flight/Modules/System/systemmod.c
shared/uavobjectdefinition/manualcontrolsettings.xml
shared/uavobjectdefinition/stabilizationdesired.xml
2011-07-30 10:06:10 +09:00
Mathieu Rondonneau
612a439199
OP-423: simplify the MODULE_INITCALL macro and remove the ordering loops
2011-07-12 20:44:32 -07:00
James Cotton
0aec3b592c
Changing stabilization so that the PIDs are zeroed when not armed, but NOT when
...
the throttle is < 0. This will make things like axis-lock work while armed
without throttle. HOWEVER don't hold your stick in the arming position for a
long time or you can wind up the integrals now.
2011-07-12 14:35:32 -05:00
James Cotton
53ca934b2b
Merge branch 'heli_stabilization'
...
Conflicts:
flight/CopterControl/System/inc/pios_config.h
flight/Modules/Attitude/attitude.c
flight/Modules/ManualControl/manualcontrol.c
flight/Modules/Stabilization/stabilization.c
2011-07-12 13:28:20 -05:00
Mathieu Rondonneau
9b9b5a1367
OP-423: remove ';' at the end of macro
2011-07-05 19:44:54 -07:00
James Cotton
ad8876c62a
OP-193: Weak leveling variant on rate mode. Slowly will return to level.
2011-07-04 20:44:55 -05:00
James Cotton
a7206361d2
Slightly different way to respond to sticks in axis lock that is much more
...
responsive and avoids overshoot.
2011-06-26 21:59:54 -05:00
Mathieu Rondonneau
de55c56427
OP-423: Change capital on macro to be uppercase for consistency.
2011-06-24 22:03:03 -07:00
James Cotton
dedbcbfceb
Correct nasty bug on range checking for max rate and use the axis lock rate
...
desired when in that mode.
2011-06-24 11:30:28 -05:00
James Cotton
038f955cb1
OP-410 OP-333: Axis lock (heading hold) implemented
2011-06-24 10:38:26 -05:00
James Cotton
28501842c3
Expose the rate D term which in simulations seems to help damp oscillations for
...
high RateKp terms. However it might be sensitive to gyro noise (vibrations).
In addition it is mathematically similar to lead shapign so probably only use
one or the other.
2011-06-24 10:38:25 -05:00
James Cotton
a09642675c
Tweak the integral calculation so it is scaled in ms internally. This avoids a
...
loss of precision on the accumulation.
2011-06-24 10:38:25 -05:00
James Cotton
373689207a
Add a 1-tap IIR filter into the gyros in the feedback path. This will make the
...
stabilization output a bit more resilient to the high frequency noise from
gyros. However this value shouldn't be too high as it will increase the phase
delay of the feedback loop and decrease stability. Default is 5 ms.
Note: this resests the stabilizationsettings object. Sorry guys.
2011-06-24 10:38:25 -05:00
Mathieu Rondonneau
fc1e3f574c
OP-423: Split task create and module init in order to postpone task creation once the full heap is available.
...
Also implement some ordering (quite ugly still) in the module init and task creation order so we can decide which module to start/init first
and which module to start/init last.
This will be replaced/adapter with the uavobject list later (once it's implemented).
reserving some space for module init and task create parameters to customize module/task creation (this will be usefull once we get the list and customization from customer).
Changes have been made for OP and CC. Tested comped with CC,OP, sim_posix.
Only ran on bench with CC for couple of minutes (code increase expected but no dropping of stack which is good).
This gives task creation at the time wherethe all heap is available.
2011-06-19 22:35:40 -07:00
James Cotton
5044ea36de
Start initializing objects in the modules that consume them. Shouldn't affect
...
OP yet but not tested.
2011-06-18 14:20:51 -05:00