# Auto-steering car: PID versus "PCT" control systems

[From Bruce Abbott (2018.09.09.1715 EDT)]

The youtube video at https://youtu.be/4Y7zG48uHRo uses the example of an auto-steering car to illustrate the operation of a PID (proportional-integral-derivative) controller. The video presented the basic output function of the controller, which can be written as

Output = kpproportional error + kdderivative error + ki* integral error, where kp, kd, and ki are the respective gains for each error term.

The video illustrated how each of these terms contributes to the performance of the car as it attempts to travel down the center of its lane. The simulation begins with the car offset from lane center. To correct positional errors, the system varies the steering angle of the front wheels, which changes the car’s direction of travel, or heading. The car’s forward speed then carries the car in the direction of the heading.

With proportional control alone, the position error causes the steering angle to change in proportion to the error and in the direction of the reference position (lane center). As the car approaches the reference position, the error decreases, reducing the steering angle, until the steering angle becomes zero (straight ahead) as the car crosses lane center. Unfortunately the heading is at that point still at an angle relative to the lane and the car therefore passes center. As error develops on the other side, the steering angle changes to move the car back toward center and the whole scenario repeats. The result is a car that weaves continually back and forth across the centerline.

The addition of the derivative term makes the system sensitive to the rate at which the car’s position relative to the reference (the error) is changing. The rate of change in error (multiplied by a suitable gain) is added to the proportional term. In effect this allows the system to “anticipate” what the error value will be in the next iteration of the control loop and adjust the steering angle accordingly. Because the error is decreasing as the car approaches lane center, the steering angle is reduced relative to the purely proportional system, allowing the car to approach the centerline at a heading more nearly aligned with the lane.

In the video simulation, the car hits some rocks, bending its steering out of alignment. The car is knocked out of position but quickly recovers; however, it does not return to lane center. Instead, it runs parallel to the lane but at an offset relative to the reference position. The reason for this offset is that an error of zero no longer keeps the steering angle at zero due to the steering misalignment. To compensate so that the car goes straight, the controller must set the wheel angle at a value opposite to the misalignment, so that the net steering angle is again zero when the car is moving straight down the lane. But steering angle is proportional to error, and the only way to generate a compensating wheel angle is to allow a sufficient offset (error) to develop.

The integral term was added to correct this offset. The integral term sums the error across iterations of the loop. As the error builds, the steering angle changes to bring the car toward the centerline, and as the car approaches the centerline, the rate of error increase diminishes. When the car reaches the centerline, the cumulated error will be exactly that which is required to keep the net steering angle at zero. The car will track down the centerline but with a steady error just large enough to produce a net steering angle of zero despite the misalignment.

The video does not provide the formulas by which steering angle and the car’s forward motion change the car’s heading, nor for how the heading changes the car’s position – or in other words, the environmental linkages through which the control system must act. Nevertheless it’s not difficult to figure out. My particular implementation simulates the mechanics but ignores the physics involved in accelerating masses or determining tire adhesion to the road. I could add these, but unless the car is assumed to be traveling at high speed (so that centripetal forces are large) or on a slippery surface (causing the car to skid) I don’t believe these additions would change much. It is unclear whether the physics is modeled in the youtube simulation, although I would guess not.

The following figures depict the performance of the PID controller. First, I present the PID controller simulation with only the proportional and derivative terms at work (the integral gain was set to zero). Second, I present the same with the integral term added (integral gain > zero). Note that the gain values selected probably are not optimal ones; I simply adjusted them until control seemed to work reasonably well.

PID Controller Simulation: Proportional + Derivative only

The top panel shows the car’s later position relative to lane center (reference position) as a function of time, for 60 seconds. Immediately below this panel are the proportional, derivative, and integral gains used in the simulation. The middle panel depicts the car’s heading relative to the lane, with zero being parallel to the road. The bottom panel shows the steering angle. At 30 seconds, the car hits those rocks, knocking the steering out of alignment by 5 degrees. As the top panel shows, following recovery from the “rocks” disturbance, the car maintains a position parallel to the lane but offset from it. The bottom panel shows both the nominal steering angle (in which zero position error would produce “straight head” driving before the misalignment) and the net steering angle produced by the misalignment plus any counteracting wheel turn. After the encounter with the rocks, the car changes its nominal steering angle so that the net angle is zero once the system re-stabilizes.

PID Controller Simulation: Proportional + Derivative + Integral

In this simulation run, the integral gain is > zero so the integral term now has an effect on performance. You can see some effect of this addition prior to the disturbance in that there is a bit of overshoot and undershoot following the initial approach to lane canter. But after the steering misalignment, the offset that was clearly evident in the PD version quickly disappears, although the steering angle is again adjusted to compensate for the misalignment.

For those who might be interested, here is a system diagram:

The triangle depicted at center shows how the car’s speed translates to forward and lateral velocity relative to the lane, based on the heading angle, ω. The output function determines the steering angle. The car’s steering angle and speed determine its angular velocity – how rapidly its heading changes. Integrating the angular velocity yields the current heading, which in turn determines both the forward and lateral velocities. Taking the derivative of lateral velocity gives the change in lateral displacement during loop iteration, and summing these changes gives the current lateral position. The difference between the sensed position and the reference position determines the position error.

The PCT Controller

To provide a contrast to the PID controller, I created a two-level hierarchical controller. The top level controls the car’s position by varying the reference for the bottom level, which controls the car’s heading. Both control systems employ proportional control in their output functions; the position controller adds an integral term. The mechanical linkages in the environment are unchanged from the PID version. Here are the simulation results:

The PCT Controller: Proportional control only

The terms kpp, and kpi represent the proportional and integral gains of the position control system; the khp term is the proportional gain of the heading control system.

If you compare the performances of this system and that of the PD controller, you will see that they are almost identical. (The difference may be due to the gain values selected for each.) As with the PD controller, the system maintains an offset from lane center after the encounter with the rocks, and stays parallel to the road by adjusting the steering angle to compensate for the steering misalignment.

The PCT Controller: Proportional + Integral (position); Proportional (heading)

The performance closely resembles that of the PID controller. Here is the system diagram:

Here, the output of the position control system sets the reference for the heading control system. Because of this, the heading becomes more nearly parallel to the lane the closer the car gets to lane center, accomplishing in a more natural way what derivative control does for the PID controller. The output of the heading controller varies the steering angle to control both the heading and, through the effects of heading and speed on lateral position, the position of the car relative to lane center.

Discussion

Both controllers do a reasonably good job of controlling the car’s position relative to the reference. In the absence of an integral term in the output function of the position control system, both produce a position offset from reference after the steering misalignment, and with both, the addition of the integral term allows the car to return the its reference position despite the misalignment, by changing the steering angle to compensate for the misalignment.

The hierarchical control system seems easier to tune and may be capable of better performance than the PID controller when both are optimally adjusted. The hierarchical system is stable using only proportional control; in contrast the PID system required a derivative term to eliminate oscillations (by phase advance). Both are control systems in the canonical PCT style. I see no evidence that engineers view the PID system as controlling output, where output is defined as the actions (means of control) of the system. Both systems are designed to control the position of the car relative to a reference position and both do so by means of error between perceptions and corresponding reference values. However, for engineers the term “output” refers to the variable being controlled and “input” to the reference value. Given that these terms are used differently in PCT this likely to cause confusion among PCTers about what engineers are referring to when they use these terms.

Bruce

[Rick Marken 2018-09-10_13:36:35]

[From Bruce Abbott (2018.09.09.1715 EDT)]

Â

The PCT Controller

Â

To provide a contrast to the PID controller, I created a two-level hierarchical controller.Â The top level controls the carâ€™s position by varying the reference for the bottom level, which controls the carâ€™s heading…Â

Â

Â

RM: This is not a PCT (or a PID) model because it has the driver controlling a variable that can’t be perceived: heading, which is the angle of the wheels relative to the direction of motion (position) of the car. What can be perceived is steering wheel angle. So this becomes a correct model with a few changes in labels and arrows so that steering wheel angle becomes the lower level controlled variable. Adding this lower level control system is an improvement over what you call the PID model (which is also a PCT model) by including the fact that the driver must control steering wheel position against force disturbances created by (among other things) the friction of the tires against the road.Â It would be nice to show these disturbances to steering wheel position in the diagram.Â

RM: But this illustrates one of the most important things that distinguishes PCT from other approaches to applying control theory to behavior; you have to map the theory to the behavior correctly. PCT does; other approaches don’t

BestÂ

Rick

Â

···

Here, the output of the position control system sets the reference for the heading control system.Â Because of this, the heading becomes more nearly parallel to the lane the closer the car gets to lane center, accomplishing in a more natural way what derivative control does for the PID controller.Â The output of the heading controller varies the steering angle to control both the heading and, through the effects of heading and speed on lateral position, the position of the car relative to lane center.

Â

Discussion

Â

Both controllers do a reasonably good job of controlling the carâ€™s position relative to the reference.Â In the absence of an integral term in the output function of the position control system, both produce a position offset from reference after the steering misalignment, and with both, the addition of the integral term allows the car to return the its reference position despite the misalignment, by changing the steering angle to compensate for the misalignment.

Â

The hierarchical control system seems easier to tune and may be capable of better performance than the PID controller when both are optimally adjusted.Â The hierarchical system is stable using only proportional control; in contrast the PID system required a derivative term to eliminate oscillations (by phase advance).Â Both are control systems in the canonical PCT style.Â I see no evidence that engineers view the PID system as controlling output, where output is defined as the actions (means of control) of the system.Â Both systems are designed to control the position of the car relative to a reference position and both do so by means of error between perceptions and corresponding reference values.Â However, for engineers the term â€œoutputâ€? refers to the variable being controlled and â€œinputâ€? to the reference value.Â Given that these terms are used differently in PCT this likely to cause confusion among PCTers about what engineers are referring to when they use these terms.

Â

Bruce

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â€?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery

[Martin Taylor 2018.09.10.17.53]

``````That's an unusual meaning to ascribe to the word "heading". In
``````

Bruce’s actual model, and in everyday usage, “heading” is the
direction the car is moving, a variable that is definitely
perceptible. the autonomous car might, for example, incorporate a
compass or a GPS system to allow it to perceive heading. A human
driver, or someone sitting in this autonomous car, would easily be
able to say “the car would pass just to the right of that church
tower in the distance.”
Now that truly an imperceptible variable, since
this autonomous car has no steering wheel at all. In the model,
“steering angle” is the angle the road wheels make with the axis of
the car. It affects the change of heading, zero steering angle
meaning that in the absence of other forces such as a side wind or a
road camber, the car will keep going in the direction it is going.
In the model, steering angle is commanded, not controlled.
Mechanically, the steering angle is proportional to the rate of
angle is proportional to the rate of change of the car’s position in
the lane relative to the lane centre. (Bruce’s code is a little more
exact, because it works for large heading angles, too.
Martin

···

On 2018/09/10 4:36 PM, Richard Marken
( via csgnet Mailing List) wrote:

rsmarken@gmail.com

[Rick Marken 2018-09-10_13:36:35]

``````              [From Bruce Abbott (2018.09.09.1715
``````

EDT)]

Â

The PCT Controller

Â

``````              To provide a contrast to the PID
``````

controller, I created a two-level hierarchical
controller.Â The top level controls the carâ€™s position
by varying the reference for the bottom level, which

Â

Â

``````        RM: This is not a PCT (or a PID) model because it has the
``````

driver controlling a variable that can’t be perceived:
heading, which is the angle of the wheels relative to the
direction of motion (position) of the car.

What can be perceived is steering wheel angle.

is

``````        So this becomes a correct model with a few changes in
``````

labels and arrows so that steering wheel angle becomes the
lower level controlled variable. Adding this lower level
control system is an improvement over what you call the PID
model (which is also a PCT model) by including the fact that
the driver must control steering wheel position against
force disturbances created by (among other things) the
friction of the tires against the road.Â It would be nice to
show these disturbances to steering wheel position in the
diagram.Â

``````        RM: But this illustrates one of the most important things
``````

that distinguishes PCT from other approaches to applying
control theory to behavior; you have to map the theory to
the behavior correctly. PCT does; other approaches don’t

BestÂ

Rick

Â

``````              Here, the output of the position
``````

control system sets the reference for the heading
control system.Â Because of this, the heading becomes
more nearly parallel to the lane the closer the car
gets to lane center, accomplishing in a more natural
way what derivative control does for the PID
controller.Â The output of the heading controller
varies the steering angle to control both the heading
and, through the effects of heading and speed on
lateral position, the position of the car relative to
lane center.

Â

Discussion

Â

``````              Both controllers do a reasonably
``````

good job of controlling the carâ€™s position relative to
the reference.Â In the absence of an integral term in
the output function of the position control system,
both produce a position offset from reference after
the steering misalignment, and with both, the addition
of the integral term allows the car to return the its
reference position despite the misalignment, by
changing the steering angle to compensate for the
misalignment.

Â

``````              The hierarchical control system
``````

seems easier to tune and may be capable of
better performance than the PID controller when both
are optimally adjusted.Â The hierarchical system is
stable using only proportional control; in contrast
the PID system required a derivative term to eliminate
oscillations (by phase advance).Â Both are control
systems in the canonical PCT style.Â I see no evidence
that engineers view the PID system as controlling
output, where output is defined as the actions (means
of control) of the system.Â Both systems are designed
to control the position of the car relative to a
reference position and both do so by means of error
between perceptions and corresponding reference
values.Â However, for engineers the term â€œoutputâ€?
refers to the variable being controlled and â€œinputâ€? to
the reference value.Â Given that these terms are used
differently in PCT this likely to cause confusion
among PCTers about what engineers are referring to
when they use these terms.

Â

Bruce

Richard S. MarkenÂ

``````                                "Perfection
``````

is achieved not when you have
nothing more to add, but when you
have
nothing left to take away.â€?
Â Â Â Â
Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de
Saint-Exupery

From Rick Marken 09.10.18

[Martin Taylor 2018.09.10.17.53]

The PCT Controller

``````              To provide a contrast to the PID
``````

controller, I created a two-level hierarchical
controller.Â The top level controls the carâ€™s position
by varying the reference for the bottom level, which

Â

``````        RM: This is not a PCT (or a PID) model because it has the
``````

driver controlling a variable that can’t be perceived:
heading, which is the angle of the wheels relative to the
direction of motion (position) of the car.

``````MT: That's an unusual meaning to ascribe to the word "heading". In
``````

Bruce’s actual model, and in everyday usage, “heading” is the
direction the car is moving, a variable that is definitely
perceptible.

RM: What is the difference betweeen heading and position? It looks like hesding affects position. So what is the perception of heading that is controlled as the means of controlling position?

···

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â€?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery

[From Bruce Abbott (2018.10.1900 EDT)]

[Rick Marken 2018-09-10_13:36:35]

[From Bruce Abbott (2018.09.09.1715 EDT)]

The PCT Controller

To provide a contrast to the PID controller, I created a two-level hierarchical controller. The top level controls the car’s position by varying the reference for the bottom level, which controls the car’s heading…

RM: This is not a PCT (or a PID) model because it has the driver controlling a variable that can’t be perceived: heading, which is the angle of the wheels relative to the direction of motion (position) of the car.

Three comments here, Rick: 1. I intended this to be a PCT-style control system of a self-driving car. I assume that the auto-driver comes equipped with the necessary sensors. 2. Heading is not the angle of the wheels relative to the direction of motion of the car, and direction of motion is not the position of the car. Heading is the direction that the long axis of the car is pointing relative to the lane, measured in degrees of deviation from lane direction. The position of the car is its location relative to lane center, measured in meters. The angle of the wheels is measured in degrees relative to the long axis of the car. 3: A human driver certainly can perceive the car’s heading.

The angle of the steering wheel normally bears a fixed relation to the steering angle. The PCT auto-steering simulation assumes that the output of the heading control system determines the steering angle, but one could have it determine the steering wheel angle and let the steering angle vary in fixed relation to it. Disturbances that force a change in steering angle (and thus in steering wheel angle) could be resisted by making steering wheel angle a controlled variable. For example, steering wheel angle might be controlled via a servomotor whose reference is set by the output of the heading control system. A human driver would take the place of this servo, acting to control the steering wheel position against disturbances while varying its position as necessary to keep the car on the correct heading.*

*Power steering is a servomechanism wherein the steering wheel angle sets the angle of the front wheels. A self-driving car has a means of setting the reference for this servo, which the driver can override.

Bruce

[Rick Marken 2018-09-10_18:19:18]

[From Bruce Abbott (2018.10.1900 EDT)]

Â

RM: This is not a PCT (or a PID) model because it has the driver controlling a variable that can’t be perceived: heading, which is the angle of the wheels relative to the direction of motion (position) of the car.

Â

BA: Three comments here, Rick: 1.Â I intended this to be a PCT-style control system of a self-driving car.Â I assume that the auto-driver comes equipped with the necessary sensors.Â

RM: OK.Â

Â

1. Heading is not the angle of the wheels relative to the direction of motion of the car, and direction of motion is not the position of the car.Â Heading is the direction that the long axis of the car is pointing relative to the lane, measured in degrees of deviation from lane direction.Â The position of the car is its location relative to lane center, measured in meters.Â The angle of the wheels is measured in degrees relative to the long axis of the car.Â

RM: I see. What you have created in your PCT model is a hierarchical system very much like the one shown in Figure 5.2 of LCS III. In both that system and yours there is a hierarchy of perceptions being controlled, but there is only one output degree of freedom to control them. So (as Bill notes in the caption to Figure 5.2) the hierarchical system could be reduced to a single equivalent system (as you have done in your PID system). But (as BIll also notes) doing so wouldÂ conceal interesting features of the hierarchical architecture and misrepresent any real system that was actually organized hierarchically.

RM: The hierarchical architecture of the control system inÂ Figure 5.2 in LCS III provides advantages in terms of adaptability to changing characteristics of the feedback connection from output to input. I think this shows up as the small but noticeable dynamic advantages you find in the hierarchical (PCT) version of the driving model compared to the equivalent single level “PID” model. You might find more pronounced differences between the models if you allowed for temporal variations in the feedback connection between steering wheel position (output) and the two variables affected by this output - heading and position.

Â

3: A human driver certainly can perceive the carâ€™s heading.

RM: Indeed! And a driver who is organized as is the hierarchical PCT model would have certain advantages over a driver organized as the single level PID model. So here is where knowledge of PCT (particularly chapter 5 in LCS III) could, indeed, lead to improvements in robot performance compared to the standard PID approach!Â

RM: So these are nice demos Bruce. How about using them to see if the PCT model deals better with a time varying function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.Â

BestÂ

Rick

Â

···

Â The angle of the steering wheel normally bears a fixed relation to the steering angle.Â The PCT auto-steering simulation assumes that the output of the heading control system determines the steering angle, but one could have it determine the steering wheel angle and let the steering angle vary in fixed relation to it.Â Disturbances that force a change in steering angle (and thus in steering wheel angle) could be resisted by making steering wheel angle a controlled variable.Â For example, steering wheel angle might be controlled via a servomotor whose reference is set by the output of the heading control system. A human driver would take the place of this servo, acting to control the steering wheel position against disturbances while varying its position as necessary to keep the car on the correct heading.*

Â

*Power steering is a servomechanism wherein the steering wheel angle sets the angle of the front wheels.Â A self-driving car has a means of setting the reference for this servo, which the driver can override.

Â

Bruce

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â€?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery

[Rick Marken 2018-09-10_18:31:20]

I meant to say:Â

Â

RM: So these are nice demos Bruce. How about using them to see if the PCT model deals better with a time varying feedback function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.Â

Best

RickÂ

···

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â€?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery

[From Bruce Abbott (2018.09.11.1055 EDT)]

[Rick Marken 2018-09-10_18:31:20]

I meant to say:

RM: So these are nice demos Bruce.

Thanks!

RM: How about using them to see if the PCT model deals better with a time varying feedback function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.

An excellent suggestion, but one that will have to wait as I’m now working on my talk for the IAPCT conference and it’s taking up quite a bit of my time, not to mention stressing my limited brain power!

Bruce

Angus Jenkinson 12.9.18: 12.42

Thank you for this interesting interchange.

1. One of the characteristics of actual self driving cars that has been noted (e.g. the Tesla) is that it does exactly what is being described here, that is it follows exactly the middle of the lane around bends. But this turns out to be
a problem. Human good drivers do not do this. They proceed through a corner in such a way as to â€œflatten itâ€?, for example going slightly wide to begin and then approaching the edge of the bend and then exiting wide. This makes the cars safer and the experience
of the passengers more comfortable. So any system that was aiming to reproduce not only the safety but also the quality of the experience would have to find ways of adjusting its path so as to avoid staying always in the centre of the lane.

How would the two different systems perform in dealing with this and other real-world issues?

A different question.

1. If I was driving I do not think that I would be computing (unconsciously) these three different variables in order to stay on course. I would be targeting to stay on a course that was visually apparent in front of me.

The question of lag factor would appear in a different way. If for example I decided that I needed to turn my wheel by a certain amount in order to get back on course but I had no picture of what was coming up ahead (assume the road carries
on the way it is) and I waited a second or two before I looked again to see what was happening, there would be some rather disastrous results. Instead, I am nearly continuously monitoring and I have a picture of the road ahead.

So if I am off I make an adjustment that involves planning and executing a curved approach to taking up the line. This involves continuous feedback from what I am actually seeing.

That seems to me to be a question not of monitoring and responding to 3 variables but following an imagined path in relationship to an actual road in a more or less automatic way. Is that wrong?

···

……â€¦â€¦……………………………………â€¦â€¦â€¦â€¦â€¦â€¦â€¦â€¦â€¦â€¦…….

Angus Jenkinson

On 11/09/2018, 15:55, ““Bruce Abbott”” csgnet@lists.illinois.edu wrote:

[From Bruce Abbott (2018.09.11.1055 EDT)]

[Rick Marken 2018-09-10_18:31:20]

I meant to say:

RM: So these are nice demos Bruce.

Thanks!

RM: How about using them to see if the PCT model deals better with a time varying
feedback function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.

An excellent suggestion, but one that will have to wait as Iâ€™m now working on my talk for the IAPCT conference and itâ€™s taking up quite a bit of my time, not to mention stressing my limited brain power!

Bruce

Fred Nickols (2018.09.12.0755 ET)

Good questions, Angus.Â Regarding your second question, I think of myself as keeping what I see aligned with what I want or ought to see.Â I can see out my windshield how my hood and fenders aligned with the center lines, the edge lines and the lane in general.Â I know how they ought to look and I turn the steering wheel this way or that as well as speed up and slow down in order to keep what I see aligned with what I want to see.Â I don’t think of it as planning and executing the plan but, as you say, "following an imagined path in relationship to an actual road in a more or less automatic way."Â I’m no control engineer nor am I a PCT expert but that seems a fit with my layperson’s grasp of PCT.

···

Regards,

Fred Nickols

Managing Partner

Distance Consulting LLC

“Assistance at A Distance”

[Rick Marken 2018-09-13_15:14:25]

Angus Jenkinson 12.9.18: 12.42

Â

AJ: Thank you for this interesting interchange.

1. One of the characteristics of actual self driving cars that has been noted (e.g. the Tesla) is that it does exactly what is being described here, that is it follows exactly the middle of the lane around bends. But this turns out to be
a problem. Human good drivers do not do this. They proceed through a corner in such a way as to âflatten itâ?, for example going slightly wide to begin and then approaching the edge of the bend and then exiting wide. This makes the cars safer and the experience
of the passengers more comfortable. So any system that was aiming to reproduce not only the safety but also the quality of the experience would have to find ways of adjusting its path so as to avoid staying always in the centre of the lane.

RM: Great point Angus. I think what is going on here is control of a higher level perceptual variable, a good name for which is “flattening the curve”. People apparently control for this variable; self driving cars don’t. But we could get self driving cars to control for this perception if we could figure out what it is. This is really what I think PCT could contribute to the design of robotic systems; figure out the higher level perceptual variables that people control that allow them to control so much better than current robotic systems, at least in terms of controlling the variables that safety and comfort.Â

BestÂ

Rick

Â

···

Â

How would the two different systems perform in dealing with this and other real-world issues?

Â

A different question.

1. If I was driving I do not think that I would be computing (unconsciously) these three different variables in order to stay on course. I would be targeting to stay on a course that was visually apparent in front of me.

The question of lag factor would appear in a different way. If for example I decided that I needed to turn my wheel by a certain amount in order to get back on course but I had no picture of what was coming up ahead (assume the road carries
on the way it is) and I waited a second or two before I looked again to see what was happening, there would be some rather disastrous results. Instead, I am nearly continuously monitoring and I have a picture of the road ahead.

So if I am off I make an adjustment that involves planning and executing a curved approach to taking up the line. This involves continuous feedback from what I am actually seeing.

That seems to me to be a question not of monitoring and responding to 3 variables but following an imagined path in relationship to an actual road in a more or less automatic way. Is that wrong?

¦â¦â¦â¦â¦â¦â¦â¦â¦â¦â¦â¦â¦.

Angus Jenkinson

Â

Â

Â

On 11/09/2018, 15:55, ““Bruce Abbott”” csgnet@lists.illinois.edu wrote:

Â

[From Bruce Abbott (2018.09.11.1055 EDT)]

Â

[Rick Marken 2018-09-10_18:31:20]

Â

I meant to say:Â

Â

RM: So these are nice demos Bruce.

Â

Thanks!

RM: How about using them to see if the PCT model deals better with a time varying
feedback function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.Â

Â

An excellent suggestion, but one that will have to wait as Iâm now working on my talk for the IAPCT conference and itâs taking up quite a bit of my time, not to mention stressing my limited brain power!

Â

Bruce

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery

[Martin Taylor 2018.09.23.08.54]

``````Following an extended and still continuing discussion with Bruce
``````

around MatLab programs for this question of how the automated car
driver controls, I no longer think that any form of hierarchical
angle is available to the car described in the video. The car can
sense only one variable, lateral position relative to the lane
centre-line, and therefore can control only functions of that
variable, including its derivatives and its integral.

``````This being true, if the controller is hierarchic in multiple levels,
``````

those levels cannot be as in Bruce’s two-level controller described
in

[From Bruce Abbott (2018.10.1900 EDT)]

``````            [Rick Marken
``````

2018-09-10_13:36:35]

``````                [From
``````

Bruce Abbott (2018.09.09.1715 EDT)]

** The
PCT Controller**

``````                To
``````

provide a contrast to the PID controller, I created
a two-level hierarchical controller. The top level
controls the car’s position by varying the reference
for the bottom level, which controls the car’s

``````            RM: This is
``````

not a PCT (or a PID) model because it has the driver
controlling a variable that can’t be perceived: heading,
which is the angle of the wheels relative to the
direction of motion (position) of the car.

``````            Three comments here, Rick: 1.  I
``````

intended this to be a PCT-style control system of a self-driving
car. I assume that the auto-driver comes equipped with
the necessary sensors.

``````Here, Bruce says that his self-driving car is not the one described
``````

in the video, so the model is not necessarily relevant to the car

1. Heading is not the angle
of the wheels relative to the direction of motion of the
car, and direction of motion is not the position
of the car. Heading is the direction that the long axis
of the car is pointing relative to the lane, measured in
degrees of deviation from lane direction. The position
of the car is its location relative to lane center,
measured in meters. The angle of the wheels is measured
in degrees relative to the long axis of the car. 3: A
human driver certainly can perceive the car’s heading.
``````This is a plausible, possibly testable, model for a human driver,
``````

but a human driver does have a steering wheel, and the steering
wheel angle determines the current heading angular velocity by way
of the current relation between the steering wheel angle and the
road wheel angle. Hence, steering wheel angle could be part of a
human hierarchy. Since the steering wheel does not even exist in the
or related variables, we are left with the possibilities of
hierarchic control only of functions of lateral position.

``````The question, then, is whether and how the current lateral position
``````

P, its integral I and its derivative D are used in control. In the
PID controller, they are added in parametrically defined
proportions, so that O (output) = aP+bI+cD where a, b, and c are
constants. Here I treated the error as P, implying that P=0 when the
car is at the reference location, lane centre. This is a PCT style
perceptual controller, but is not of the standard kind that produces
as output a leaky integrator function of P, O=g∫Pdt - r"oldO",
where g and r are gain and leak rates per unit time.

``````Powers often used a hierarchy with at its top-level had a standard
``````

controller of p which output a reference value for a controller of
dp/dt, and used that output as a reference value for a controller of
d2p/dt2 . The environment determined the
feedback functions for these three controllers. In the case of the
car, that environment includes steering angle and heading angle. But
this is not the only way in which the car might be controlled
through a hierarchy. One can imagine a whole panoply of ways in
which even these three perceptions (p and its first two derivatives)
might be combined, never mind incorporating control of integrals in
functions at each level are standard leaky integrators, PID, or
anything else.

``````So, back to Rupert's question. The video is intended to show how a
``````

PID controller works, and Rupert asks whether it is conceptually a
whether a PID output function is the best way to implement a
controller for such a car.

``````Martin
``````
···

[From Rupert Young (2018.08.14 13.40)]

Here’s a nice description of a PID controller,

``````      Is there anything here, would you say, that would distinguish
``````

it from the PCT perspective of a controller, even if just
conceptually?

## https://youtu.be/4Y7zG48uHRo

Regards,
Rupert

Fred

···

From: Fred Nickols (fwnickols@gmail.com via csgnet Mailing List) csgnet@lists.illinois.edu
Sent: Wednesday, September 12, 2018 2:00 PM
To: angus@angusjenkinson.com
Cc: bbabbott@frontier.com; csgnet csgnet@lists.illinois.edu
Subject: Re: Auto-steering car: PID versus “PCT” control systems

Fred Nickols (2018.09.12.0755 ET)

Good questions, Angus. Regarding your second question, I think of myself as keeping what I see aligned with what I want or ought to see. I can see out my windshield how my hood and fenders aligned with the center lines, the edge lines and the lane in general. I know how they ought to look and I turn the steering wheel this way or that as well as speed up and slow down in order to keep what I see aligned with what I want to see. I don’t think of it as planning and executing the plan but, as you say, “following an imagined path in relationship to an actual road in a more or less automatic way.” I’m no control engineer nor am I a PCT expert but that seems a fit with my layperson’s grasp of PCT.

HB : Good. It’s also mine grasp of PCT. This is what I experience when I’m driving a car. It seems to be our natural way of perceiving “reality”. We are matching the actual perception with what we want to perceive… This is the most probable explanation how civilization grrew up as we are obvioulsy creating the world arround us in accordance with that. I don’t know whether machines can do that yet ?

Best,

Boris

Regards,

Fred Nickols

Managing Partner

Distance Consulting LLC

“Assistance at A Distance”

On Wed, Sep 12, 2018 at 7:43 AM Angus Jenkinson csgnet@lists.illinois.edu wrote:

Angus Jenkinson 12.9.18: 12.42

Thank you for this interesting interchange.

1. One of the characteristics of actual self driving cars that has been noted (e.g. the Tesla) is that it does exactly what is being described here, that is it follows exactly the middle of the lane around bends. But this turns out to be a problem. Human good drivers do not do this. They proceed through a corner in such a way as to â€œflatten itâ€?, for example going slightly wide to begin and then approaching the edge of the bend and then exiting wide. This makes the cars safer and the experience of the passengers more comfortable. So any system that was aiming to reproduce not only the safety but also the quality of the experience would have to find ways of adjusting its path so as to avoid staying always in the centre of the lane.

How would the two different systems perform in dealing with this and other real-world issues?

A different question.

1. If I was driving I do not think that I would be computing (unconsciously) these three different variables in order to stay on course. I would be targeting to stay on a course that was visually apparent in front of me.

The question of lag factor would appear in a different way. If for example I decided that I needed to turn my wheel by a certain amount in order to get back on course but I had no picture of what was coming up ahead (assume the road carries on the way it is) and I waited a second or two before I looked again to see what was happening, there would be some rather disastrous results. Instead, I am nearly continuously monitoring and I have a picture of the road ahead.

So if I am off I make an adjustment that involves planning and executing a curved approach to taking up the line. This involves continuous feedback from what I am actually seeing.

That seems to me to be a question not of monitoring and responding to 3 variables but following an imagined path in relationship to an actual road in a more or less automatic way. Is that wrong?

â€¦……………………â€¦â€¦â€¦â€¦â€¦……………………â€¦â€¦â€¦â€¦â€¦â€¦…….

Angus Jenkinson

On 11/09/2018, 15:55, ““Bruce Abbott”” csgnet@lists.illinois.edu wrote:

[From Bruce Abbott (2018.09.11.1055 EDT)]

[Rick Marken 2018-09-10_18:31:20]

I meant to say:

RM: So these are nice demos Bruce.

Thanks!

RM: How about using them to see if the PCT model deals better with a time varying feedback function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.

An excellent suggestion, but one that will have to wait as Iâ€™m now working on my talk for the IAPCT conference and itâ€™s taking up quite a bit of my time, not to mention stressing my limited brain power!

Bruce

[Richard Pfau (2018.11.09 10:18 EST)]

Rick,

Just a thought that arose when I finally went through the e-mails about cars, ref the following statement byÂ
[Rick Marken 2018-09-13_15:14:25] ref [Angus Jenkinson 12.9.18: 12.42] about cars being driven around bends in the road:

RM: Great point Angus. I think what is going on here is control of a higher level perceptual variable, a good name for which is “flattening the curve”. People apparently control for this variable; self driving cars don’t. But we could get self driving cars to control for this perception if we could figure out what it is.Â

My thought: When the curve is flattened, isn’t the centrifugal force experienced by the driver less (resulting in a more comfortable experience for the person)?Â If so, the driver’s experience of centrifugal force seems to be the perception being controlled.

Rich

···

On Thu, Sep 13, 2018 at 6:15 PM Richard Marken csgnet@lists.illinois.edu wrote:

[Rick Marken 2018-09-13_15:14:25]

Angus Jenkinson 12.9.18: 12.42

Â

AJ: Thank you for this interesting interchange.

1. One of the characteristics of actual self driving cars that has been noted (e.g. the Tesla) is that it does exactly what is being described here, that is it follows exactly the middle of the lane around bends. But this turns out to be
a problem. Human good drivers do not do this. They proceed through a corner in such a way as to â€œflatten itâ€?, for example going slightly wide to begin and then approaching the edge of the bend and then exiting wide. This makes the cars safer and the experience
of the passengers more comfortable. So any system that was aiming to reproduce not only the safety but also the quality of the experience would have to find ways of adjusting its path so as to avoid staying always in the centre of the lane.

RM: Great point Angus. I think what is going on here is control of a higher level perceptual variable, a good name for which is “flattening the curve”. People apparently control for this variable; self driving cars don’t. But we could get self driving cars to control for this perception if we could figure out what it is. This is really what I think PCT could contribute to the design of robotic systems; figure out the higher level perceptual variables that people control that allow them to control so much better than current robotic systems, at least in terms of controlling the variables that safety and comfort.Â

BestÂ

Rick

Â

Â

How would the two different systems perform in dealing with this and other real-world issues?

Â

A different question.

1. If I was driving I do not think that I would be computing (unconsciously) these three different variables in order to stay on course. I would be targeting to stay on a course that was visually apparent in front of me.

The question of lag factor would appear in a different way. If for example I decided that I needed to turn my wheel by a certain amount in order to get back on course but I had no picture of what was coming up ahead (assume the road carries
on the way it is) and I waited a second or two before I looked again to see what was happening, there would be some rather disastrous results. Instead, I am nearly continuously monitoring and I have a picture of the road ahead.

So if I am off I make an adjustment that involves planning and executing a curved approach to taking up the line. This involves continuous feedback from what I am actually seeing.

That seems to me to be a question not of monitoring and responding to 3 variables but following an imagined path in relationship to an actual road in a more or less automatic way. Is that wrong?

………€¦â€¦……………………â€¦â€¦â€¦â€¦â€¦â€¦…………………â€€¦â€¦â€¦â€¦â€¦.

Angus Jenkinson

Â

Â

Â

On 11/09/2018, 15:55, ““Bruce Abbott”” csgnet@lists.illinois.edu wrote:

Â

[From Bruce Abbott (2018.09.11.1055 EDT)]

Â

[Rick Marken 2018-09-10_18:31:20]

Â

I meant to say:Â

Â

RM: So these are nice demos Bruce.

Â

Thanks!

RM: How about using them to see if the PCT model deals better with a time varying
feedback function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.Â

Â

An excellent suggestion, but one that will have to wait as Iâ€™m now working on my talk for the IAPCT conference and itâ€™s taking up quite a bit of my time, not to mention stressing my limited brain power!

Â

Bruce

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â€?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery

Fred Nickols (2018.11.09.1031 ET)

I “flatten curves” all the time and I tend to agree that it has something to do with centrifugal force but I believe it’s tied more to my sense of the effect of centrifugal force on the car than on me.Â To flatten a curve I cross over into the oncoming lane and thereby take out some of the sharpness of the curved path my car is following, reducing the likelihood of skidding out or running onto the shoulder.Â In deciding to flatten a curve, I check the oncoming traffic and if there is any that is anywhere near the curve, I don’t flatten the curve.Â Instead, I slow down.Â FWIW, I only “flatten” curves to the left, not curves to the right. In flattening curves to the left, I only have to enter the oncoming lane once.Â To flatten a curve to the right, I would have to enter the oncoming lane twice - once before entering the curve and again after coming out of it.Â I suppose I could enter the oncoming lane only before or only after the curve but that wouldn’t produce the max amount of flattening.Â For curves to the right, I tend to slow down instead of trying to flatten it.

···

Regards,

Fred Nickols

Managing Partner

Distance Consulting LLC

“Assistance at A Distance”

[Rick Marken 2018-11-09_12:28:18]

[Richard Pfau (2018.11.09 10:18 EST)]

RM: Great point Angus. I think what is going on here is control of a higher level perceptual variable, a good name for which is “flattening the curve”. People apparently control for this variable; self driving cars don’t. But we could get self driving cars to control for this perception if we could figure out what it is.Â

RF: My thought: When the curve is flattened, isn’t the centrifugal force experienced by the driver less (resulting in a more comfortable experience for the person)?Â If so, the driver’s experience of centrifugal force seems to be the perception being controlled.

RM: I agree! I was making a common mistake when guessing about what is being controlled that accounts for an observed behavior: thinking that the variable under control is complex because the observed behavior (flattening the curve, in this case) looks fairly complex. But I think you are right – the appearance of “flattening the curve” is likely be the observable result of acting to control a simple perception – an analog of centrifugal force – keeping it close to zero.Â

Best

Rick

Â

···

Rich

On Thu, Sep 13, 2018 at 6:15 PM Richard Marken csgnet@lists.illinois.edu wrote:

[Rick Marken 2018-09-13_15:14:25]

Angus Jenkinson 12.9.18: 12.42

Â

AJ: Thank you for this interesting interchange.

1. One of the characteristics of actual self driving cars that has been noted (e.g. the Tesla) is that it does exactly what is being described here, that is it follows exactly the middle of the lane around bends. But this turns out to be
a problem. Human good drivers do not do this. They proceed through a corner in such a way as to â€œflatten itâ€?, for example going slightly wide to begin and then approaching the edge of the bend and then exiting wide. This makes the cars safer and the experience
of the passengers more comfortable. So any system that was aiming to reproduce not only the safety but also the quality of the experience would have to find ways of adjusting its path so as to avoid staying always in the centre of the lane.

RM: Great point Angus. I think what is going on here is control of a higher level perceptual variable, a good name for which is “flattening the curve”. People apparently control for this variable; self driving cars don’t. But we could get self driving cars to control for this perception if we could figure out what it is. This is really what I think PCT could contribute to the design of robotic systems; figure out the higher level perceptual variables that people control that allow them to control so much better than current robotic systems, at least in terms of controlling the variables that safety and comfort.Â

BestÂ

Rick

Â

Â

How would the two different systems perform in dealing with this and other real-world issues?

Â

A different question.

1. If I was driving I do not think that I would be computing (unconsciously) these three different variables in order to stay on course. I would be targeting to stay on a course that was visually apparent in front of me.

The question of lag factor would appear in a different way. If for example I decided that I needed to turn my wheel by a certain amount in order to get back on course but I had no picture of what was coming up ahead (assume the road carries
on the way it is) and I waited a second or two before I looked again to see what was happening, there would be some rather disastrous results. Instead, I am nearly continuously monitoring and I have a picture of the road ahead.

So if I am off I make an adjustment that involves planning and executing a curved approach to taking up the line. This involves continuous feedback from what I am actually seeing.

That seems to me to be a question not of monitoring and responding to 3 variables but following an imagined path in relationship to an actual road in a more or less automatic way. Is that wrong?

………€¦â€¦……………………â€¦â€¦â€¦â€¦â€¦â€¦…………………â€€¦â€¦â€¦â€¦â€¦.

Angus Jenkinson

Â

Â

Â

On 11/09/2018, 15:55, ““Bruce Abbott”” csgnet@lists.illinois.edu wrote:

Â

[From Bruce Abbott (2018.09.11.1055 EDT)]

Â

[Rick Marken 2018-09-10_18:31:20]

Â

I meant to say:Â

Â

RM: So these are nice demos Bruce.

Â

Thanks!

RM: How about using them to see if the PCT model deals better with a time varying
feedback function compared to the PID model. If it does, that could be a nice piece of information for roboticists whose robots have to control in a world of constantly changing feedback functions.Â

Â

An excellent suggestion, but one that will have to wait as Iâ€™m now working on my talk for the IAPCT conference and itâ€™s taking up quite a bit of my time, not to mention stressing my limited brain power!

Â

Bruce

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â€?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery

Richard S. MarkenÂ

"Perfection is achieved not when you have nothing more to add, but when you
have nothing left to take away.â€?
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â --Antoine de Saint-Exupery