Commit Graph

4525 Commits

Author SHA1 Message Date
Andrew Tridgell 5cd5f40f09 autotest: switch to full accel modelling in multicopter simulation
the new AHRS code should allow for centripetal compensation in
multicopters
2012-06-27 16:01:50 +10:00
Andrew Tridgell d2e72171ab ArduTracker: update for new compass interface 2012-06-27 16:01:50 +10:00
Andrew Tridgell 2e951647c4 Rover: updates for new compass interface 2012-06-27 16:01:50 +10:00
Andrew Tridgell 33440567e6 ACM: ArduCopter updates for new compass interface 2012-06-27 16:01:50 +10:00
Andrew Tridgell 3a2594fa1a APM: ArduPlane updates for new compass interface 2012-06-27 16:01:50 +10:00
Andrew Tridgell e4d28b12e5 Compass: remove the need to call calculate() on the compass object
the new AHRS code doesn't use calculate() and the compass.heading
attribute. Instead it works on the raw magnetometer vector. This
change removes the internal calculate state from the compass object
and instead adds calculate_heading() for use by older code that
doesn't go via AHRS.

This significantly reduces the calculation involved in compass updates

The null offsets enable/disable code is also removed, as it is not
needed now that compass offsets are not linked to the AHRS state.
2012-06-27 16:01:50 +10:00
Andrew Tridgell 3a41ad8e7c AHRS: normalize the ge vector in drift correction, and use barometer
The normalisation ensures the error term scales uniformly with
different accelerations.

The barometer is used for vertical acceleration estimation
2012-06-27 16:01:50 +10:00
Andrew Tridgell dae1a57dc5 ACM: adapt the ArduCopter code for new barometer interface 2012-06-27 16:01:50 +10:00
Andrew Tridgell 6639294c72 APM: update for new barometer interface
the barometer can now calibrate and return altitude values.

A 0.3 low pass filter is used on altitude to match the previous code
2012-06-27 16:01:50 +10:00
Andrew Tridgell c387edd74c Baro: added get_altitude() and get_climb_rate() interfaces
this allows the barometer driver to calibrate and return altitude and
climb rate values. This will be used by the AHRS drift correction code
for vertical velocity

The climb rate uses a 5 point average filter
2012-06-27 16:01:50 +10:00
Andrew Tridgell 06c8763881 Filter: added 5 point average float filter 2012-06-27 16:01:50 +10:00
Jonathan Challinger d230690b7b AHRS: brought DCM more inline with Bill's implementation
omega_I applied continuously. _ki larger. Stop integrating when _omega.length()>20

The key change was the scaling of ge to ensure the error is not
quadratic
2012-06-27 16:01:49 +10:00
Andrew Tridgell 2934b4173b APM: set_centripetal() is now set_fly_forward()
this controls more than just centripetal correction
2012-06-27 16:01:49 +10:00
Andrew Tridgell b676caa626 ACM: enable GPS in AHRS for ArduCopter
this is an experiment in centripetal correction for multicopters
2012-06-27 16:01:49 +10:00
Andrew Tridgell d4c8041c51 AHRS: first successful version of Bills new drift correction system
This makes 3 major changes:

 1) fixes the scaling of the yaw drift correction term to fix the time
 constant

 2) don't integrate the mag vector over multiple readings

 3) accumulate omega_I changes over 15 seconds before applying, to try
 to prevent omega_I picking up short term responses
2012-06-27 16:01:49 +10:00
Andrew Tridgell 4d08f75292 AHRS: update for new _fly_forward flag 2012-06-27 16:01:49 +10:00
Andrew Tridgell 0f5c22bd8e AHRS: implement Bills new drift correction algorithm
this is an initial implementation of this paper:

  http://gentlenav.googlecode.com/files/RollPitchDriftCompensation.pdf
2012-06-27 16:01:49 +10:00
Andrew Tridgell 52d77407d4 AHRS: added GPS support to AHRS test 2012-06-27 16:01:49 +10:00
Andrew Tridgell 37db5247cd GPS: added velocity and acceleration components
used by AHRS for acceleration correction
2012-06-27 16:01:49 +10:00
Andrew Tridgell fe865bc1dc Math: added comment 2012-06-27 16:01:49 +10:00
Andrew Tridgell c30b0d85a3 Math: moved more template functions to the .cpp files
save a bit more code space for larger functions
2012-06-27 16:01:49 +10:00
Michael Oborne 73dc86a47b firmware build 2012-06-27 08:00:18 +08:00
Jason Short eeab4c5363 Attitude.pde: Turned off boost_p for nav_throttle based on Testing feedback from Marco. 2012-06-26 10:39:42 -07:00
Jason Short c76ac4543b Added user editable define for Super simple radius 2012-06-26 10:38:46 -07:00
rmackay9 621e020dac ArduPlane HIL: fixed bug so g_gps->setHil calls send time as a uint32_t (was sending a float but was cast back to an uint32_t resulting in a meaningless time that never changed). 2012-06-26 22:59:24 +09:00
rmackay9 068fe64b9b ArduCopter HIL: changed calls to setHIL to send in time as a uint32_t (it was a float) 2012-06-26 22:50:17 +09:00
Jason Short 812bf7d874 Attitude.pde - Added small boost to alt hold for takeoff. 2012-06-25 23:12:19 -07:00
Jason Short 46fb3b783a GCS_Mavlink.pde : mav_nav only used in legacy Mavlink. 2012-06-25 23:08:25 -07:00
Jason Short cd93c40f09 Added Toy Mode control 2012-06-25 23:08:25 -07:00
Jason Short 807c4ced34 Added Toy Mode defines 2012-06-25 23:08:25 -07:00
Jason Short 80d15368bc Arducopter.pde : Added Approach mode, added "Toy" mode fun code I'm playing with.
Added landing code to make landing happen closer to home loc
Added check for distance to Loiter WP before overriding a new Loiter position.
Moved calc_loiter_pitch_roll() to 50 hz.
removed the nav_bearing var - not used with new crosstrack.
2012-06-25 23:08:25 -07:00
Jason Short 7f92d702ab commands.pde: fixed unit error for distance check 2012-06-25 23:06:28 -07:00
Jason Short a0dc1f7ab1 Config.h : New Gains based on testing, new Crosstrack gain. from 1.0 to .2 because of new algorithm 2012-06-25 23:06:28 -07:00
Jason Short c71c503c84 GCS Mavlink.pde: change reference to nav_bearing to target_bearing. 2012-06-25 23:06:28 -07:00
Jason Short 53d2a46cd6 Navigation.pde : removed old cross tracking from Arduplane. Added new 2D cross tracking. Added use of GPS velocity when above 1.5m/s 2012-06-25 23:06:28 -07:00
Jason Short 92d481c08c inertia.pde: WIP don't fly with inertia enabled until FN. 2012-06-25 23:06:28 -07:00
Jason Short 28829b0d60 Log.pde: removed nav_bearing reference and replaced with target_bearing ref 2012-06-25 23:06:28 -07:00
Andreas M. Antonopoulos bef005b5f2 AC2.6: Fix battery calculation and scaling bug for MAV1.0, now same as ArduPlane
http://code.google.com/p/arducopter/issues/detail?id=430
2012-06-24 17:01:25 -07:00
Robert Lefebvre 1064dcbd34 Open up constraint on Rate Yaw Output for all copters. 2012-06-22 10:06:01 -04:00
Jason Short 7b9583453b Added a crude Lead Filter. Needs some fine tuning, lag specification, scaling. Works great on 4hz GPS such as Mtek. 2012-06-21 11:14:20 -07:00
Jean-Louis Naudin d8be428428 APMrover 2.20b: minor update for HIL mode with the new lib
Signed-off-by: Jean-Louis Naudin <jlnaudin@gmail.com>
2012-06-21 08:10:33 +02:00
Amilcar Lucas 78ccb9d37f Add linebreaks to increase readability. 2012-06-21 00:36:10 +02:00
Jason Short 7e0708ca36 Config.h - returned low to original 120 2012-06-20 15:22:35 -07:00
Amilcar Lucas 98fbd9d53c Merge branch 'master' of https://code.google.com/p/ardupilot-mega 2012-06-21 00:21:55 +02:00
Amilcar Lucas b072a59843 Improve parameters descriptive text 2012-06-21 00:20:37 +02:00
Jason Short 839b8865aa Parameters.h: throttle_min and throttle_max now have defaults from Config.h 2012-06-20 15:02:00 -07:00
Jason Short efdf0a7fc8 changed define to a param for throttle_min and throttle_max 2012-06-20 15:00:53 -07:00
Jason Short e8510faf5d changed define to param for throttle_min 2012-06-20 15:00:05 -07:00
Jason Short 6020f6d9fa Added throttle_min as a user definable param 2012-06-20 14:58:34 -07:00
Jason Short 4f18e7f80b lowered minimum throttle 2012-06-20 08:47:47 -07:00