What's the intuition?
If you drive a car and your normal steering mode leads you to a trajectory far away from the goal,
then what I submit you do is you notice over a long period of time you can't get closer.
So you start steering more and more the more time goes by to the right to compensate this bias.
As a result, when you drive you steer the car this way.
To do so, you need a sustained situation of large error.
That's measured by the integral or the sum of the crosstrack errors over time.
Let's make a new controller where steering is proportional to the crosstrack errors before.
It's equally proportional to the differential of the crosstrack error,
but now it's also proportional to what's called the integral or the sum
of all the crosstrack errors you ever observed.
This term is interesting. If we have a constant crosstrack error of, say, 0.8
and the sum will increase by 0.8 for each time unit, it'll become larger and larger and larger,
and eventually it'll correct the robot's motion.
This is called the PID controller.
This is the P or the proportional term, the D or the differential term, and the i for integral.
P-I-D.
Let's implement this, and the integrated crosstrack error
is the sum of all crosstrack errors you ever observed.
Let's implement this in our code.
I give you an integral factor of 0.004.
Let's not worry why I picked those. They're actually wisely chosen, as you will see in a minute.
But let's run our code and now modify our code to also allow for this parameter over here.
Cual es la idea?
Si manejar normalmente nos lleva a una trayectoria que se aleja de nuestro objetivo
eventualmente, después de algun tiempo, notamos que no nos estamos acercando a él.
Comenzamos a manejar más y más hacia la derecha para compensar por esta tendencia
y como resultado, el carro se movera así.
Para hacer esto, necesitamos un error apreciable que esté presente por un tiempo largo.
Este efecto es medido por la integral (i.e., la suma) de los errores a lo largo del tiempo
Construyamos un nuevo controlador donde la direción sea proporcional a los errores en el pasado.
también es proporcional a la derivada del error
pero ahora es también proporcional a la integral (e.g., la suma)
de todos los errors que hayamos observado.
El término integral es interesanto. Si tenemos un error constante de, digamos, 0.8
y en cada unidad de tiempo la suma se incrementa por 0.8, el error se volvera más y más grande
y eventualmente correjirá el movimiento del robot
Este controlador se conoce como un PID
Este es P ó término proporcional, el D ó término derivativo, y el I ó término Integral
P-I-D
Programemos esto. La integral del error
es la suma de todos los errores que hayan sido observados.
Programemos esto.
Vamos a usar el término integral I = 0.004.
No nos preocupemos del como se eligio este valor.. lo veremos es unos minutos.
Modifiquemos y corramos nuestro código para que tenga en cuenta este parametro.
何か気づきましたか？
通常の操舵モードの運転で 目標から離れた軌道へ導かれるなら
長時間経っても目標には 近づけないということに気づいてください
このバイアスを補正するため 時間の経過とともに右へ操舵し始めます
結果として運転する時 車をこのように操舵します
こう操舵するためには 大きな誤差が持続する状態が必要です
これは経時的な積分 またはCTEの総和で計測されます
操舵が過去のクロストラックエラーに比例的な 新たなコントローラを作りましょう
これはCTEの微分への比例項と同じです
しかし観測した全CTEの積分 または総和と呼ばれるものへの
比例項でもあります
この項は興味深いです 一定のクロストラックエラー0．8があるとして
総和は各時間単位で0．8ずつ増え ひたすら大きくなります
最終的にはロボットの動きを補正するでしょう
これはPID制御と呼ばれます
Pは比例項、Dは微分項、Iは積分項を表します
それがPIDです
実装してみましょう
積分されたCTEは観測した全CTEの総和です
これをコードで実装します
積分の係数を0．004とします
なぜこの値にしたか気にしないでください すぐに分かりますが賢明な選択です
コードを実行しましょう
このパラメータも使えるように コードを変更してください
Что такое интуиция?
Если вы водите машину, и ваш нормальный режим рулевого приводит вас к траектории далеко от цели,
Тогда то, что я представить, что вы делаете это вы заметите течение длительного периода времени, вы не можете получить ближе.
Так вы начинаете рулевое все больше и больше чем больше времени проходит справа, чтобы компенсировать этот перекос.
В результате когда вы едете вы водить автомобиль таким образом.
Чтобы сделать это, вам нужно устойчивой ситуации большую ошибку.
Что измеряется интеграл или сумма crosstrack ошибок с течением времени.
Давайте сделаем новый контроллер, где руководящий пропорционален crosstrack ошибки до.
Это одинаково пропорциональна дифференциальных crosstrack ошибки,
но теперь она пропорциональна также то, что называется интеграл или сумма
всех ошибок crosstrack, которые вы когда-нибудь наблюдали.
Этот термин является интересным. Если у нас есть постоянный crosstrack ошибка, скажем, 0,8
и сумма будет увеличиваться на 0,8 для каждой единицы времени, это станет больше и больше и больше,
и в конечном итоге он будет исправить движения робота.
Это называется ПИД контроллер.
Это P или пропорциональной термин, D или дифференциального термин и i для интеграл.
P-D.
Реализуем это и интегрированный crosstrack ошибка
Это сумма всех crosstrack ошибок, которую вы когда-нибудь наблюдали.
Давайте выполнять это в нашем коде.
Я даю вам неотъемлемым фактором 0,004.
Давайте не беспокоиться, почему я выбрал те. Они на самом деле умом вы выбрали, как вы увидите в минуту.
Но давайте запускать наш код и теперь изменить наш код позволяет также для этого параметра здесь.
你的直觉是什么？
如果你在开车 平常的转向模式把你带到远离目标的轨迹
我认为当你注意到过去一段时间 也没能接近目标时 你就会采取行动
随着时间过去 你会把方向盘打得越来越右 以抵消系统偏差
结果是 在你驾驶时 车辆轨迹会变成这样
为了这么做 你需要持续处于有巨大偏差的情况
这可以用CTE基于时间的积分来衡量
让我们编写新的控制器 它会根据CTE的比例
以及CTE的微分项的某个比例来控制转向
但现在它还会受到CTE积分的比例的影响
CTE积分也就是历史观察到的所有CTE的和
这一项非常有趣 假如我们有恒定的CTE 比如0.8
那CTE的积分每过去一个时间单位都会增加0.8 变得越来越大
最终它会修正robot的行动
这就叫做PID控制器
P代表着比例项 D代表着微分项 I代表着积分项
P-I-D
让我们来实现它吧
CTE积分即是你曾观察到的所有CTE之和
在代码中实现PID控制器
我给你指定积分因子为0.004
现在不用担心我为什么选择这些数值 它们实际上是明智的选择 稍后就能见分晓
现在先修改代码加入这个参数 并且运行它