Commit Graph

173 Commits

Author SHA1 Message Date
uncrustify d49df965f3 uncrustify ArduCopter/navigation.pde 2012-08-21 19:19:50 -07:00
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