Posts: 12,099
Threads: 125
Likes Received: 3,738 in 2,835 posts
Likes Given: 99
Joined: Feb 2017
Reputation:
388 I think the explanation is very good. But I have already watched a bunch of videos prior to reading your article. To me, everything seems correct and made sense. Good job.
• Posts: 1,290
Threads: 67
Likes Received: 711 in 472 posts
Likes Given: 1,216
Joined: Mar 2016
Reputation:
23 Nicely done Oscar. Cleared up a few thing I was in the dark about. Thank you!
"Damn the torpedoes!!! Full speed ahead!!!"
• Posts: 3,288
Threads: 129
Likes Received: 2,740 in 1,644 posts
Likes Given: 2,969
Joined: Apr 2017
Reputation:
65 I have seen those settings and had no idea, so left them alone. Now that you have helped me understand them, there is something to check out! Thank you, Oscar
SoCal Kaity :D
OMG, no one told me it would be this much fun! Addicted :)
• Posts: 2,410
Threads: 136
Likes Received: 1,790 in 1,052 posts
Likes Given: 3,302
Joined: Jan 2017
Reputation:
50 You wouldn't even know English isn't your first language Oscar. Nice job. Well written and informative with simple to understand explanations.
• Posts: 2
Threads: 0
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: May 2018
Reputation:
0 Your article still implies that D-Setpoint Transition can turn off D-Setpoint Weight when returning the sticks towards center, --> "From my understanding, Setpoint Transition decreases the influence of Setpoint Weight when the stick is returning back to center".
This doesn't appear to be the case. The pid.c code does appear to have a confusing term, "smartFeedforward", that can turn off the D-Setpoint Weight, but I'm fairly sure this is not what we're talking about here. (???)
Also, from my personal (but not necessarily easier-to-understand) perspective, I'd frame the difference between Error and Measurement in terms of either (1) Damping or (1) Angular Acceleration Tracking.
For instance, when D-Setpoint Weight is zero, the D-term is just
-Kd*filtered_gyro/DT ...in other words, just damping; every bit of angular acceleration goes into reducing the motor commands.
When D-Setpoint Weight is equal to 1.0, the Kd terms turns into more like a acceleration tracking term,
+Kd*(feed_forward_rate - filtered_gyro)/DT ...in other words, now the Kd term is now like a proportional feedback gain on angular acceleration.
When it's neither zero nor one, then,
+Kd*(d_setpoint_weight*feed_forward_rate - filtered_gyro)/DT ...in other words, it's either over-tracking or under-tracking angular acceleration. But with, d_setpoint_weight>1, there's the potential for positive feedback. But assuming it doesn't go unstable, just means faster response with more overshoot.
•