1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-11-30 08:24:11 +01:00
Commit Graph

61 Commits

Author SHA1 Message Date
James Cotton
b6c056fef2 Use the updated L3GD20 format and make attitude.c use the gyro data from the
fifo
2012-01-24 15:52:17 -06:00
James Cotton
5efbfb02fa Make the BMA180 sensor system acquire from the queue. Correct the orientation
and speed it up to 10 MHz communications.
2012-01-24 15:09:20 -06:00
James Cotton
8c208412c9 Give the BMA180 a dynamically allocated device structure and also make it
properly bind to a SPI and slave number.  Temporarily reducing spi bus to
slowest possible speed.
2012-01-24 14:38:00 -06:00
James Cotton
8e79bc2ee2 Temporarily refactor attitude to directly read the sensors instead of pull from
their queues until the interrupts are working properly
2012-01-24 11:54:23 -06:00
James Cotton
e9552065a9 Reenable the CC3D sensors 2012-01-24 11:03:33 -06:00
James Cotton
486cdb5dbb Got CC running again although with altitude and bmp085 disabled as well as the
CC3D drivers.
2012-01-24 10:32:42 -06:00
James Cotton
4d3af7afbf Add ID test to ADXL345 2012-01-24 09:23:12 -06:00
James Cotton
728c05f973 Crude implementation of sensor reading for CC3D 2012-01-24 09:23:12 -06:00
James Cotton
11471ff68b Update drivers for CC to the new EXTI system and SPI calls 2012-01-24 09:23:12 -06:00
James Cotton
a20d654744 Update the attitude algorithm for CC to use the Gyros and Accels UAVObjects
instead of AttitudeRaw
2012-01-24 09:23:12 -06:00
James Cotton
bb0bfe0ae4 Merge branch 'next' into revolution3
Conflicts:
	flight/Bootloaders/CopterControl/Makefile
	flight/Bootloaders/PipXtreme/Makefile
	flight/Bootloaders/Revolution/inc/pios_config.h
	flight/CopterControl/Makefile
	flight/INS/inc/pios_config.h
	flight/Libraries/taskmonitor.c
	flight/Modules/Altitude/altitude.c
	flight/Modules/Attitude/attitude.c
	flight/OpenPilot/Makefile
	flight/OpenPilot/Makefile.posix
	flight/OpenPilot/System/inc/pios_usb_board_data.h
	flight/OpenPilot/System/inc/taskmonitor.h
	flight/OpenPilot/System/pios_board.c
	flight/OpenPilot/System/taskmonitor.c
	flight/PiOS/Boards/STM32F4xx_Revolution.h
	flight/PiOS/STM32F4xx/pios_bmp085.c
	flight/PiOS/STM32F4xx/pios_iap.c
	flight/PiOS/pios.h
	flight/Revolution/System/inc/pios_config.h
	flight/Revolution/System/inc/taskmonitor.h
	flight/Revolution/System/taskmonitor.c
	ground/openpilotgcs/src/plugins/serialconnection/serialplugin.cpp
	shared/uavobjectdefinition/systemalarms.xml
	shared/uavobjectdefinition/taskinfo.xml
2012-01-21 11:27:03 -06:00
James Cotton
0b00e748a9 OP-565: Added the ability to do a trim flight to compute the accels for level flight 2011-12-21 15:25:00 -06:00
James Cotton
f725fbe128 CopterControl: Fix build due to changing the AttitudeRaw structure. 2011-09-10 13:56:00 -05:00
James Cotton
86b652bbab Merge branch 'next' into camera_stabilization 2011-08-14 18:07:57 -05:00
James Cotton
a2b76adc33 Attitude: Do not start attitude estimation until accel data appears. This
fixes the NaN when AttitudeSettings not available.
2011-08-13 18:53:42 -05:00
James Cotton
c4e272b9ad Merge branch 'next' into camera_stabilization 2011-08-09 20:16:45 -05:00
James Cotton
ec2121bca8 Attitude: Keep first element of quaternion positive 2011-08-08 21:16:04 -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
2c7cfe435f Somehow this task runs quite a few times at the beginning so dT was going to
zero and making the attitude get NaN.  Wrote recovery code for that condition
(should never occur) and also force minimum dT to 1 ms (also shouldn't occur)
2011-07-12 14:18:19 -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
James Cotton
2d995dc2f7 OP-539: Don't call the gyro setting callback during init because it clears the
gyro bias estimation.
2011-07-05 22:27:03 -05:00
Mathieu Rondonneau
9b9b5a1367 OP-423: remove ';' at the end of macro 2011-07-05 19:44:54 -07:00
James Cotton
4c0245281d Now we store the gyro bias avoid quashing the initialization correction. 2011-06-25 12:32:06 -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
e6ad21d881 Make gyro bias in deg/s * 100 to calibrate more precisely. 2011-06-24 10:51:07 -05:00
James Cotton
ab7ff56d96 Compute initial gyro bias while calibrating to speed up convergence 2011-06-24 10:38:26 -05:00
James Cotton
0a4bbcc12e Added a field for initial gyro bias to speed up initialization. 2011-06-24 10:38:26 -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
Mathieu Rondonneau
65cf467ca4 OP-423: move the module initialize funtion into a specific section for OP and CC.
- create linker section for those <module>Initialize()
- later this list will incorporate parameters as well. (this probably will be more a OP feature to swap/remove/delete module on the fly.
- this is not done at compile time anymore by Makefile.
- this will allow us to have control on the module start at run-time (not implemented but build the ground for it).
- this simplify the startup (Part of code re-org).
- this change does not affect sim_posix and win32 (since they don't need that)
- ensure it's compiling for PiOS.posix
- port to PiOS.win32 but not tested (not compiled)
- tested on CC
- compile on OP.
- this free ~200 bytes.
- current avalable bytes (is we keep the same remaining bytes on the stack than before) is easily passed the 1.2Ko mark on CC with new gcc (4.5.2)
- this does not include init-reorg for each module (I still think more can be freed)
2011-06-16 22:13:19 -07:00
dankers
5f32803763 Changed accelKp = 1; in 3C filter when calibrating bias when arming. Increase default yaw by 0.005 2011-05-17 04:15:28 +10:00
dankers
71d582495e On arm bias calibration terms now matches boot calibration terms 2011-05-16 00:16:19 +10:00
dankers
84e09031a7 Faster attitude calc, be much more aggressive with working out bias.
Change AccelkP to 0.05 to give accels more influence, just balacing out the 3C filter.

Change stab setting to be a better default fopr most Quads.
2011-05-15 05:58:58 +10:00
James Cotton
dbf8a77a94 Now there are other attitude settings (like rotation angle) make sure these are
loaded right away at power up
2011-05-13 07:24:44 -05:00
James Cotton
4ec0263dfc OP-476: If AttitudeSettings.ZeroDuringArming is true, then while arming (1
second) it will speed up the estimate of gyro bias.
2011-05-07 15:29:21 -05:00
James Cotton
7e418866be Update the AttitudeSetting object to make the board rotation more human
readable and update the GCS fields appropriately.
2011-05-05 13:04:56 -05:00
peabody124
3afdc7e41c CC-24: Rotate the CC board at any angle relative to "flat and level" with GCS
config plugin updates.  Has not been tested in flight yet although seems
sensible so please be careful when using this code.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3166 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-15 06:37:16 +00:00
peabody124
a57c289b3a CC-24: Support mounting CC at any angle by applying a rotation. Now need to
rotate sensors to make sure stabilization behaves well so don't use till then.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3100 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-29 02:15:57 +00:00
peabody124
bd5925d526 CC-35: Separate term for CC yaw bias rate and others
Note: AttitudeSettings changed so you'll need to re-zero it

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3090 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-28 18:42:48 +00:00
chebuzz
2e5863281c CC/Stabilization - Fix attitude bias not being applied over all sampled quantities
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3065 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-24 17:12:04 +00:00
osnwt
8d085552fb CC: Modules/Attitude/attitude.c: unused headers removed (do we have another?)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2967 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-04 21:12:37 +00:00
osnwt
e9d507dd3e CC: Fixed compilation error after uavobject rename
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2966 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-04 20:56:58 +00:00
peabody124
ea390d0b90 CC-26: Add accel bias term. Note it's units are LSB, not m/s^s
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2895 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-26 22:21:44 +00:00
pip
9a2bdac49c Reduced CC CPU usage from 57% to 46% by moving the floating point multiplies outside of the accelerometer downsample/averaging loop in the updateSensors() function.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2809 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-19 09:33:03 +00:00
peabody124
8498512855 CC-20 Attitude initialization: Make sure no divide by 0 condition possible
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2761 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:55 +00:00
peabody124
9f71f4121c CC-18 Attitude: Change units to proper engineering ones. An accelKp=1 means
that it will completely follow the accel attitude each cycle and is way too
high.  Ki=1 means the gyro bias wil be correct by accels each cycle (way too
high).

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2755 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:35 +00:00
peabody124
cfe295377c CC-18: Normalize the gravity vector to unity gain
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2754 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:31 +00:00
peabody124
74cc7dbfc9 CC-20 Attitude: Jack up Kp and Ki values for first 5 seconds to force faster
convergence of gyro bias, then the normal values can be lower.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2753 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:28 +00:00
peabody124
03fb82ad0a CC Attitude: Change when AttitudeRaw is set to end of attitude estimation,
because this is what is determines when the Stabilization code executes.
Because we aren't oversampling gyros relative to the PID in CC we should set
the attitude first (computational time to do so is negligible).

Also change update rate to 500 Hz.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2750 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:18 +00:00