Commit Graph

199 Commits

Author SHA1 Message Date
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 c42f9ece43 Inertial Control
I added inertial navigation based on the simulator data. This is an option only available if you compile with Arduino and set
#define INERTIAL_NAV ENABLED
in the APM_Config.h file.

This has been tested for one real flight and did not crash my quad, but consider it very alpha. The quad may be unpredictable at first until the error correction fixes poorly calibrated accels. Be Careful.

Most of the real work is in the inertia file, but the error correction, new variable defines and calibration calls are sprinkled throughout.

The Log should record RAW messages with special debugging values.
2012-06-13 22:34:45 -07:00
Jason Short 9732b7d2dc navigation.pde:
removed unneeded WP_Distance check
remove unneeded return for Navigate
removed unneeded rate_D calcs
removed unused functions
2012-05-17 11:05:05 -07:00
Jason Short d1cd04486a removed retro loiter code since Angel has a branch now.
shrank speed filter to avoid latency
removed unused forward estimator code

placed code for switchover to gps.groundspeed at 1.5m/s

added clamp for D term when below .5m/s to eliminate noise

added hybrid I-term based on speed error and position

changes Loiter D term to use position rather than acceleration to avoid noise
2012-05-15 22:14:23 -07:00
Adam M Rivera b2a7227ae7 ArduCopter/Navigation: Updated code to reference the new g.retro_loiter param instead of the compile define. 2012-04-23 00:19:18 -05:00
Adam M Rivera 1676e09f12 navigation.pde: Put the new calc_GPS_velocity method in a compiler if that checks the new RETRO_LOITER_MODE config value (saves space and ensures its not being used unless retro loiter mode is enabled) 2012-04-19 10:21:04 -05:00
Adam M Rivera d29f1ef331 Loiter: Made the "retro loiter" routines configurable. Add RETRO_LOITER_MODE ENABLED to APM_Config.h to enable the older loiter shtuff. 2012-04-19 10:16:29 -05:00
Adam M Rivera d4a4641ae6 navigation.pde: Added calc_GPS_velocity. Added constraint to x/y error and x/y rate error. 2012-04-18 23:06:15 -05:00
rmackay9 fad162989f ArduCopter - navigation.pde - added logging of Loiter PID controllers 2012-04-11 23:52:25 +09:00
rmackay9 66c4f752e3 ArduCopter - navigation - corrected comment in check_missed_wp function to clarify that you've passed the waypoint when the direction to the way point is more than 100 degrees off (not 10 degrees off) from your original bearing towards the waypoint 2012-03-20 17:11:22 +09:00
rmackay9 22315cd41a ArduCopter - Navigation.pde - corrected comment re wp_distance and get_distance to clarify that they are in cm (not meters!) 2012-03-20 16:13:38 +09:00
rmackay9 91b2b48fd8 ArduCopter - bug fix to calc_XY_velocity (was using uninitialised last_longitutde and last_latitude for speed calculations) 2012-03-18 12:11:12 +09:00
Jason Short 427dacba70 ACM: Smoother Speed calcs 2012-03-16 14:10:19 -07:00
Jason Short 7153b94ade ACM: Disabled D term experiment for Loiter until more testing 2012-03-15 19:20:03 -07:00
Jason Short 468d9c4b4f ACM: Loiter D performance updates 2012-03-13 10:23:31 -07:00
Jason Short 73e2bd6cd8 ACM: Got the sign wrong. I'm using the derivative of the error now and not the sensor, so the sign was reversed. 2012-03-12 13:11:05 -07:00
Jason Short deed802d1a ACM: Broke out the D term for the PID loop to add custom filtering. The current AC_PID filtering wasn't working for this application and we needed more smoothing. Bad pitch oscillations were being transmitted to the copter. 2012-03-11 23:21:49 -07:00
Jason Short 450f89ec5d ACM: Added note about scaling rates 2012-03-10 12:43:28 -08:00
Jason Short eb53200179 ACM: Altered the scaling speed for altitude changes for faster rises. 2012-03-10 12:43:01 -08:00
Jason Short 204f9957b0 ACM: Added force_new_altitude call to do immediate changes in altitude and no gradual changes. 2012-03-10 12:42:22 -08:00
rmackay9 afc4aceb32 ArduCopter - fixed small compile warning about unused x_iterm and y_iterm in navigation.pde 2012-03-11 01:27:58 +09:00
Jason Short 6e53949c2a removed Constraint that caused JLN's horizontal drift. 2012-02-26 11:33:37 -08:00
Jason Short 24345d4f43 Loiter updates 2012-02-23 22:03:26 -08:00
Jason Short 81a861c8ac Added slow wp option in calc_desired_speed 2012-02-19 13:13:21 -08:00
Jason Short bcd5129f9b added workaround for resetting alt. 2012-02-19 12:40:08 -08:00
Jason Short 908ca4e915 scaled X velocity 2012-02-16 22:09:22 -08:00
Jason Short 9a3e862b55 added option in code for Loiter specific gains 2012-02-15 09:10:15 -08:00
Jason Short efce991bfb upped max target speed to center of loiter 2012-02-10 22:46:27 -08:00
Jason Short c35ad2d493 Loiter update - removed compensation curve. Did some more math and its's not worth the effort, harder to tune. 2012-02-09 22:22:00 -08:00
Jason Short 8aaf88e13b tweaks to Loiter 2012-01-30 21:13:03 -08:00
Jason Short 23709bafef pid_nav_lat incorrectly labeled 2012-01-29 23:02:00 -08:00
Jason Short ae65a0f03f removed filter. Don't need it. 2012-01-29 17:10:52 -08:00
Jason Short 7833cea9d4 2.2B6 - Please verify Heli still functions properly.
Added AC_PID lib
Updated landing code
bug fixes
2012-01-28 22:00:05 -08:00
Jason Short 25529dec69 added loiter_d to allow users to configure alternate Loiter alg 2012-01-22 14:19:27 -08:00
Jason Short 74daadb252 Revert "test to switch loiter controls"
This reverts commit 92270371d038f246d535f0ace9fc19272c44291d.
2012-01-22 14:19:27 -08:00
Jason Short 6476ba22f2 test to switch loiter controls 2012-01-22 12:28:34 -08:00
Jason Short fffa1af3b3 Fixed speed governor which was letting speed get to 0.
added Loiter_d to replace Nav_P for rate control
wp_distance calc now returns CM
2012-01-21 22:12:57 -08:00
Jason Short 8cb645f3c2 increasing the velocity near WP 2012-01-21 11:59:49 -08:00
Jason Short 6784989e83 relocated reset_I term functions to central location 2012-01-20 22:52:30 -08:00
Jason Short 6591089110 Disabled Ryans filter until we get real-world testing in. 2012-01-13 12:48:02 -08:00
Jason Short 569ff5046f Added Ryan's GPS lag filter
Removed unused code
refined alt change
2012-01-12 22:28:58 -08:00
Jason Short 99ea69ef7b New Loiter control 2012-01-11 22:41:51 -08:00
Jason Short 3e8ff39d4b Climb rate control 2012-01-10 23:43:44 -08:00
Jason Short 63be9c5f7b Moved wind comp into a define 2012-01-07 22:27:26 -08:00
Jason Short c9f60f239d Added Note 2012-01-06 10:20:59 -08:00
Andrew Tridgell 2913948520 ACM: fixed a warning
comment out some unused debug code
2012-01-05 10:14:53 +11:00
Jason Short e36d2f6e96 Added Wind compensation for Stabilize
moved speed calc to it's own function
decreased acceleration from WPs
2012-01-04 09:28:37 -08:00
Jason Short 26d0bf93ff Added more constraints around velocity 2011-12-31 10:59:59 -08:00
Jason Short c6586810cf New Style WP navigation for high wind 2011-12-30 23:48:05 -08:00
Jason Short 95a70cf32e lowered to nav_lat and nav_lon int16
added a version that didn't have I term added to get a better indication of velocity estimation
2011-12-29 23:02:03 -08:00
Jason Short 53c09774e5 removed Rate_I from Loiter, lowing Rate_P from Loiter too. Too aggressive leads to rapid oscillations in air, and not around loiter position. 2011-12-29 23:02:03 -08:00
Jason Short fa49aa5eec Fixes for Smooth Loiter 2011-12-29 23:02:02 -08:00
Randy Mackay bbe6dea980 OptFlow - initial support for APM2 (there are still problems) including adding ability to set Chip Select pin.
Other unrelated changes are:
a) fixed typo in 'esitmate_velocity' to 'estimate_velocity'.
b) moved init_compass from system.pde to sensors.pde which seemed consistent with other sensors.
2011-12-30 12:06:31 +09:00
Jason Short 1afa25d9ef Tweaks to fix Loiter
Changed save location to int32
added some filtering and smoothing
2011-12-25 15:44:49 -08:00
Jason Short 5518882c69 Fixed resolution issue with Xtrack
Added stub for loiter based on estimation
integrated fix for tracking GPS at slow speeds for loiter
2011-12-23 14:46:32 -08:00
Jason Short c6657f4a93 updated Loiter control to provide an alternative to GPS rate control for users with circling issues. Works in SIM, needs flight testing 2011-12-14 22:08:41 -08:00
Jason Short edc3a731d4 Adjustments for High Wind enviroments 2011-12-12 17:47:45 -08:00
Jason Short d83ad1acd4 Upped the max pitch to deal with wind - based on T3 testing 2011-12-12 10:10:33 -08:00
Jason Short c1aa015ef1 added debug prints, broke out Angle val to debug 2011-12-11 09:53:44 -08:00
Jason Short f89fed02c3 made it so nav is called in Simple mode 2011-12-10 23:31:37 -08:00
Jason Short 3ff7b047d5 Added Bearing to home, distance to home calcs 2011-12-10 10:19:20 -08:00
Randy Mackay 4dc2956ca9 Navigatino - small bug fix in loiter controller in which the y_iterm was coming from the Lon controller instead of the lat controller. Found by Sylvain. http://www.diydrones.com/forum/topic/listForContributor?user=18fsncw0k1x6i 2011-12-09 22:13:37 +09:00
Jason Short 6dfdd754ea Stability patch updates,
Cleanup
2011-12-06 21:03:56 -08:00
Jason Short eb6d34e1fc Fix error with calc_nav_pitch_roll 2011-11-28 21:27:29 -08:00
Jason Short b4a0d8a275 Fixed navigation bug 2011-11-28 14:22:05 -08:00
Jason Short b3bd4bd3c9 Cosmetic cleanup, commented functions for compiler warnings 2011-11-27 22:23:02 -08:00
Jason Short 39d0df4cef added param for crosstrack gain defaulted to 4 2011-11-19 13:59:37 -08:00
Jason Short 35524f6da7 Added optimizations for radian calls to remove a division.
added a protection for entering AP modes without Home being set by GPS lock.
2011-11-19 11:08:13 -08:00
Jason Short dd96b146b5 Merge branch 'master' of https://code.google.com/p/ardupilot-mega 2011-11-10 10:02:08 -08:00
Jason Short 3450e91039 Trying to break Nav to test a feature 2011-11-10 10:01:57 -08:00
Andrew Tridgell 2d204b727b fixed build error
the prototype extractor was finding the commented out version of
cross_track_test(), which had a different prototype
2011-11-10 22:01:09 +11:00
Jason Short 3f0b42f64f made crosstrack functions static 2011-11-09 23:30:16 -08:00
Jason Short d8361dfe67 renamed original_target_bearing 2011-11-09 23:04:04 -08:00
Jason Short 7259cf2180 Added in crosstrack correction - test for SIM 2011-11-09 22:56:09 -08:00
Jason Short d6c0e34516 Tuning nav_WP
Added more notes
2011-11-09 12:06:37 -08:00
Andrew Tridgell 28634f51b7 ArduCopter: use specific sized data types in a lot of places
this will make the Desktop build more consistent with the real AVR
build, and also with a future ARM build
2011-11-08 11:05:36 +11:00
Jason Short 2458fe078f Loiter updates
Added new option to do rate based Loiter with lat and long values, avoiding GPS heading latency issues.
2011-10-27 12:37:33 -07:00
Jason Short 42d0b5cdb3 tweaked Alt hold PIDs, loiter PIDs based on SIM testing and feedback.
Increased distance error for loiter for faster return to center.
2011-10-16 15:41:54 -07:00
Jason Short 4c1d10a75e Merge branch 'master' of https://code.google.com/p/ardupilot-mega 2011-10-15 16:35:09 -07:00
Michael Oborne 5c10b2af6c ac quick redo fix 2011-10-16 06:58:03 +08:00
Jason Short 4052fd4f73 Made wpspeed governor run per second so 1hz gps doesn't fail. Gave a 1m/s minimum. Increased WPspeed max to 4.0m/s 2011-10-15 15:35:18 -07:00
Jason Short 4be2776b17 Added Andrew's user hooks. 2011-10-15 15:29:33 -07:00
Jason Short 142707711e Updates to guided mode from Michael O.
removed or commented unused static vars
2011-10-15 13:09:04 -07:00
Jason Short 338396b76a slowed acceleration from WP 2011-10-13 10:54:51 -07:00
Andrew Tridgell d89ae696ef merged the GCS updates from ArduPlane to ArduCopter
this removes all the non-MAVLink GCS options, and simplifies the HIL
and GCS code a lot. It also adds async sending of low priority GCS
text messages.
2011-10-11 20:53:43 +11:00
Jason Short 1ff372a41d Implementing a limiter for the ramp up of speed to WPs. 2011-10-03 10:37:56 -07:00
Jason Short de61e87128 Added ADC gyro Filtering for quads - this fixes a noise issue introduced into the controller
added Position mode
removed
Added back in the accelerometer experiment
Added filter_result boolean to enable filter on the fly
2011-09-29 23:27:23 -07:00
Jason Short 758d0e1aec Attempting to mimic loiter values for 4.0.42
lowered Rate Error max in loiter
2011-09-28 23:11:19 -07:00
Jason Short c209d6e6dd 2.0.46 -Not flight tested!
restored 42 alt hold code
removed throttle timer, replaced with safer constant
increased alt control range
reformatted nav_rate calls
removed unused simple mode defines
set alt hold home to 10m
tuned down rateP to .13 from .14 for broader application.
2011-09-27 09:35:05 -07:00
Jason Short d495e6a9c4 turned off Stabilize_I by default because it was hurting loiter
tweaked speed control of rate_nav
2011-09-24 21:49:45 -07:00
Jason Short 236f665378 Added Loiter Turns - It orbits the Current location
Added WP to Loiter_time so you can spec a specific location in the planner
added new Navigation alg. Should perform better (doesn't rely on 45° flow fields like last one)
Added "Jump" counter so missions don't get overwritten in flight.
removed I term by default for Rate pitch and roll
2011-09-24 17:40:29 -07:00
Jason Short 5ca50f1f01 Altered CIRCLE mode to allow Loiter_N_Turns to work in AP mode. 2011-09-21 13:19:36 -07:00
Jason Short b2b28cc90c Converted Millis to Micros
added navigation check to return a failed navigation
2011-09-19 22:24:57 -07:00
Jason Short 8d0a2fae9b cleanup
added more ifdef for optflow
2011-09-15 23:41:15 -07:00
Jason Short d29cfbcee3 Integration of optical flow
bug fixes for new Simple mode
increased Baro filter by 2 fields
2011-09-15 23:33:00 -07:00
Jason Short 885ec18182 Removed last of Xtrack 2011-09-11 20:40:05 -07:00
Jason Short bae05178f0 removed Xtrack and increased rate error limit 2011-09-11 20:36:20 -07:00
jasonshort 8870e2f309 circle mode patch 2011-09-09 11:59:42 +10:00
Andrew Tridgell 1456a2a912 renamed top level directories
ArduCopterMega -> ArduCopter
added archives directory for old code
2011-09-09 11:27:41 +10:00