Commit Graph

157 Commits

Author SHA1 Message Date
Jason Short
c5d3620d2b Arducopter: INS
updated Nav control to use INS
2012-07-18 22:57:10 -07:00
Jason Short
9de2c00d93 Arducopter: WP_radius
Switching to stored WP_radius in meters, just like Arduplane
2012-07-10 21:53:38 -07:00
Andrew Tridgell
a643d2aa6b ACM: use get_distance_cm() not get_distance()
this fixes a bug introduced in 28f2eb6b9
2012-07-11 07:50:07 +10:00
Jason Short
9e796899e4 Airspeed patch:
pre-calculated airspeed resistance pitches copter automatically to gain a certain speed allowing the speed controller to work off of a better set point - similar to Alt hold.
added param tilt_comp with a default of 54 which equals 19.5° of pitch to go 6m/s
upped Z and Y target speeds to int32_t for speed squared calculation
2012-07-09 13:13:32 -07:00
Andrew Tridgell
35b73b9d01 ACM: removed some Location functions which are now in AP_Math 2012-07-04 13:44:36 +10:00
Jason Short
fcc38889b4 Navigation
increased speed governor to get faster WP travel
added param for WP tilt - basically a precalculated I term for wind resistance.
2012-07-03 17:34:50 -07:00
Jason Short
c20c04ed24 removed GPS ground speed calc - was causing some funny business during the transition. 2012-07-03 17:16:14 -07:00
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