Commit Graph

150 Commits

Author SHA1 Message Date
Jason Short d893cde785 navigation.pde : Added a drag/velocity prediction filter for improved I term wind correction. 2012-06-29 21:20:28 -07:00
Jason Short 50b3ef66a7 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 6dc1e02f76 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 95076bf08e 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 7278e8d1e5 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 2ee8237b5f 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 4430f75344 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 ad13854ab7 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 c7c6dd70b9 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 8f0bc57967 ArduCopter - navigation.pde - added logging of Loiter PID controllers 2012-04-11 23:52:25 +09:00
rmackay9 7dc18b53ad 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 ce6b1ccc75 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 485cebf85c 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 f6638d00d6 ACM: Smoother Speed calcs 2012-03-16 14:10:19 -07:00
Jason Short 0c6a87db3f ACM: Disabled D term experiment for Loiter until more testing 2012-03-15 19:20:03 -07:00
Jason Short 0edc1020ac ACM: Loiter D performance updates 2012-03-13 10:23:31 -07:00
Jason Short 580c5e109e 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 56d2b9ef05 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 68d210660e ACM: Added note about scaling rates 2012-03-10 12:43:28 -08:00
Jason Short 4b75f74d2c ACM: Altered the scaling speed for altitude changes for faster rises. 2012-03-10 12:43:01 -08:00
Jason Short 874f5aaef6 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 9986776e0d 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 9a2be4701f removed Constraint that caused JLN's horizontal drift. 2012-02-26 11:33:37 -08:00
Jason Short 22982cda0f Loiter updates 2012-02-23 22:03:26 -08:00
Jason Short 151e710668 Added slow wp option in calc_desired_speed 2012-02-19 13:13:21 -08:00
Jason Short a4b8119c24 added workaround for resetting alt. 2012-02-19 12:40:08 -08:00
Jason Short cbe297b634 scaled X velocity 2012-02-16 22:09:22 -08:00
Jason Short 0b011e3cd3 added option in code for Loiter specific gains 2012-02-15 09:10:15 -08:00
Jason Short 8cc480f7e6 upped max target speed to center of loiter 2012-02-10 22:46:27 -08:00
Jason Short 0f3c3bb563 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 5de459a160 tweaks to Loiter 2012-01-30 21:13:03 -08:00
Jason Short ba81e2aa69 pid_nav_lat incorrectly labeled 2012-01-29 23:02:00 -08:00
Jason Short 25c2c9b437 removed filter. Don't need it. 2012-01-29 17:10:52 -08:00
Jason Short 0213f4dd88 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 86c7742dc0 added loiter_d to allow users to configure alternate Loiter alg 2012-01-22 14:19:27 -08:00
Jason Short 32241319c1 Revert "test to switch loiter controls"
This reverts commit 92270371d038f246d535f0ace9fc19272c44291d.
2012-01-22 14:19:27 -08:00
Jason Short 04a2eee410 test to switch loiter controls 2012-01-22 12:28:34 -08:00
Jason Short e1f7fa34ea 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 ab8bf0b560 increasing the velocity near WP 2012-01-21 11:59:49 -08:00
Jason Short 0475dbf8ae relocated reset_I term functions to central location 2012-01-20 22:52:30 -08:00
Jason Short 589f8bc557 Disabled Ryans filter until we get real-world testing in. 2012-01-13 12:48:02 -08:00
Jason Short 8416de7e9c Added Ryan's GPS lag filter
Removed unused code
refined alt change
2012-01-12 22:28:58 -08:00
Jason Short 464038b3ea New Loiter control 2012-01-11 22:41:51 -08:00
Jason Short 36516161b5 Climb rate control 2012-01-10 23:43:44 -08:00
Jason Short 12493d6431 Moved wind comp into a define 2012-01-07 22:27:26 -08:00
Jason Short a640311f58 Added Note 2012-01-06 10:20:59 -08:00
Andrew Tridgell a6808162d6 ACM: fixed a warning
comment out some unused debug code
2012-01-05 10:14:53 +11:00
Jason Short bf8e3975ec 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 24bddb1c47 Added more constraints around velocity 2011-12-31 10:59:59 -08:00
Jason Short 1d636219f9 New Style WP navigation for high wind 2011-12-30 23:48:05 -08:00
Jason Short 4535bc4fd9 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 4bfa5def76 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 e42d5cb4f9 Fixes for Smooth Loiter 2011-12-29 23:02:02 -08:00
Randy Mackay ff66a3417c 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 a4e00f7459 Tweaks to fix Loiter
Changed save location to int32
added some filtering and smoothing
2011-12-25 15:44:49 -08:00
Jason Short c8ca841bd7 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 c7da9c63f1 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 29788b98bd Adjustments for High Wind enviroments 2011-12-12 17:47:45 -08:00
Jason Short 3edd471983 Upped the max pitch to deal with wind - based on T3 testing 2011-12-12 10:10:33 -08:00
Jason Short b442a1b23c added debug prints, broke out Angle val to debug 2011-12-11 09:53:44 -08:00
Jason Short a0cef1cc88 made it so nav is called in Simple mode 2011-12-10 23:31:37 -08:00
Jason Short 0969bf3146 Added Bearing to home, distance to home calcs 2011-12-10 10:19:20 -08:00
Randy Mackay f4fd6e0910 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 e3700365d4 Stability patch updates,
Cleanup
2011-12-06 21:03:56 -08:00
Jason Short 7e1d41be14 Fix error with calc_nav_pitch_roll 2011-11-28 21:27:29 -08:00
Jason Short 104f93cef5 Fixed navigation bug 2011-11-28 14:22:05 -08:00
Jason Short 2e0b55d887 Cosmetic cleanup, commented functions for compiler warnings 2011-11-27 22:23:02 -08:00
Jason Short f75f514681 added param for crosstrack gain defaulted to 4 2011-11-19 13:59:37 -08:00
Jason Short 332684f649 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 01a4a120df Merge branch 'master' of https://code.google.com/p/ardupilot-mega 2011-11-10 10:02:08 -08:00
Jason Short 124527b108 Trying to break Nav to test a feature 2011-11-10 10:01:57 -08:00
Andrew Tridgell 48eb35c45a 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 811ec3ec58 made crosstrack functions static 2011-11-09 23:30:16 -08:00
Jason Short 289d54038f renamed original_target_bearing 2011-11-09 23:04:04 -08:00
Jason Short d8dcb0e0d0 Added in crosstrack correction - test for SIM 2011-11-09 22:56:09 -08:00
Jason Short 4d27b725db Tuning nav_WP
Added more notes
2011-11-09 12:06:37 -08:00
Andrew Tridgell 87d5581046 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 4149819bf7 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 9f50cd14d1 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 327679b999 Merge branch 'master' of https://code.google.com/p/ardupilot-mega 2011-10-15 16:35:09 -07:00
Michael Oborne a84d0cb406 ac quick redo fix 2011-10-16 06:58:03 +08:00
Jason Short 3c51ce6a5f 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 c3b93d70df Added Andrew's user hooks. 2011-10-15 15:29:33 -07:00
Jason Short 23c0bb9814 Updates to guided mode from Michael O.
removed or commented unused static vars
2011-10-15 13:09:04 -07:00
Jason Short 1a222fa2f4 slowed acceleration from WP 2011-10-13 10:54:51 -07:00
Andrew Tridgell 661b6c4508 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 3be34ed31a Implementing a limiter for the ramp up of speed to WPs. 2011-10-03 10:37:56 -07:00
Jason Short df1a39f650 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 b805263974 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 d0405b0a0a 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 a2886fc991 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 e0b4a26dee 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 790bd6f8c9 Altered CIRCLE mode to allow Loiter_N_Turns to work in AP mode. 2011-09-21 13:19:36 -07:00
Jason Short 59a2d2a256 Converted Millis to Micros
added navigation check to return a failed navigation
2011-09-19 22:24:57 -07:00
Jason Short 0d31d775b8 cleanup
added more ifdef for optflow
2011-09-15 23:41:15 -07:00
Jason Short 9a508a20f4 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 7e79612125 Removed last of Xtrack 2011-09-11 20:40:05 -07:00
Jason Short 7d57dfa3ec removed Xtrack and increased rate error limit 2011-09-11 20:36:20 -07:00
jasonshort ec68835898 circle mode patch 2011-09-09 11:59:42 +10:00
Andrew Tridgell be8864f424 renamed top level directories
ArduCopterMega -> ArduCopter
added archives directory for old code
2011-09-09 11:27:41 +10:00