Randy Mackay
67c69a19ee
Copter: remove baro-only alt hold
...
Saves 8 bytes of memory and more importantly simplifies the alt hold
calculations
2013-02-24 14:41:29 +09:00
Randy Mackay
37d3e1d7e4
Copter: add zero slope checks to wpinav
...
also added RTL fix to set wpinav target explicitly
2013-02-24 14:41:25 +09:00
Randy Mackay
53ab1d5d9b
Copter: add advance track call to actually move towards waypoint
...
Also added unrelated check that waypoint is valid before updating
waypoint distance.
2013-02-24 14:41:17 +09:00
Randy Mackay
fcf102b2cf
Copter: inertial nav waypoint controller
...
#define added to allow compile time selection of traditional or inav
based loiter and wp controllers
2013-02-24 14:41:09 +09:00
Randy Mackay
d2767b911c
AP_Math: switch get_distance_cm to return uint32_t
...
Includes changes required on ArduCopter and ArduPlane side as well
2013-01-26 17:04:12 +09:00
Randy Mackay
aaecc25ac7
Copter: leonard's inav2
...
Moved loiter controller to navigation.pde
2013-01-25 15:16:35 +09:00
Randy Mackay
fd02cfe706
Copter: added set_nav_mode to control initialisation of nav controllers
...
Renamed run_navigation_controllers() to run_autopilot()
Renamed update_nav_wp() to update_nav_mode()
Renamed wp_control to nav_mode to be more consistent with roll-pitch,
yaw and throttle controllers
2013-01-25 15:16:29 +09:00
Robert Lefebvre
dde713aaa5
Arducopter: Backing out my changes for a new Loiter Repositioning mode. Leonard and Jonathan's work will trump this.
2013-01-20 21:32:00 +09:00
James Bielman
5631f865b2
Update floating point calculations to use floats instead of doubles.
...
- Allows use of hardware floating point on the Cortex-M4.
- Added "f" suffix to floating point literals.
- Call floating point versions of stdlib math functions.
2013-01-16 13:52:01 +11:00
Randy Mackay
04677bfb95
Copter: constrain auto roll and pitch to 45 degrees
2013-01-15 12:17:32 +09:00
jschall
d6b3d370c3
Correct spelling of run_navigation_contollers
2013-01-14 16:45:15 -08:00
Randy Mackay
df2137ed72
Copter: constrain loiter so that it never commands more than 45 degrees of lean in lat or lon directions
2013-01-14 13:34:19 +09:00
Andrew Tridgell
860f4b2605
Copter: merge the latest 2.9 changes into master
2013-01-08 14:37:40 -08:00
rmackay9
576af6d487
ArduCopter: bug fix to althold desired rate calculation. Fix from Jonathan.
2013-01-02 09:55:37 +11:00
rmackay9
e77b54c7dc
ArduCopter: bug fix to GUIDED mode. Now checks that desired altitude was reached before deciding the waypoint is complete.
2013-01-02 09:24:31 +11:00
Craig@3DR
e350bfbba8
Removed 2 more degree symbols from comments
2013-01-02 09:20:08 +11:00
Robert Lefebvre
6e64b1b357
ACM: Precision Loiter RePositioning code.
...
Protected behind a #define
2013-01-02 09:19:39 +11:00
rmackay9
7a5e4b8549
ArduCopter: stop unnecessary updates of target altitude and knock-on effect of too many EV message in dataflash log
2013-01-02 09:19:17 +11:00
rmackay9
4dfe3a2d73
ArduCopter: remove weird character from navigation.pde
2013-01-02 09:11:25 +11:00
Jason Short
19ae5c30eb
ACM : Formatting
2012-12-13 20:12:39 -08:00
rmackay9
dadad8677e
ArduCopter: added descriptions for most parameters that did not have them
...
Renamed loiter_radius to circle_radius to better reflect it's purpose.
Removed some unused parameters including WP_MODE, WP_MUST_INDEX, LOG_LASTFILE, AXIS_P
2012-12-10 21:45:57 +09:00
rmackay9
f522ef078e
ArduCopter: remove unused functions do_target_yaw, do_loiter_at_location, get_altitude_error and clear_new_altitude
2012-12-10 17:30:50 +09:00
rmackay9
154e3c33f7
ArduCopter, AP_InertialNav: consolidated ThirdOrderComplementaryFilter into AP_InertialNav to save about 200bytes of RAM
2012-12-10 00:43:11 +09:00
rmackay9
8c2423f618
ArduCopter: code clean-up. Changed update_nav_wp to use a switch statement and relocated to navigation.pde
2012-12-09 15:24:19 +09:00
rmackay9
9dd978576b
ArduCopter: auto yaw changes to allow pilot override of yaw during missions
...
Added set_yaw_mode to better control of yaw controller changes and variable initialisation.
Replaced AUTO_YAW mode with separate yaw controllers YAW_LOOK_AT_NEXT_WP, YAW_LOOK_AT_LOCATION, YAW_LOOK_AT_HEADING.
Pilot manual override of yaw causes yaw to change to YAW_HOLD (i.e. manual yaw) until next waypoint is reached.
Added get_yaw_slew function to control how quickly autopilot turns copter
Changed YAW_LOOK_AHEAD to use GPS heading and moved to new get_look_ahead_yaw function in Attitude.pde
Renamed variables: target_bearing->wp_bearing, original_target_bearing->original_wp_bearing.
Removed auto_yaw_tracking and auto_yaw variables and update_auto_yaw function as they are no longer needed.
Simplified MAV_CMD_CONDITION_YAW handling (do_yaw). We lose ability to control direction of turn and ability to do long panorama shots but it now works between waypoints and save 20bytes.
2012-12-08 14:23:32 +09:00
rmackay9
a5bb54e36e
ArduCopter: RTL clean-up and slightly improved landing sensor
...
Consolidated RTL state to be captured by rtl_state variable.
Combined update_RTL_Nav and verify_RTL functions which performed the same function but one was for missions, the other for the RTL flight mode.
Renamed some RTL parameters and global variables to have RTL at the front.
Landing detector now checks accel-throttle's I term and/or a very low throttle value
2012-12-06 10:31:52 +09:00
rmackay9
072ffec493
ArduCopter: allow INERTIAL_NAV to be enabled separately for horizontal and vertical position
2012-12-06 10:31:41 +09:00
rmackay9
7035529953
ArduCopter: remove unused get_desired_climb_rate function
2012-12-06 10:31:09 +09:00
rmackay9
3cbef57c64
ArduCopter: first merge of leonard's accel based altitude controller plus other changes from Randy
...
Changes include:
New low-level get_throttle_accel function takes target acceleration and compares vs earth-frame Z accelerometer values to produce output to motors.
Higher level throttle controllers modified to call new get_throttle_accel controller
Throttle_rate_stabilized controller added which maintains a desired climb/descent rate
Throttle_land controller added - descends using normal auto throttle controller to 10m then descends at 50cm/s
Multiple throttle modes added including landing mode
Land flight mode no longer needs GPS
Throttle cruise maintenance moved to update_throttle_cruise function
2012-12-06 10:30:49 +09:00
Robert Lefebvre
8c18a60766
ACM: Small fix to Yaw Look Ahead
2012-12-04 14:50:14 -05:00
Robert Lefebvre
315a7e8000
ACM: Yaw Look Ahead Changes
2012-12-04 13:26:41 -05:00
Andrew Tridgell
bcae83c4f6
ACM: make it possible to run CLI on radio port in ArduCopter
2012-11-21 21:41:34 +11:00
rmackay9
dcd98eee78
ArduCopter: remove some variables no longer required with introduction of AP_state
2012-11-12 12:41:25 +09:00
Jason Short
ea7f639ebf
ACM: Added fast descent with Bill P's equation for managed accerlation
2012-11-11 18:23:45 -08:00
Jason Short
fb2180ddcd
ACM : climb rate option using Bill P's equation
2012-11-09 22:15:16 -08:00
Jason Short
d2a5928c06
Ap state updates
2012-11-09 22:15:15 -08:00
rmackay9
2b714ff7b0
ArduCopter: remove unused functions wrap_360f, wrap_180f and wrap_PI
2012-11-08 15:20:08 +09:00
rmackay9
1f801714e8
ArduCopter: incorporate new version of inertial navigation
...
Moved several navigation functions from ArduCopter.pde to navigation.pde
2012-11-07 19:21:31 +09:00
Jason Short
36040461df
ACM : Formatting
2012-10-28 12:12:38 -07:00
Jason Short
5149a8c723
ACM: Added notes, credit to decel code. added speed_min to calc.
2012-10-27 14:13:24 -07:00
rmackay9
4877348c49
ArduCopter: remove some unhelpful constraints on nav_lat and nav_lon.
...
Increase other constraints from 3200 to 32000. These constraints are there to ensure int32_t do not cause an overflow when added to an int16_t.
2012-10-24 22:04:35 +09:00
Jason Short
6a40fcd56a
ACM : fix compiler warning on non returning function
2012-10-21 14:37:42 -07:00
Jason Short
8842a7dc1b
ACM : Cast to int32_T
...
Don't think it really needs it, but I feel better with the cast.
2012-10-21 14:36:05 -07:00
Jason Short
a0752dc7dc
ACM Acceleration management
...
removed unused waypoint_radius var
removed slow_wp
updated speed management system to maintain a constant acceleration or deceleration of 1m/s
changed version to 2.8.1a
2012-10-21 14:32:39 -07:00
rmackay9
401fb4101c
ArduCopter: removed deprecated mag offset routine.
...
Also removed commented-out block of code from navigation.pde.
2012-10-17 19:47:21 +09:00
rmackay9
b3ff368589
ArduCopter: position lead filters modified to use lag which varies by gps
2012-09-20 15:49:09 +09:00
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