Commit Graph

168 Commits

Author SHA1 Message Date
Randy Mackay
a8857726d1 AR_AttitudeControl: replace get_steering_out_angle_error with heading
internally uses AHRS's heading to determine angle error so overally a non-functional change
2018-04-05 12:14:59 +09:00
Randy Mackay
e6f8021519 AR_AttitudeControl: add angular accel and rate limits
This limits the change in desired turn rate to reduce impossible requests which should help avoid overshoot
Also add rotation rate limit to turn-rate controller
2018-04-05 12:14:59 +09:00
Randy Mackay
57f2eb6853 AR_AttitudeControl: minor comment fix 2018-03-31 14:47:30 +09:00
Peter Barker
e2de9d62cd APM_Control: use ins singleton 2018-03-16 00:37:35 -07:00
Randy Mackay
89725a7aa5 AR_AttitudeControl: minor comment fix
non-functional change
2018-03-15 09:58:27 +09:00
Randy Mackay
d139f0e28e AR_AttitudeControl: add get_stopping_distance 2018-03-14 12:40:04 +09:00
Randy Mackay
54d8a4852f AR_AttitudeControl: reduce steer rate P default to 0.2 2018-03-09 13:17:38 +09:00
Randy Mackay
2aeda48512 AR_AttitudeControl: minor arg name fix
non-functional change
2018-02-09 17:36:21 +09:00
Randy Mackay
5e90cdbf59 AR_AttitudeControl: parameter desc range increase
new steering controller can use higher FF and zero P
2018-01-12 08:15:34 +09:00
Randy Mackay
1bb18bc941 AR_AttitudeControl: get_throttle_out_speed uses timeout definition 2018-01-05 13:33:21 +09:00
Randy Mackay
4ac5ef3a13 AR_AttitudeControl: allow filter to be zero
Also increase default filter to 50hz
2018-01-05 13:33:21 +09:00
Randy Mackay
16d3e5c00d AR_AttitudeControl: add feed foward for speed and steering rate control 2018-01-05 13:33:21 +09:00
Randy Mackay
40bb2b0ad9 AR_AttitudeControl: set throttle speed pid dt 2018-01-05 13:33:21 +09:00
Randy Mackay
9930550cfc AR_AttitudeControl: lengthen timeout to 200ms
This is required because occasionally the turn rate controller can be disabled for just over 100ms as new navigation commands are loaded
2018-01-05 13:33:21 +09:00
Randy Mackay
a2b1807ca0 AR_AttitudeControl: fix turn-rate controller timeout 2018-01-05 13:33:21 +09:00
Peter Barker
e0c586876b APM_Control: use GPS singleton 2017-12-27 00:58:02 +00:00
Andrew Tridgell
1dac512567 APM_Control: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Randy Mackay
cabced82f1 AR_AttitudeControl: fix parameter descriptions 2017-12-11 17:01:18 +09:00
Michael Oborne
78f732c380 AR_AttitudeControl: fix parameter docs 2017-12-11 08:35:33 +09:00
Randy Mackay
744f4baf22 AR_AttitudeControl: add parameter description increment 2017-12-09 16:23:25 +09:00
Randy Mackay
f00f4ce79b AR_AttitudeControl: fix get_desired_speed timeout 2017-12-09 16:23:22 +09:00
Randy Mackay
36c5f057ae AR_AttitudeControl: add get_desired_turn_rate lat_accel and speed
for reporting use only
2017-12-09 12:18:49 +09:00
Grant Morphett
f7db538220 APM_Control: Fixed the subparam indexs to start at 1
AFAIK there is still a bug in ArduPilot where subparams should not start at index 0.  This is due to the way the index math and bit shifing works as it incorrectly offsets all 0 index params to 0. We allow 2 levels of sub params - 3 levels in total.  So params, sub params and sub sub params.  The 0 parameter in all those is unfortunately always references param[0].  So param[0] and subparam[0] and subsubparam[0] will reference the same parameter value.  Its why we always say start the index from 1 as the math and bitshifting then works correctly.

Yeah this is worded badly - hard to explain.
2017-11-29 09:43:10 +09:00
Randy Mackay
b9a1621d38 AR_AttitudeControl: minor comment fix
non-functional change
2017-11-27 10:35:26 +09:00
khancyr
2a25011b14 AR_AttitudeControl: const local variables 2017-11-09 09:53:12 +09:00
khancyr
76a6649a2d AP_Autotune: remove unimplemented function 2017-11-08 17:21:56 +09:00
khancyr
e9e1dac188 AR_AttitudeControl: remove unused skid_steering arg from get_throttle_out 2017-11-08 15:45:35 +09:00
khancyr
aa09541847 AR_AttitudeControl: const ahrs reference 2017-11-08 15:34:41 +09:00
khancyr
d226ffeeb2 AP_AttitudeControl: remove tabs
non-functional change
2017-11-08 15:06:25 +09:00
Daniel Widmann
49887235df AR_AttitudeControl: get_steering_out methods accept reverse argument 2017-11-08 14:36:23 +09:00
Randy Mackay
ce73d724c8 AR_AttitudeControl: rate-control for skid-steering uses I term even at low speeds 2017-10-26 19:45:04 +09:00
Randy Mackay
ee3daaa7c9 AR_AttitudeControl: reset input filter for steering and throttle controllers
Also only set dt to non-zero value
2017-10-26 19:44:54 +09:00
Randy Mackay
2986d3eb7d AR_AttitudeControl: fix braking
this fix ensures the output throttle is never in the opposite direction from the desired-speed
there is a possibility that this could lead to rougher throttle response when the vehicle is transitioning from forward to backwards motion because the throttle response will immediately go to zero when the desired speed cross over zero
2017-10-26 19:44:38 +09:00
Randy Mackay
49cbbf4d76 AR_AttitudeControl: minor comment fix 2017-10-26 19:44:32 +09:00
Randy Mackay
8daa8cba1f AR_AttitudeControl: record desired turn rate and speed for logging 2017-10-26 19:44:26 +09:00
Randy Mackay
7e5f98b535 APM_Control: fix throttle and steering integrator calc 2017-10-07 14:55:16 +09:00
Lucas De Marchi
15527d762f APM_Control: add static create method 2017-09-26 03:01:21 +01:00
Michael du Breuil
c34104b369 APM_Control: Simpify yaw controller trig 2017-09-25 16:49:54 -07:00
Randy Mackay
9f876dc7a0 AR_AttitudeControl: throttle and steering control library
Throttle controller has these advantages over existing controller:
based on velocity in vehicle's forward-back axis rather than ground-speed
straight-forward PID controller using speed error as input
speed control acceleration limts
stop control slows vehicle smoothly
configurable filtering

Steer controller has these advantages over existing controller:
output scaled properly for skid-steering vehicles
layered P and PID controller for angular error and rate control
configurable filtering
2017-08-15 20:47:19 +09:00
Randy Mackay
164096225b AP_SteerController: fix get_steering_out_rate bug when reversing 2017-08-05 11:20:58 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
0f5d1ae2dd APM_Control: Use SI units conventions in parameter units
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +10:00
Andrew Tridgell
f6cc506791 APM_Control: Added derating of steering wheel 2016-12-27 13:33:52 +11:00
Peter Barker
71e42a4eac APM_Control: add missing parameter metadata 2016-10-27 09:15:03 -07:00
Mathieu OTHACEHE
152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Tom Pittenger
82777873af Revert "APM_Control: Convert references to AP_Airspeed."
This reverts commit cc5a2417a6.
2016-08-07 17:54:24 -07:00
Tom Pittenger
8dad05d12e Revert "Airspeed: store reference in libraries and populate it"
This reverts commit c090ba2257.
2016-08-07 17:54:24 -07:00
Tom Pittenger
c090ba2257 Airspeed: store reference in libraries and populate it
- also had to move the initial definition in plane.h so it happened before the others.
2016-08-04 11:06:44 -07:00
AndersonRayner
cc5a2417a6 APM_Control: Convert references to AP_Airspeed. 2016-08-04 10:09:04 -07:00
Grant Morphett
8d6b417adb AP_SteerController: Adding support for Rovers driving reverse
This change is mostly for handling the reverse yaw.
2016-07-17 08:15:33 +10:00
Andrew Tridgell
8a03b3ba22 APM_Control: reduce elevator when past LIM_ROLL_CD
this reduces elevator control when rolled over hard in fixed
wing. Using the elevator when on the side just caused earth frame yaw
and is counter productive. It can also prevent some aircraft from
recovering from inverted flight.
2016-06-24 11:28:18 +10:00