Peter Barker
b276034c60
APM_Control: correct use of incorrect abs functions
6 years ago
IamPete1
e443b864c6
AR_AttitudeControl: add sail heel PID
6 years ago
Randy Mackay
d7d6c6ab04
AR_AttitudeControl: clarify units of get_steering_out_heading argument
...
also update comments
7 years ago
Randy Mackay
96097586c3
AR_AttitudeControl: reset I if speed controller not called recently
7 years ago
Randy Mackay
106b8abab7
AR_AttitudeControl: get_throttle_out_from_pitch accepts vehicle speed
7 years ago
Randy Mackay
d5ef3c2e0f
AR_AttitudeControl: get_throttle_out_from_pitch uses motor limits
...
This allows removing I-term build up from throttle hitting 100%
7 years ago
Randy Mackay
65b020eac3
AR_AttitudeControl: re-order pitch control to match other similar methods
7 years ago
Randy Mackay
1c18d06aa3
AR_AttitudeControl: move unnecessary else
7 years ago
Randy Mackay
9b60e0844b
AR_AttitudeControl: add get_desired_pitch accessor
7 years ago
Ebin
ccb32cf357
APM_Control: BRAKE param default is true
7 years ago
Randy Mackay
9eebb6225a
AR_AttitudeControl: brake fix to set limit in only one direction
7 years ago
Ebin
ce182fd307
APM_Control: fixed test condition in AR_AttutudeControl.cpp
7 years ago
Ebin
97a260a980
APM_Control: get_throttle_out_from_pitch() accepts dt as argument
7 years ago
Ebin
657ff06380
APM_Control: added balancing function for BalanceBot
7 years ago
Randy Mackay
5e7b37f0b2
AR_AttitudeControl: remove constraint on steering output
7 years ago
Ammarf
b614ca9b75
AR_AttitudeControl: disable limits when _ACCEL_MAX is zero
7 years ago
Randy Mackay
67475a9eaa
AR_AttitudeControl: reset turn-rate I term if not run for 0.2sec
7 years ago
Randy Mackay
e691b680ca
AR_AttitudeControl: add speed-control-active method
...
allows caller check if speed controller if active
also consolidated other methods to use this check to reduce a little bit of duplicate code
7 years ago
Randy Mackay
3b71d0360a
AR_AttitudeControl: const get_decel_max and get_stopping_distance
7 years ago
Randy Mackay
a7fbfe7767
AR_AttitudeControl: caller provides dt instead of calculated internally
...
This allows the vehicle's main loop rate to be used instead of an internally calculated dt which suffers from jitter
7 years ago
Randy Mackay
856d592b1d
AR_AttitudeControl: accel limit stops
7 years ago
Ammarf
832778e471
AR_AttitudeControl: add separate decel limit
7 years ago
Randy Mackay
f6c06496e2
AR_AttitudeControl: fix accel limiting
7 years ago
Ammarf
a9ee949c32
AR_AttitudeControl: limit desired steering rate
7 years ago
Randy Mackay
56672c1c28
AR_AttitudeControl: fix get_steering_out_rate use of max turn rate and acceleration
7 years ago
Randy Mackay
9feaf9cfdd
AR_AttitudeControl: const some internal variables
...
non-functional change
7 years ago
Randy Mackay
fa76a7c904
AR_AttitudeControl: get-steering-out-lat-accel uses negative speeds
7 years ago
Randy Mackay
5563691bd1
AR_AttitudeControl: assume positive steering output rotates vehicle clockwise
...
also remove steering scaling by speed which has been moved to AR_MotorsUGV
7 years ago
Randy Mackay
ce44326ba8
AR_AttitudeControl: fix get_steering_out_heading while reversing
7 years ago
Randy Mackay
3f1f68b130
AR_AttitudeControl: support vectored thrust
...
steering output is not scaled for speed
steering integrator does not build up at low speed
7 years ago
Randy Mackay
9c2da896b9
AR_AttitudeControl: get_throttle_out_stop only stops once desired speed reaches zero
...
this reduces the final jerk to a when transitioning from forward to reverse and in cases where ATC_ACCEL_MAX is small
7 years ago
Randy Mackay
365e1030db
AR_AttitudeControl: separate speed limiting to new method
...
This allows the desired speed limiting (by acceleration) to be done before the speed-to-throttle PID controller is run.
This is required so the avoidance calls (which work on the desired speed) can be run after limiting but before the PID controllers
7 years ago
Daniel Widmann
27234f78c6
AR_AttitudeControl: Allow using steer rate control for skid steer rovers without GPS
7 years ago
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
7 years ago
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
7 years ago
Randy Mackay
d139f0e28e
AR_AttitudeControl: add get_stopping_distance
7 years ago
Randy Mackay
5e90cdbf59
AR_AttitudeControl: parameter desc range increase
...
new steering controller can use higher FF and zero P
7 years ago
Randy Mackay
1bb18bc941
AR_AttitudeControl: get_throttle_out_speed uses timeout definition
7 years ago
Randy Mackay
4ac5ef3a13
AR_AttitudeControl: allow filter to be zero
...
Also increase default filter to 50hz
7 years ago
Randy Mackay
16d3e5c00d
AR_AttitudeControl: add feed foward for speed and steering rate control
7 years ago
Randy Mackay
40bb2b0ad9
AR_AttitudeControl: set throttle speed pid dt
7 years ago
Randy Mackay
a2b1807ca0
AR_AttitudeControl: fix turn-rate controller timeout
7 years ago
Peter Barker
e0c586876b
APM_Control: use GPS singleton
7 years ago
Randy Mackay
cabced82f1
AR_AttitudeControl: fix parameter descriptions
7 years ago
Michael Oborne
78f732c380
AR_AttitudeControl: fix parameter docs
7 years ago
Randy Mackay
744f4baf22
AR_AttitudeControl: add parameter description increment
7 years ago
Randy Mackay
f00f4ce79b
AR_AttitudeControl: fix get_desired_speed timeout
7 years ago
Randy Mackay
36c5f057ae
AR_AttitudeControl: add get_desired_turn_rate lat_accel and speed
...
for reporting use only
7 years ago
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.
7 years ago
Randy Mackay
b9a1621d38
AR_AttitudeControl: minor comment fix
...
non-functional change
7 years ago