Commit Graph

222 Commits

Author SHA1 Message Date
Jason Short
77f47a45d0 ACM : Nav rate limit lowered to prevent bad oscillations due to GPS latency. 2012-08-18 09:04:22 -07:00
rmackay9
64cfaf74b7 ArduCopter: renamed "_new_alt" parameter to just "new_alt" in force_new_altitude and set_new_altitude functions 2012-08-18 21:46:48 +09:00
Jason Short
1b7e27658b ACM : removed old note 2012-08-17 17:03:40 -07:00
Jason Short
bdc1c41e62 ACM: made target bearing the lead filtered location
Had some major nav trouble from crosstrack if I used the laggy position.
2012-08-16 15:38:25 -07:00
rmackay9
36f947acb9 ArduCopter: changed all "int" to "int16_t" and a few "long"s to "int32_t".
Also moved "simple_counter" variable from global scope to the "update_simple_mode" function which is the only place that it's actually used.
2012-08-16 20:04:46 +09:00
rmackay9
a72bf6ef57 ArduCopter: replaced abs with labs as required in a few places.
Also fixed a small bug in the get_stabilize_pitch function in which it was using the roll (instead of pitch) to decide whether it should let the i term build-up or not.
2012-08-16 17:51:09 +09:00
Jason Short
f1af837543 ACM: Switched to filtered loc 2012-08-14 14:11:52 -07:00
Jason Short
3ad08b7ffc ACM : Added larger WP radius for fast waypoints so we don't loose speed angling in on the WP at the last second. 2012-08-10 10:02:32 -07:00
Jason Short
adf5939ba4 ACM: navigation - Alt cleanup, fast corner support 2012-08-09 16:59:44 -07:00
Andrew Tridgell
fb26160d3b ACM: change to use get_bearing_cd() instead of get_bearing() 2012-08-08 12:12:30 +10:00
Jason Short
1d085c8cf4 Added minimum speed for RTL 2012-07-20 13:27:35 -07:00
Jason Short
f46e8468c4 Arducopter: Adjusted speed of climb to not stall out before hitting peak 2012-07-19 17:53:49 -07:00
Jason Short
6506ebf69f Arducopter: Fix compile issue 2012-07-19 10:09:16 -07:00
Jason Short
2df487ab7b Arducopter: Slower WP deceleration for RTL and WP navigation
Slower descent and slightly faster ascent
2012-07-19 09:50:18 -07:00
Jason Short
c995749aaa Arducopter
upped nav max to 32deg from 30
renamed calc_desired_speed to get_desired_speed
Added get_desired_climb_rate function to do smooth transitions in altitude
modified get_altitude_error to override the older altitude manager.
2012-07-18 22:57:11 -07:00
Jason Short
f73a2004be Arducopter: INS
updated Nav control to use INS
2012-07-18 22:57:10 -07:00
Jason Short
3048d2f9b4 Arducopter: WP_radius
Switching to stored WP_radius in meters, just like Arduplane
2012-07-10 21:53:38 -07:00
Andrew Tridgell
be763a6ead 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
038116f521 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
5ed345fe94 ACM: removed some Location functions which are now in AP_Math 2012-07-04 13:44:36 +10:00
Jason Short
c29a0bc3f8 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
1a6549fef7 removed GPS ground speed calc - was causing some funny business during the transition. 2012-07-03 17:16:14 -07:00
Jason Short
eea788b63f navigation.pde : Added a drag/velocity prediction filter for improved I term wind correction. 2012-06-29 21:20: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
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