<div dir="ltr">I was mostly silent on that call - there were plenty of experiences shared on the subject. I'll say my team(s) got away with PD control for years. As far back as FLL. We never needed integral until 2 years ago when we had a rolling "foot" that raised the angle of the robot through a wide range of back pressure. Then we spent a good month learning about different anti-windup options. I still think of the integral as the trickiest of the terms and the least useful - until you run into that specific case where it is vital.<div><br></div><div>Back in our FLL days we built a PID trainer. A single gear motor driving a sweeping arm in front of a marked "gauge." By being dedicated, tuned with rotation sensors, and off-robot it allowed more team members to play around with values and develop an intuitive sense of the dynamics. Then we'd change the gearing from the motor or the load on the arm and see how the dynamics change. We should do that again for our incoming FTC rookies.</div><div><br></div><div>It's not that hard to estimate what PID values you might expect to start with, but the tuning process can go pretty rapidly once you get used to it - and then the starting values don't matter that much - the actual values arrived at through experimentation reign supreme. Setting yourself up for an efficient tuning process helps a lot. Prioritize feedback and real-time adjustment without having to recompile your code unless you determine your PID controller needs functional improvement.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 24, 2020 at 4:40 PM Ezra Christensen via DPRGlist <<a href="mailto:dprglist@lists.dprg.org">dprglist@lists.dprg.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Patrick - do you have anyone on your team that is versed in ML? I'm wondering if anyone has run an auto-tuning ML algo to come up with 

coefficients, including possibly non-constant coefficients. The trial/error approach seems tedious and prone to "close enough" calls from humans bored of optimizing the three.<br><br>My FLL team built a calibrate sequence for i they would push before a run. They found the motors and tires weren't consistent and the bot would start driving better after X distance. Their hypotheses was that the total error had to become sufficient to let the integral start doing it's part to account for any mechanical drift of how the bot was feeling at that moment (EV3s aren't super consistent, even with the same parts). <div><br></div><div><br></div><div>Ezra</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 24, 2020 at 4:23 PM Patrick R. Michaud via DPRGlist <<a href="mailto:dprglist@lists.dprg.org" target="_blank">dprglist@lists.dprg.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">While I've always been able to make good use of P-controllers, full PID tuning was a bit of a black box for me, even after reading lots of other resources (including the Wikipedia article).<br>
<br>
This past season our 7172 team needed much better control of their elevator -- P-control wasn't at all sufficient -- and the trick for us was to have the robot display the real-time contributions of P, I, and D to the result.  That really enabled the group to see how they could improve the I and D terms to get a more consistent result.<br>
<br>
I hope any videos/recordings of Tuesday's session are posted soon, I'd really like to see what was discussed.<br>
<br>
Pm<br>
<br>
<br>
On Thu, Sep 24, 2020 at 03:40:42PM -0500, David Anderson via DPRGlist wrote:<br>
> Howdy DPRG,<br>
> <br>
> As per our discussion at RBNO Tuesday evening on PID tuning, check out:<br>
> <br>
> <a href="https://en.wikipedia.org/wiki/PID_controller" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/PID_controller</a><br>
> <br>
> and particularly the cool animation of adjusting P,I,D values in the "Manual<br>
> tuning" section about half way down.<br>
> <br>
> There's also a useful "for dummies" page at:<br>
> <br>
> <a href="https://www.csimn.com/CSI_pages/PIDforDummies.html" rel="noreferrer" target="_blank">https://www.csimn.com/CSI_pages/PIDforDummies.html</a><br>
> <br>
> cheers<br>
> <br>
> dpa<br>
> <br>
> <br>
> _______________________________________________<br>
> DPRGlist mailing list<br>
> <a href="mailto:DPRGlist@lists.dprg.org" target="_blank">DPRGlist@lists.dprg.org</a><br>
> <a href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" rel="noreferrer" target="_blank">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br>
_______________________________________________<br>
DPRGlist mailing list<br>
<a href="mailto:DPRGlist@lists.dprg.org" target="_blank">DPRGlist@lists.dprg.org</a><br>
<a href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" rel="noreferrer" target="_blank">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr">Ezra C Christensen</div>
_______________________________________________<br>
DPRGlist mailing list<br>
<a href="mailto:DPRGlist@lists.dprg.org" target="_blank">DPRGlist@lists.dprg.org</a><br>
<a href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" rel="noreferrer" target="_blank">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br>
</blockquote></div>