[Dprglist] straight lines
David P. Anderson
davida at smu.edu
Sat Jan 15 10:42:35 PST 2022
Paul et al,
This is not correct. What I attempted to make "very clear" is that the
STEERING of the robot does not use a proportional controller, but rather
a linear controller with a deadzone. That all happens above the level
of the two PID controllers, which obviously DO incorporate a
proportional term, the "P" in "PID."
I obviously need to think about my communication skills, as I "very
clearly" did not explain this well.
cheers!
dpa
On 1/15/22 11:08 AM, Paul Bouchier via DPRGlist wrote:
>
> */[EXTERNAL SENDER]/*
>
> Doug, Re your statement about David probably using a P controller with
> Kp=1, he made it very clear at last RBNV that he is not using a
> proportional controller; that he adds & subtracts a speed offset from
> each wheel's setpoint that is a constant, irregardless of the
> magnitude of angular error. i.e. Kp=0. He mentioned the amount of
> offset as being around 10-15% of full speed, though I imagine it's
> adjustable. The point is it has constant magnitude, regardless of the
> magnitude of the angular error.
> Cheers
> Paul
>
> On Sat, Jan 15, 2022 at 9:22 AM Doug Paradis <paradug at gmail.com
> <mailto:paradug at gmail.com>> wrote:
>
> Paul,
> Regarding the method of reading encoders. I suggest that you
> try pulse timing instead of pulse counting for low encoder ticks
> per period. The following is a quote from the article at
> https://www.motioncontroltips.com/how-are-encoders-used-for-speed-measurement/
> <https://www.motioncontroltips.com/how-are-encoders-used-for-speed-measurement/>,
> "With the pulse timing method, a high-frequency clock signal (like
> the system clock)is counted during one encoder period (the pitch,
> or interval between two adjacent lines or windows). The number of
> cycles of the clock signal (m), divided by the clock frequency
> (f), gives the time for the encoder period (the time for the
> encoder to rotate through one pitch)."
>
> I suspect that if you look into the details of David 's code, he
> is actually using a P controller to correct the heading error with
> a Kp of 1 (or a scaled value) but doesn't call it a P controller.
> In other words, the "rotation" is something like rotation = delta
> encoder counts (i.e., rotation = Kp (delta encoder counts, where
> Kp = 1).
>
> Regards,
> Doug P.
>
> On Sat, Jan 15, 2022 at 5:32 AM Paul Bouchier via DPRGlist
> <dprglist at lists.dprg.org <mailto:dprglist at lists.dprg.org>> wrote:
>
> David - going back to your description of how you manually
> turned the wheel a little bit when the speed was supposed to
> be zero, and the integral of speed error built up until it
> overpowered you and drove the wheel back to where it started -
> I'm confused because I don't understand how you must be
> calculating speed for that to be true. A naive implementation
> of speed-measurement would be to count the number of encoder
> counts in each 40ms tick. So when you manually moved the
> wheel, let's imagine there were a few ticks when a few counts
> were detected, then no more counts in any subsequent ticks.
> Speed should be zero after motion stops, so where's the error
> to integrate and cause corrective force to build up over time?
> Put another way, there was a speed error a few seconds ago but
> now there's no speed error; when does that error "go away",
> and when does the PID loop stop remembering it and trying to
> fight against it?
>
> This is relevant to my current concerns with Mowbot, since it
> was discovered at Tuesday's meeting that the low rate of
> encoder ticks on Mowbot means I'll only see 2 or 3 counts per
> tick (hard to control), so I'm thinking about adopting Pat's
> approach (which he gave up on) of measuring the period between
> count incrementing. Pat - I'm also wondering why you gave up
> on that approach and changed encoders to one that has more
> counts - was there some basic flaw in the approach?
>
> Thanks
>
> Paul
> _______________________________________________
> DPRGlist mailing list
> DPRGlist at lists.dprg.org <mailto:DPRGlist at lists.dprg.org>
> http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org
> <http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org>
>
>
> _______________________________________________
> DPRGlist mailing list
> DPRGlist at lists.dprg.org
> http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dprg.org/pipermail/dprglist-dprg.org/attachments/20220115/81119edc/attachment.html>
More information about the DPRGlist
mailing list