Skip to content

Commit 75ac04b

Browse files
committed
clean up doc
1 parent 930e298 commit 75ac04b

File tree

2 files changed

+28
-106
lines changed

2 files changed

+28
-106
lines changed

PathTracking/model_predictive_speed_and_steer_control/Model_predictive_speed_and_steering_control.ipynb

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,16 @@
3535
"### MPC modeling\n",
3636
"\n",
3737
"State vector is:\n",
38-
"$$ z = [x, y, v,\\phi]$$ x: x-position, y:y-position, v:velocity, φ: yaw angle\n",
38+
"\n",
39+
"$$ z = [x, y, v,\\phi]$$\n",
40+
"\n",
41+
"x: x-position, y:y-position, v:velocity, φ: yaw angle\n",
3942
"\n",
4043
"Input vector is:\n",
41-
"$$ u = [a, \\delta]$$ a: accellation, δ: steering angle\n",
44+
"\n",
45+
"$$ u = [a, \\delta]$$\n",
46+
"\n",
47+
"a: accellation, δ: steering angle\n",
4248
"\n"
4349
]
4450
},
@@ -103,9 +109,13 @@
103109
"\n",
104110
"\n",
105111
"Vehicle model is \n",
112+
"\n",
106113
"$$ \\dot{x} = vcos(\\phi)$$\n",
114+
"\n",
107115
"$$ \\dot{y} = vsin((\\phi)$$\n",
116+
"\n",
108117
"$$ \\dot{v} = a$$\n",
118+
"\n",
109119
"$$ \\dot{\\phi} = \\frac{vtan(\\delta)}{L}$$\n",
110120
"\n",
111121
"\n",
@@ -128,7 +138,7 @@
128138
"source": [
129139
"where\n",
130140
"\n",
131-
"\\begin{equation*}\n",
141+
"$\\begin{equation*}\n",
132142
"A' =\n",
133143
"\\begin{bmatrix}\n",
134144
"\\frac{\\partial }{\\partial x}vcos(\\phi) & \n",
@@ -156,15 +166,15 @@
156166
"0 & 0 & 0 & 0 \\\\\n",
157167
"0 & 0 &\\frac{tan(\\bar{\\delta})}{L} & 0 \\\\\n",
158168
"\\end{bmatrix}\n",
159-
"\\end{equation*}\n",
169+
"\\end{equation*}$\n",
160170
"\n"
161171
]
162172
},
163173
{
164174
"cell_type": "markdown",
165175
"metadata": {},
166176
"source": [
167-
"\\begin{equation*}\n",
177+
"$\\begin{equation*}\n",
168178
"B' =\n",
169179
"\\begin{bmatrix}\n",
170180
"\\frac{\\partial }{\\partial a}vcos(\\phi) &\n",
@@ -184,7 +194,7 @@
184194
"1 & 0 \\\\\n",
185195
"0 & \\frac{\\bar{v}}{Lcos^2(\\bar{\\delta})} \\\\\n",
186196
"\\end{bmatrix}\n",
187-
"\\end{equation*}\n",
197+
"\\end{equation*}$\n",
188198
"\n"
189199
]
190200
},
@@ -228,7 +238,7 @@
228238
"cell_type": "markdown",
229239
"metadata": {},
230240
"source": [
231-
"\\begin{equation*}\n",
241+
"$\\begin{equation*}\n",
232242
"B = dtB'\\\\\n",
233243
"=\n",
234244
"\\begin{bmatrix} \n",
@@ -237,14 +247,14 @@
237247
"dt & 0 \\\\\n",
238248
"0 & \\frac{\\bar{v}}{Lcos^2(\\bar{\\delta})}dt \\\\\n",
239249
"\\end{bmatrix}\n",
240-
"\\end{equation*}"
250+
"\\end{equation*}$"
241251
]
242252
},
243253
{
244254
"cell_type": "markdown",
245255
"metadata": {},
246256
"source": [
247-
"\\begin{equation*}\n",
257+
"$\\begin{equation*}\n",
248258
"C = (f(\\bar{z},\\bar{u})-A'\\bar{z}-B'\\bar{u})dt\\\\\n",
249259
"= dt(\n",
250260
"\\begin{bmatrix} \n",
@@ -275,7 +285,7 @@
275285
"0\\\\\n",
276286
"-\\frac{\\bar{v}\\bar{\\delta}}{Lcos^2(\\bar{\\delta})}dt\\\\\n",
277287
"\\end{bmatrix}\n",
278-
"\\end{equation*}"
288+
"\\end{equation*}$"
279289
]
280290
},
281291
{

docs/modules/Model_predictive_speed_and_steering_control.rst

Lines changed: 8 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ State vector is:
2929

3030
.. math:: z = [x, y, v,\phi]
3131

32-
\ x: x-position, y:y-position, v:velocity, φ: yaw angle
32+
x: x-position, y:y-position, v:velocity, φ: yaw angle
3333

3434
Input vector is:
3535

3636
.. math:: u = [a, \delta]
3737

38-
\ a: accellation, δ: steering angle
38+
a: accellation, δ: steering angle
3939

4040
The MPC cotroller minimize this cost function for path tracking:
4141

@@ -94,57 +94,9 @@ ODE is
9494

9595
where
9696

97-
:raw-latex:`\begin{equation*}
98-
A' =
99-
\begin{bmatrix}
100-
\frac{\partial }{\partial x}vcos(\phi) &
101-
\frac{\partial }{\partial y}vcos(\phi) &
102-
\frac{\partial }{\partial v}vcos(\phi) &
103-
\frac{\partial }{\partial \phi}vcos(\phi)\\
104-
\frac{\partial }{\partial x}vsin(\phi) &
105-
\frac{\partial }{\partial y}vsin(\phi) &
106-
\frac{\partial }{\partial v}vsin(\phi) &
107-
\frac{\partial }{\partial \phi}vsin(\phi)\\
108-
\frac{\partial }{\partial x}a&
109-
\frac{\partial }{\partial y}a&
110-
\frac{\partial }{\partial v}a&
111-
\frac{\partial }{\partial \phi}a\\
112-
\frac{\partial }{\partial x}\frac{vtan(\delta)}{L}&
113-
\frac{\partial }{\partial y}\frac{vtan(\delta)}{L}&
114-
\frac{\partial }{\partial v}\frac{vtan(\delta)}{L}&
115-
\frac{\partial }{\partial \phi}\frac{vtan(\delta)}{L}\\
116-
\end{bmatrix}
117-
\\
118-
 =
119-
\begin{bmatrix}
120-
0 & 0 & cos(\bar{\phi}) & -\bar{v}sin(\bar{\phi})\\
121-
0 & 0 & sin(\bar{\phi}) & \bar{v}cos(\bar{\phi}) \\
122-
0 & 0 & 0 & 0 \\
123-
0 & 0 &\frac{tan(\bar{\delta})}{L} & 0 \\
124-
\end{bmatrix}
125-
\end{equation*}`
126-
127-
:raw-latex:`\begin{equation*}
128-
B' =
129-
\begin{bmatrix}
130-
\frac{\partial }{\partial a}vcos(\phi) &
131-
\frac{\partial }{\partial \delta}vcos(\phi)\\
132-
\frac{\partial }{\partial a}vsin(\phi) &
133-
\frac{\partial }{\partial \delta}vsin(\phi)\\
134-
\frac{\partial }{\partial a}a &
135-
\frac{\partial }{\partial \delta}a\\
136-
\frac{\partial }{\partial a}\frac{vtan(\delta)}{L} &
137-
\frac{\partial }{\partial \delta}\frac{vtan(\delta)}{L}\\
138-
\end{bmatrix}
139-
\\
140-
 =
141-
\begin{bmatrix}
142-
0 & 0 \\
143-
0 & 0 \\
144-
1 & 0 \\
145-
0 & \frac{\bar{v}}{Lcos^2(\bar{\delta})} \\
146-
\end{bmatrix}
147-
\end{equation*}`
97+
:math:`\begin{equation*} A' = \begin{bmatrix} \frac{\partial }{\partial x}vcos(\phi) & \frac{\partial }{\partial y}vcos(\phi) & \frac{\partial }{\partial v}vcos(\phi) & \frac{\partial }{\partial \phi}vcos(\phi)\\ \frac{\partial }{\partial x}vsin(\phi) & \frac{\partial }{\partial y}vsin(\phi) & \frac{\partial }{\partial v}vsin(\phi) & \frac{\partial }{\partial \phi}vsin(\phi)\\ \frac{\partial }{\partial x}a& \frac{\partial }{\partial y}a& \frac{\partial }{\partial v}a& \frac{\partial }{\partial \phi}a\\ \frac{\partial }{\partial x}\frac{vtan(\delta)}{L}& \frac{\partial }{\partial y}\frac{vtan(\delta)}{L}& \frac{\partial }{\partial v}\frac{vtan(\delta)}{L}& \frac{\partial }{\partial \phi}\frac{vtan(\delta)}{L}\\ \end{bmatrix} \\  = \begin{bmatrix} 0 & 0 & cos(\bar{\phi}) & -\bar{v}sin(\bar{\phi})\\ 0 & 0 & sin(\bar{\phi}) & \bar{v}cos(\bar{\phi}) \\ 0 & 0 & 0 & 0 \\ 0 & 0 &\frac{tan(\bar{\delta})}{L} & 0 \\ \end{bmatrix} \end{equation*}`
98+
99+
:math:`\begin{equation*} B' = \begin{bmatrix} \frac{\partial }{\partial a}vcos(\phi) & \frac{\partial }{\partial \delta}vcos(\phi)\\ \frac{\partial }{\partial a}vsin(\phi) & \frac{\partial }{\partial \delta}vsin(\phi)\\ \frac{\partial }{\partial a}a & \frac{\partial }{\partial \delta}a\\ \frac{\partial }{\partial a}\frac{vtan(\delta)}{L} & \frac{\partial }{\partial \delta}\frac{vtan(\delta)}{L}\\ \end{bmatrix} \\  = \begin{bmatrix} 0 & 0 \\ 0 & 0 \\ 1 & 0 \\ 0 & \frac{\bar{v}}{Lcos^2(\bar{\delta})} \\ \end{bmatrix} \end{equation*}`
148100

149101
You can get a discrete-time mode with Forward Euler Discretization with
150102
sampling time dt.
@@ -165,49 +117,9 @@ where,
165117

166118
:math:`\begin{equation*} A = (I + dtA')\\ = \begin{bmatrix} 1 & 0 & cos(\bar{\phi})dt & -\bar{v}sin(\bar{\phi})dt\\ 0 & 1 & sin(\bar{\phi})dt & \bar{v}cos(\bar{\phi})dt \\ 0 & 0 & 1 & 0 \\ 0 & 0 &\frac{tan(\bar{\delta})}{L}dt & 1 \\ \end{bmatrix} \end{equation*}`
167119

168-
:raw-latex:`\begin{equation*}
169-
B = dtB'\\
170-
=
171-
\begin{bmatrix}
172-
0 & 0 \\
173-
0 & 0 \\
174-
dt & 0 \\
175-
0 & \frac{\bar{v}}{Lcos^2(\bar{\delta})}dt \\
176-
\end{bmatrix}
177-
\end{equation*}`
178-
179-
:raw-latex:`\begin{equation*}
180-
C = (f(\bar{z},\bar{u})-A'\bar{z}-B'\bar{u})dt\\
181-
= dt(
182-
\begin{bmatrix}
183-
\bar{v}cos(\bar{\phi})\\
184-
\bar{v}sin(\bar{\phi}) \\
185-
\bar{a}\\
186-
\frac{\bar{v}tan(\bar{\delta})}{L}\\
187-
\end{bmatrix}
188-
-
189-
\begin{bmatrix}
190-
\bar{v}cos(\bar{\phi})-\bar{v}sin(\bar{\phi})\bar{\phi}\\
191-
\bar{v}sin(\bar{\phi})+\bar{v}cos(\bar{\phi})\bar{\phi}\\
192-
0\\
193-
\frac{\bar{v}tan(\bar{\delta})}{L}\\
194-
\end{bmatrix}
195-
-
196-
\begin{bmatrix}
197-
0\\
198-
0 \\
199-
\bar{a}\\
200-
\frac{\bar{v}\bar{\delta}}{Lcos^2(\bar{\delta})}\\
201-
\end{bmatrix}
202-
)\\
203-
=
204-
\begin{bmatrix}
205-
\bar{v}sin(\bar{\phi})\bar{\phi}dt\\
206-
-\bar{v}cos(\bar{\phi})\bar{\phi}dt\\
207-
0\\
208-
-\frac{\bar{v}\bar{\delta}}{Lcos^2(\bar{\delta})}dt\\
209-
\end{bmatrix}
210-
\end{equation*}`
120+
:math:`\begin{equation*} B = dtB'\\ = \begin{bmatrix} 0 & 0 \\ 0 & 0 \\ dt & 0 \\ 0 & \frac{\bar{v}}{Lcos^2(\bar{\delta})}dt \\ \end{bmatrix} \end{equation*}`
121+
122+
:math:`\begin{equation*} C = (f(\bar{z},\bar{u})-A'\bar{z}-B'\bar{u})dt\\ = dt( \begin{bmatrix} \bar{v}cos(\bar{\phi})\\ \bar{v}sin(\bar{\phi}) \\ \bar{a}\\ \frac{\bar{v}tan(\bar{\delta})}{L}\\ \end{bmatrix} - \begin{bmatrix} \bar{v}cos(\bar{\phi})-\bar{v}sin(\bar{\phi})\bar{\phi}\\ \bar{v}sin(\bar{\phi})+\bar{v}cos(\bar{\phi})\bar{\phi}\\ 0\\ \frac{\bar{v}tan(\bar{\delta})}{L}\\ \end{bmatrix} - \begin{bmatrix} 0\\ 0 \\ \bar{a}\\ \frac{\bar{v}\bar{\delta}}{Lcos^2(\bar{\delta})}\\ \end{bmatrix} )\\ = \begin{bmatrix} \bar{v}sin(\bar{\phi})\bar{\phi}dt\\ -\bar{v}cos(\bar{\phi})\bar{\phi}dt\\ 0\\ -\frac{\bar{v}\bar{\delta}}{Lcos^2(\bar{\delta})}dt\\ \end{bmatrix} \end{equation*}`
211123

212124
This equation is implemented at
213125

0 commit comments

Comments
 (0)