Compare commits
No commits in common. "d3f8f1cc4e4420c1ea17244bc24c6ef7ed7d7b49" and "ebdde7b4b769abca3d8e042a4f80846ec9dd4f39" have entirely different histories.
d3f8f1cc4e
...
ebdde7b4b7
21
LICENSE.txt
@ -1,21 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2021 Dehaeze Thomas
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
34
index.html
@ -3,11 +3,11 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2021-09-10 ven. 11:07 -->
|
<!-- 2020-12-07 lun. 11:50 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<title>Robust and Optimal Sensor Fusion using Complementary Filters</title>
|
<title>Robust and Optimal Sensor Fusion</title>
|
||||||
|
<meta name="generator" content="Org mode" />
|
||||||
<meta name="author" content="Thomas Dehaeze" />
|
<meta name="author" content="Thomas Dehaeze" />
|
||||||
<meta name="generator" content="Org Mode" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||||
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||||
<style> #content {margin: auto;} </style>
|
<style> #content {margin: auto;} </style>
|
||||||
@ -17,8 +17,8 @@
|
|||||||
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="h" href="../index.html"> UP </a>
|
||||||
|
|
|
|
||||||
<a accesskey="H" href="../index.html"> HOME </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
|
||||||
</div><div id="content" class="content">
|
</div><div id="content">
|
||||||
<h1 class="title">Robust and Optimal Sensor Fusion using Complementary Filters
|
<h1 class="title">Robust and Optimal Sensor Fusion
|
||||||
<br />
|
<br />
|
||||||
<span class="subtitle">Dehaeze Thomas and Collette Christophe</span>
|
<span class="subtitle">Dehaeze Thomas and Collette Christophe</span>
|
||||||
</h1>
|
</h1>
|
||||||
@ -28,27 +28,27 @@
|
|||||||
</p>
|
</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<div id="outline-container-orga601f2f" class="outline-2">
|
<div id="outline-container-org5d45024" class="outline-2">
|
||||||
<h2 id="orga601f2f">Paper (<a href="paper/dehaeze22_optim_robus_compl_filte.pdf">link</a>)</h2>
|
<h2 id="org5d45024">Paper (<a href="paper/paper.pdf">link</a>)</h2>
|
||||||
<div class="outline-text-2" id="text-orga601f2f">
|
<div class="outline-text-2" id="text-org5d45024">
|
||||||
<p>
|
<p>
|
||||||
The paper has been created <a href="https://orgmode.org/">Org Mode</a> (generating <a href="https://www.latex-project.org/">LaTeX</a> code) under <a href="https://www.gnu.org/software/emacs/">Emacs</a>.
|
The paper has been created <a href="https://orgmode.org/">Org Mode</a> (generating <a href="https://www.latex-project.org/">LaTeX</a> code) under <a href="https://www.gnu.org/software/emacs/">Emacs</a>.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgd50e329" class="outline-2">
|
<div id="outline-container-org22e6deb" class="outline-2">
|
||||||
<h2 id="orgd50e329">Matlab Scripts (<a href="matlab/dehaeze22_optim_robus_compl_filte_matlab.html">link</a>)</h2>
|
<h2 id="org22e6deb">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2>
|
||||||
<div class="outline-text-2" id="text-orgd50e329">
|
<div class="outline-text-2" id="text-org22e6deb">
|
||||||
<p>
|
<p>
|
||||||
All the <a href="https://fr.mathworks.com/">Matlab</a> code that was used for the paper are accessible so that all the results are reproducible.
|
All the <a href="https://fr.mathworks.com/">Matlab</a> code that was used for the paper are accessible so that all the results are reproducible.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org3b999bd" class="outline-2">
|
<div id="outline-container-org5127d10" class="outline-2">
|
||||||
<h2 id="org3b999bd">Tikz Figures (<a href="tikz/dehaeze22_optim_robus_compl_filte_tikz.html">link</a>)</h2>
|
<h2 id="org5127d10">Tikz Figures (<a href="tikz/index.html">link</a>)</h2>
|
||||||
<div class="outline-text-2" id="text-org3b999bd">
|
<div class="outline-text-2" id="text-org5127d10">
|
||||||
<p>
|
<p>
|
||||||
All the figures for the paper have been generated using <a href="https://sourceforge.net/projects/pgf/">TikZ</a>.
|
All the figures for the paper have been generated using <a href="https://sourceforge.net/projects/pgf/">TikZ</a>.
|
||||||
</p>
|
</p>
|
||||||
@ -56,9 +56,9 @@ All the figures for the paper have been generated using <a href="https://sourcef
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="outline-container-org870b921" class="outline-2">
|
<div id="outline-container-org8fadb78" class="outline-2">
|
||||||
<h2 id="org870b921">Cite this paper</h2>
|
<h2 id="org8fadb78">Cite this paper</h2>
|
||||||
<div class="outline-text-2" id="text-org870b921">
|
<div class="outline-text-2" id="text-org8fadb78">
|
||||||
<p>
|
<p>
|
||||||
To cite this paper use the following bibtex code.
|
To cite this paper use the following bibtex code.
|
||||||
</p>
|
</p>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#+TITLE: Robust and Optimal Sensor Fusion using Complementary Filters
|
#+TITLE: Robust and Optimal Sensor Fusion
|
||||||
:DRAWER:
|
:DRAWER:
|
||||||
#+SUBTITLE: Dehaeze Thomas and Collette Christophe
|
#+SUBTITLE: Dehaeze Thomas and Collette Christophe
|
||||||
|
|
||||||
@ -18,19 +18,19 @@
|
|||||||
|
|
||||||
#+end_quote
|
#+end_quote
|
||||||
|
|
||||||
* Paper ([[file:paper/dehaeze22_optim_robus_compl_filte.pdf][link]])
|
* Paper ([[file:paper/paper.pdf][link]])
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:UNNUMBERED: t
|
:UNNUMBERED: t
|
||||||
:END:
|
:END:
|
||||||
The paper has been created [[https://orgmode.org/][Org Mode]] (generating [[https://www.latex-project.org/][LaTeX]] code) under [[https://www.gnu.org/software/emacs/][Emacs]].
|
The paper has been created [[https://orgmode.org/][Org Mode]] (generating [[https://www.latex-project.org/][LaTeX]] code) under [[https://www.gnu.org/software/emacs/][Emacs]].
|
||||||
|
|
||||||
* Matlab Scripts ([[file:matlab/dehaeze22_optim_robus_compl_filte_matlab.org][link]])
|
* Matlab Scripts ([[file:matlab/index.org][link]])
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:UNNUMBERED: t
|
:UNNUMBERED: t
|
||||||
:END:
|
:END:
|
||||||
All the [[https://fr.mathworks.com/][Matlab]] code that was used for the paper are accessible so that all the results are reproducible.
|
All the [[https://fr.mathworks.com/][Matlab]] code that was used for the paper are accessible so that all the results are reproducible.
|
||||||
|
|
||||||
* Tikz Figures ([[file:tikz/dehaeze22_optim_robus_compl_filte_tikz.org][link]])
|
* Tikz Figures ([[file:tikz/index.org][link]])
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:UNNUMBERED: t
|
:UNNUMBERED: t
|
||||||
:END:
|
:END:
|
||||||
|
@ -1,98 +0,0 @@
|
|||||||
#!/bin/env perl
|
|
||||||
|
|
||||||
# Shebang is only to get syntax highlighting right across GitLab, GitHub and IDEs.
|
|
||||||
# This file is not meant to be run, but read by `latexmk`.
|
|
||||||
|
|
||||||
# ======================================================================================
|
|
||||||
# Perl `latexmk` configuration file
|
|
||||||
# ======================================================================================
|
|
||||||
|
|
||||||
# ======================================================================================
|
|
||||||
# PDF Generation/Building/Compilation
|
|
||||||
# ======================================================================================
|
|
||||||
|
|
||||||
@default_files=('dehaeze22_optim_robus_compl_filte.tex');
|
|
||||||
|
|
||||||
# PDF-generating modes are:
|
|
||||||
# 1: pdflatex, as specified by $pdflatex variable (still largely in use)
|
|
||||||
# 2: postscript conversion, as specified by the $ps2pdf variable (useless)
|
|
||||||
# 3: dvi conversion, as specified by the $dvipdf variable (useless)
|
|
||||||
# 4: lualatex, as specified by the $lualatex variable (best)
|
|
||||||
# 5: xelatex, as specified by the $xelatex variable (second best)
|
|
||||||
$pdf_mode = 1;
|
|
||||||
|
|
||||||
# Treat undefined references and citations as well as multiply defined references as
|
|
||||||
# ERRORS instead of WARNINGS.
|
|
||||||
# This is only checked in the *last* run, since naturally, there are undefined references
|
|
||||||
# in initial runs.
|
|
||||||
# This setting is potentially annoying when debugging/editing, but highly desirable
|
|
||||||
# in the CI pipeline, where such a warning should result in a failed pipeline, since the
|
|
||||||
# final document is incomplete/corrupted.
|
|
||||||
#
|
|
||||||
# However, I could not eradicate all warnings, so that `latexmk` currently fails with
|
|
||||||
# this option enabled.
|
|
||||||
# Specifically, `microtype` fails together with `fontawesome`/`fontawesome5`, see:
|
|
||||||
# https://tex.stackexchange.com/a/547514/120853
|
|
||||||
# The fix in that answer did not help.
|
|
||||||
# Setting `verbose=silent` to mute `microtype` warnings did not work.
|
|
||||||
# Switching between `fontawesome` and `fontawesome5` did not help.
|
|
||||||
$warnings_as_errors = 0;
|
|
||||||
|
|
||||||
# Show used CPU time. Looks like: https://tex.stackexchange.com/a/312224/120853
|
|
||||||
$show_time = 1;
|
|
||||||
|
|
||||||
# Default is 5; we seem to need more owed to the complexity of the document.
|
|
||||||
# Actual documents probably don't need this many since they won't use all features,
|
|
||||||
# plus won't be compiling from cold each time.
|
|
||||||
$max_repeat=7;
|
|
||||||
|
|
||||||
# --shell-escape option (execution of code outside of latex) is required for the
|
|
||||||
#'svg' package.
|
|
||||||
# It converts raw SVG files to the PDF+PDF_TEX combo using InkScape.
|
|
||||||
#
|
|
||||||
# SyncTeX allows to jump between source (code) and output (PDF) in IDEs with support
|
|
||||||
# (many have it). A value of `1` is enabled (gzipped), `-1` is enabled but uncompressed,
|
|
||||||
# `0` is off.
|
|
||||||
# Testing in VSCode w/ LaTeX Workshop only worked for the compressed version.
|
|
||||||
# Adjust this as needed. Of course, only relevant for local use, no effect on a remote
|
|
||||||
# CI pipeline (except for slower compilation, probably).
|
|
||||||
#
|
|
||||||
# %O and %S will forward Options and the Source file, respectively, given to latexmk.
|
|
||||||
#
|
|
||||||
# `set_tex_cmds` applies to all *latex commands (latex, xelatex, lualatex, ...), so
|
|
||||||
# no need to specify these each. This allows to simply change `$pdf_mode` to get a
|
|
||||||
# different engine. Check if this works with `latexmk --commands`.
|
|
||||||
set_tex_cmds("--shell-escape -interaction=nonstopmode --synctex=1 %O %S");
|
|
||||||
|
|
||||||
# Use default pdf viewer
|
|
||||||
$pdf_previewer = 'zathura';
|
|
||||||
|
|
||||||
# option 2 is same as 1 (run biber when necessary), but also deletes the
|
|
||||||
# regeneratable bbl-file in a clenaup (`latexmk -c`). Do not use if original
|
|
||||||
# bib file is not available!
|
|
||||||
$bibtex_use = 1; # default: 1
|
|
||||||
|
|
||||||
# Change default `biber` call, help catch errors faster/clearer. See
|
|
||||||
# https://web.archive.org/web/20200526101657/https://www.semipol.de/2018/06/12/latex-best-practices.html#database-entries
|
|
||||||
$bibtex = "bibtex %S";
|
|
||||||
|
|
||||||
# ======================================================================================
|
|
||||||
# Auxiliary Files
|
|
||||||
# ======================================================================================
|
|
||||||
|
|
||||||
# Let latexmk know about generated files, so they can be used to detect if a
|
|
||||||
# rerun is required, or be deleted in a cleanup.
|
|
||||||
# loe: List of Examples (KOMAScript)
|
|
||||||
# lol: List of Listings (`listings` and `minted` packages)
|
|
||||||
# run.xml: biber runs
|
|
||||||
# glg: glossaries log
|
|
||||||
# glstex: generated from glossaries-extra
|
|
||||||
push @generated_exts, 'loe', 'lol', 'run.xml', 'glg', 'glstex';
|
|
||||||
|
|
||||||
# Also delete the *.glstex files from package glossaries-extra. Problem is,
|
|
||||||
# that that package generates files of the form "basename-digit.glstex" if
|
|
||||||
# multiple glossaries are present. Latexmk looks for "basename.glstex" and so
|
|
||||||
# does not find those. For that purpose, use wildcard.
|
|
||||||
# Also delete files generated by gnuplot/pgfplots contour plots
|
|
||||||
# (.dat, .script, .table).
|
|
||||||
$clean_ext = "%R-*.glstex %R_contourtmp*.*";
|
|
BIN
matlab/index.pdf
Normal file
28
paper/config.tex
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
% H Infini
|
||||||
|
\newcommand{\hinf}{\mathcal{H}_\infty}
|
||||||
|
|
||||||
|
% H 2
|
||||||
|
\newcommand{\htwo}{\mathcal{H}_2}
|
||||||
|
|
||||||
|
% Omega
|
||||||
|
\newcommand{\w}{\omega}
|
||||||
|
|
||||||
|
% H-Infinity Norm
|
||||||
|
\newcommand{\hnorm}[1]{\left\|#1\right\|_{\infty}}
|
||||||
|
|
||||||
|
% H-2 Norm
|
||||||
|
\newcommand{\normtwo}[1]{\left\|#1\right\|_{2}}
|
||||||
|
|
||||||
|
% Norm
|
||||||
|
\newcommand{\norm}[1]{\left\|#1\right\|}
|
||||||
|
|
||||||
|
% Absolute value
|
||||||
|
\newcommand{\abs}[1]{\left\lvert #1 \right\lvert}
|
||||||
|
|
||||||
|
% Minimum Subscript
|
||||||
|
\newcommand{\smin}{_{\text{min}}}
|
||||||
|
|
||||||
|
% Maximum Subscript
|
||||||
|
\newcommand{\smax}{_{\text{max}}}
|
||||||
|
|
||||||
|
\newcommand*\colvec[1]{\begin{bmatrix}#1\end{bmatrix}}
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
4593
paper/ieeeconf.cls
Normal file
@ -1,15 +1,32 @@
|
|||||||
#+TITLE: Optimal and Robust Sensor Fusion using Complementary Filters
|
#+TITLE: Optimal and Robust Sensor Fusion
|
||||||
:DRAWER:
|
:DRAWER:
|
||||||
#+LATEX_CLASS: IEEEtran
|
#+LATEX_CLASS: IEEEtran
|
||||||
#+LATEX_CLASS_OPTIONS: [10pt,final,journal,a4paper]
|
#+LATEX_CLASS_OPTIONS: [conference]
|
||||||
#+OPTIONS: toc:nil todo:nil
|
#+OPTIONS: toc:nil todo:nil
|
||||||
#+STARTUP: overview
|
#+STARTUP: overview
|
||||||
|
|
||||||
#+DATE: {{{time(%Y-%m-%d)}}}
|
#+DATE: {{{time(%Y-%m-%d)}}}
|
||||||
|
|
||||||
#+AUTHOR: @@latex:\author{Thomas~Dehaeze, Mohit~Verma, and~Christophe~Collette@@
|
#+AUTHOR: @@latex:\IEEEauthorblockN{Dehaeze Thomas}@@
|
||||||
#+AUTHOR: @@latex:\thanks{The authors are with the Precision Mechatronics Laboratory at the University of Liege, Belgium.}@@
|
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{European Synchrotron Radiation Facility} \\@@
|
||||||
#+AUTHOR: @@latex:\thanks{Corresponding author: thomas.dehaeze@esrf.fr}@@
|
#+AUTHOR: @@latex:Grenoble, France\\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{Precision Mechatronics Laboratory} \\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
||||||
|
#+AUTHOR: @@latex:thomas.dehaeze@esrf.fr@@
|
||||||
|
#+AUTHOR: @@latex:}\and@@
|
||||||
|
#+AUTHOR: @@latex:\IEEEauthorblockN{Verma Mohit}@@
|
||||||
|
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{Precision Mechatronics Laboratory} \\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
||||||
|
#+AUTHOR: @@latex:mohitverma.serc@csir.res.in@@
|
||||||
|
#+AUTHOR: @@latex:}\and@@
|
||||||
|
#+AUTHOR: @@latex:\IEEEauthorblockN{Collette Christophe}@@
|
||||||
|
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{Precision Mechatronics Laboratory} \\@@
|
||||||
|
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
||||||
|
#+AUTHOR: @@latex:ccollett@ulb.ac.be@@
|
||||||
#+AUTHOR: @@latex:}@@
|
#+AUTHOR: @@latex:}@@
|
||||||
|
|
||||||
#+LATEX_HEADER: \IEEEoverridecommandlockouts
|
#+LATEX_HEADER: \IEEEoverridecommandlockouts
|
||||||
@ -28,8 +45,14 @@
|
|||||||
#+LATEX_HEADER_EXTRA: \usepackage{showframe}
|
#+LATEX_HEADER_EXTRA: \usepackage{showframe}
|
||||||
|
|
||||||
#+LATEX_HEADER: \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
|
#+LATEX_HEADER: \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
|
||||||
|
|
||||||
|
\bibliographystyle{IEEEtran}
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
|
* LaTeX Config :noexport:
|
||||||
|
#+begin_src latex :tangle config.tex
|
||||||
|
#+end_src
|
||||||
|
|
||||||
* Build :noexport:
|
* Build :noexport:
|
||||||
#+NAME: startblock
|
#+NAME: startblock
|
||||||
#+BEGIN_SRC emacs-lisp :results none
|
#+BEGIN_SRC emacs-lisp :results none
|
||||||
@ -43,16 +66,6 @@
|
|||||||
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
|
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Remove automatic org headings
|
|
||||||
(defun my-latex-filter-removeOrgAutoLabels (text backend info)
|
|
||||||
"Org-mode automatically generates labels for headings despite explicit use of `#+LABEL`. This filter forcibly removes all automatically generated org-labels in headings."
|
|
||||||
(when (org-export-derived-backend-p backend 'latex)
|
|
||||||
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
|
|
||||||
|
|
||||||
(add-to-list 'org-export-filter-headline-functions
|
|
||||||
'my-latex-filter-removeOrgAutoLabels)
|
|
||||||
|
|
||||||
;; Automatic delete org org-comments
|
|
||||||
(defun delete-org-comments (backend)
|
(defun delete-org-comments (backend)
|
||||||
(loop for comment in (reverse (org-element-map (org-element-parse-buffer)
|
(loop for comment in (reverse (org-element-map (org-element-parse-buffer)
|
||||||
'comment 'identity))
|
'comment 'identity))
|
||||||
@ -81,8 +94,6 @@
|
|||||||
* Introduction
|
* Introduction
|
||||||
<<sec:introduction>>
|
<<sec:introduction>>
|
||||||
|
|
||||||
cite:mahony08_nonlin_compl_filter_special_orthog_group
|
|
||||||
|
|
||||||
- Section ref:sec:optimal_fusion
|
- Section ref:sec:optimal_fusion
|
||||||
- Section ref:sec:robust_fusion
|
- Section ref:sec:robust_fusion
|
||||||
- Section ref:sec:optimal_robust_fusion
|
- Section ref:sec:optimal_robust_fusion
|
||||||
@ -464,7 +475,7 @@ The synthesis objective is to:
|
|||||||
- Minimize the $\mathcal{H}_2$ norm from $w$ to $(z_{2,1}, z_{2,2})$
|
- Minimize the $\mathcal{H}_2$ norm from $w$ to $(z_{2,1}, z_{2,2})$
|
||||||
|
|
||||||
#+name: fig:mixed_h2_hinf_synthesis
|
#+name: fig:mixed_h2_hinf_synthesis
|
||||||
#+caption: Generalized plant $P_{\mathcal{H}_2/\mathcal{H}_\infty}$ used for the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis of complementary filters
|
#+caption: Generalized plant $P_{\mathcal{H}_2/\matlcal{H}_\infty}$ used for the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis of complementary filters
|
||||||
#+attr_latex: :scale 1
|
#+attr_latex: :scale 1
|
||||||
[[file:figs/mixed_h2_hinf_synthesis.pdf]]
|
[[file:figs/mixed_h2_hinf_synthesis.pdf]]
|
||||||
|
|
||||||
@ -507,10 +518,4 @@ The synthesis objective is to:
|
|||||||
* Acknowledgment
|
* Acknowledgment
|
||||||
|
|
||||||
* Bibliography :ignore:
|
* Bibliography :ignore:
|
||||||
\bibliographystyle{IEEEtran}
|
|
||||||
\bibliography{ref}
|
\bibliography{ref}
|
||||||
|
|
||||||
* Local Variables :noexport:
|
|
||||||
# Local Variables:
|
|
||||||
# org-latex-packages-alist: nil
|
|
||||||
# End:
|
|
@ -1,6 +1,6 @@
|
|||||||
% Created 2021-09-10 ven. 11:01
|
% Created 2020-10-26 lun. 18:25
|
||||||
% Intended LaTeX compiler: pdflatex
|
% Intended LaTeX compiler: pdflatex
|
||||||
\documentclass[10pt,final,journal,a4paper]{IEEEtran}
|
\documentclass[conference]{IEEEtran}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage[T1]{fontenc}
|
\usepackage[T1]{fontenc}
|
||||||
\usepackage{graphicx}
|
\usepackage{graphicx}
|
||||||
@ -14,6 +14,12 @@
|
|||||||
\usepackage{amssymb}
|
\usepackage{amssymb}
|
||||||
\usepackage{capt-of}
|
\usepackage{capt-of}
|
||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
|
\usepackage[most]{tcolorbox}
|
||||||
|
\usepackage{bm}
|
||||||
|
\usepackage{booktabs}
|
||||||
|
\usepackage{tabularx}
|
||||||
|
\usepackage{array}
|
||||||
|
\usepackage{siunitx}
|
||||||
\IEEEoverridecommandlockouts
|
\IEEEoverridecommandlockouts
|
||||||
\usepackage{cite}
|
\usepackage{cite}
|
||||||
\usepackage{amsmath,amssymb,amsfonts}
|
\usepackage{amsmath,amssymb,amsfonts}
|
||||||
@ -28,9 +34,9 @@
|
|||||||
\renewcommand{\citedash}{--}
|
\renewcommand{\citedash}{--}
|
||||||
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
|
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
|
||||||
\usepackage{showframe}
|
\usepackage{showframe}
|
||||||
\author{\author{Thomas~Dehaeze, Mohit~Verma, and~Christophe~Collette \thanks{The authors are with the Precision Mechatronics Laboratory at the University of Liege, Belgium.} \thanks{Corresponding author: thomas.dehaeze@esrf.fr} }}
|
\author{\IEEEauthorblockN{Dehaeze Thomas} \IEEEauthorblockA{\textit{European Synchrotron Radiation Facility} \\ Grenoble, France\\ \textit{Precision Mechatronics Laboratory} \\ \textit{University of Liege}, Belgium \\ thomas.dehaeze@esrf.fr }\and \IEEEauthorblockN{Verma Mohit} \IEEEauthorblockA{\textit{BEAMS Department}\\ \textit{Free University of Brussels}, Belgium\\ \textit{Precision Mechatronics Laboratory} \\ \textit{University of Liege}, Belgium \\ mohitverma.serc@csir.res.in }\and \IEEEauthorblockN{Collette Christophe} \IEEEauthorblockA{\textit{BEAMS Department}\\ \textit{Free University of Brussels}, Belgium\\ \textit{Precision Mechatronics Laboratory} \\ \textit{University of Liege}, Belgium \\ ccollett@ulb.ac.be }}
|
||||||
\date{2021-09-10}
|
\date{2020-10-26}
|
||||||
\title{Optimal and Robust Sensor Fusion using Complementary Filters}
|
\title{Optimal and Robust Sensor Fusion}
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
@ -44,10 +50,9 @@ Complementary Filters, Sensor Fusion, H-Infinity Synthesis
|
|||||||
\end{IEEEkeywords}
|
\end{IEEEkeywords}
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
|
\label{sec:org2820158}
|
||||||
\label{sec:introduction}
|
\label{sec:introduction}
|
||||||
|
|
||||||
\cite{mahony08_nonlin_compl_filter_special_orthog_group}
|
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Section \ref{sec:optimal_fusion}
|
\item Section \ref{sec:optimal_fusion}
|
||||||
\item Section \ref{sec:robust_fusion}
|
\item Section \ref{sec:robust_fusion}
|
||||||
@ -56,9 +61,11 @@ Complementary Filters, Sensor Fusion, H-Infinity Synthesis
|
|||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\section{Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis}
|
\section{Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis}
|
||||||
|
\label{sec:org2513ad9}
|
||||||
\label{sec:optimal_fusion}
|
\label{sec:optimal_fusion}
|
||||||
|
|
||||||
\subsection{Sensor Model}
|
\subsection{Sensor Model}
|
||||||
|
\label{sec:orgbcc6cb6}
|
||||||
Let's consider a sensor measuring a physical quantity \(x\) (Figure \ref{fig:sensor_model_noise}).
|
Let's consider a sensor measuring a physical quantity \(x\) (Figure \ref{fig:sensor_model_noise}).
|
||||||
The sensor has an internal dynamics which is here modelled with a Linear Time Invariant (LTI) system transfer function \(G_i(s)\).
|
The sensor has an internal dynamics which is here modelled with a Linear Time Invariant (LTI) system transfer function \(G_i(s)\).
|
||||||
|
|
||||||
@ -89,18 +96,19 @@ In order to obtain an estimate \(\hat{x}_i\) of \(x\), a model \(\hat{G}_i\) of
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensor_model_noise.pdf}
|
\includegraphics[scale=1]{figs/sensor_model_noise.pdf}
|
||||||
\caption{\label{fig:sensor_model_noise}Sensor Model}
|
\caption{\label{fig:sensor_model_noise}Sensor Model}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Sensor Fusion Architecture}
|
\subsection{Sensor Fusion Architecture}
|
||||||
|
\label{sec:orgdb526ec}
|
||||||
Let's now consider two sensors measuring the same physical quantity \(x\) but with different dynamics \((G_1, G_2)\) and noise characteristics \((N_1, N_2)\) (Figure \ref{fig:sensor_fusion_noise_arch}).
|
Let's now consider two sensors measuring the same physical quantity \(x\) but with different dynamics \((G_1, G_2)\) and noise characteristics \((N_1, N_2)\) (Figure \ref{fig:sensor_fusion_noise_arch}).
|
||||||
|
|
||||||
The noise sources \(\tilde{n}_1\) and \(\tilde{n}_2\) are considered to be uncorrelated.
|
The noise sources \(\tilde{n}_1\) and \(\tilde{n}_2\) are considered to be uncorrelated.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensor_fusion_noise_arch.pdf}
|
\includegraphics[scale=1]{figs/sensor_fusion_noise_arch.pdf}
|
||||||
\caption{\label{fig:sensor_fusion_noise_arch}Sensor Fusion Architecture with sensor noise}
|
\caption{\label{fig:sensor_fusion_noise_arch}Sensor Fusion Architecture with sensor noise}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
@ -130,6 +138,7 @@ In such case, the super sensor estimate \(\hat{x}\) is equal to \(x\) plus the n
|
|||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
\subsection{Super Sensor Noise}
|
\subsection{Super Sensor Noise}
|
||||||
|
\label{sec:org48c0d52}
|
||||||
Let's note \(n\) the super sensor noise.
|
Let's note \(n\) the super sensor noise.
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
n = \left( H_1 N_1 \right) \tilde{n}_1 + \left( H_2 N_2 \right) \tilde{n}_2
|
n = \left( H_1 N_1 \right) \tilde{n}_1 + \left( H_2 N_2 \right) \tilde{n}_2
|
||||||
@ -143,6 +152,7 @@ As the noise of both sensors are considered to be uncorrelated, the PSD of the s
|
|||||||
It is clear that the PSD of the super sensor depends on the norm of the complementary filters.
|
It is clear that the PSD of the super sensor depends on the norm of the complementary filters.
|
||||||
|
|
||||||
\subsection{\(\mathcal{H}_2\) Synthesis of Complementary Filters}
|
\subsection{\(\mathcal{H}_2\) Synthesis of Complementary Filters}
|
||||||
|
\label{sec:org0d9384e}
|
||||||
The goal is to design \(H_1(s)\) and \(H_2(s)\) such that the effect of the noise sources \(\tilde{n}_1\) and \(\tilde{n}_2\) has the smallest possible effect on the noise \(n\) of the estimation \(\hat{x}\).
|
The goal is to design \(H_1(s)\) and \(H_2(s)\) such that the effect of the noise sources \(\tilde{n}_1\) and \(\tilde{n}_2\) has the smallest possible effect on the noise \(n\) of the estimation \(\hat{x}\).
|
||||||
|
|
||||||
And the goal is the minimize the Root Mean Square (RMS) value of \(n\):
|
And the goal is the minimize the Root Mean Square (RMS) value of \(n\):
|
||||||
@ -181,63 +191,67 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/h_two_optimal_fusion.pdf}
|
\includegraphics[scale=1]{figs/h_two_optimal_fusion.pdf}
|
||||||
\caption{\label{fig:h_two_optimal_fusion}Generalized plant \(P_{\mathcal{H}_2}\) used for the \(\mathcal{H}_2\) synthesis of complementary filters}
|
\caption{\label{fig:h_two_optimal_fusion}Generalized plant \(P_{\mathcal{H}_2}\) used for the \(\mathcal{H}_2\) synthesis of complementary filters}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Example}
|
\subsection{Example}
|
||||||
|
\label{sec:org99002de}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensors_nominal_dynamics.pdf}
|
\includegraphics[scale=1]{figs/sensors_nominal_dynamics.pdf}
|
||||||
\caption{\label{fig:sensors_nominal_dynamics}Sensor nominal dynamics from the velocity of the object to the output voltage}
|
\caption{\label{fig:sensors_nominal_dynamics}Sensor nominal dynamics from the velocity of the object to the output voltage}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensors_noise.pdf}
|
\includegraphics[scale=1]{figs/sensors_noise.pdf}
|
||||||
\caption{\label{fig:sensors_noise}Amplitude spectral density of the sensors \(\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|\)}
|
\caption{\label{fig:sensors_noise}Amplitude spectral density of the sensors \(\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|\)}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/htwo_comp_filters.pdf}
|
\includegraphics[scale=1]{figs/htwo_comp_filters.pdf}
|
||||||
\caption{\label{fig:htwo_comp_filters}Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis}
|
\caption{\label{fig:htwo_comp_filters}Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/psd_sensors_htwo_synthesis.pdf}
|
\includegraphics[scale=1]{figs/psd_sensors_htwo_synthesis.pdf}
|
||||||
\caption{\label{fig:psd_sensors_htwo_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the optimally fused signal}
|
\caption{\label{fig:psd_sensors_htwo_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the optimally fused signal}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/super_sensor_time_domain_h2.pdf}
|
\includegraphics[scale=1]{figs/super_sensor_time_domain_h2.pdf}
|
||||||
\caption{\label{fig:super_sensor_time_domain_h2}Noise of individual sensors and noise of the super sensor}
|
\caption{\label{fig:super_sensor_time_domain_h2}Noise of individual sensors and noise of the super sensor}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Robustness Problem}
|
\subsection{Robustness Problem}
|
||||||
|
\label{sec:org262893f}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensors_nominal_dynamics_and_uncertainty.pdf}
|
\includegraphics[scale=1]{figs/sensors_nominal_dynamics_and_uncertainty.pdf}
|
||||||
\caption{\label{fig:sensors_nominal_dynamics_and_uncertainty}Nominal Sensor Dynamics \(\hat{G}_i\) (solid lines) as well as the spread of the dynamical uncertainty (background color)}
|
\caption{\label{fig:sensors_nominal_dynamics_and_uncertainty}Nominal Sensor Dynamics \(\hat{G}_i\) (solid lines) as well as the spread of the dynamical uncertainty (background color)}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/super_sensor_dynamical_uncertainty_H2.pdf}
|
\includegraphics[scale=1]{figs/super_sensor_dynamical_uncertainty_H2.pdf}
|
||||||
\caption{\label{fig:super_sensor_dynamical_uncertainty_H2}Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis}
|
\caption{\label{fig:super_sensor_dynamical_uncertainty_H2}Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\section{Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis}
|
\section{Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis}
|
||||||
|
\label{sec:org7c9047e}
|
||||||
\label{sec:robust_fusion}
|
\label{sec:robust_fusion}
|
||||||
|
|
||||||
\subsection{Representation of Sensor Dynamical Uncertainty}
|
\subsection{Representation of Sensor Dynamical Uncertainty}
|
||||||
|
\label{sec:org7bd4379}
|
||||||
|
|
||||||
In Section \ref{sec:optimal_fusion}, the model \(\hat{G}_i(s)\) of the sensor was considered to be perfect.
|
In Section \ref{sec:optimal_fusion}, the model \(\hat{G}_i(s)\) of the sensor was considered to be perfect.
|
||||||
In reality, there are always uncertainty (neglected dynamics) associated with the estimation of the sensor dynamics.
|
In reality, there are always uncertainty (neglected dynamics) associated with the estimation of the sensor dynamics.
|
||||||
@ -252,11 +266,12 @@ The sensor can then be represented as shown in Figure \ref{fig:sensor_model_unce
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensor_model_uncertainty.pdf}
|
\includegraphics[scale=1]{figs/sensor_model_uncertainty.pdf}
|
||||||
\caption{\label{fig:sensor_model_uncertainty}Sensor Model including Dynamical Uncertainty}
|
\caption{\label{fig:sensor_model_uncertainty}Sensor Model including Dynamical Uncertainty}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Sensor Fusion Architecture}
|
\subsection{Sensor Fusion Architecture}
|
||||||
|
\label{sec:org0b8ce2b}
|
||||||
Let's consider the sensor fusion architecture shown in Figure \ref{fig:sensor_fusion_arch_uncertainty} where the dynamical uncertainties of both sensors are included.
|
Let's consider the sensor fusion architecture shown in Figure \ref{fig:sensor_fusion_arch_uncertainty} where the dynamical uncertainties of both sensors are included.
|
||||||
|
|
||||||
The super sensor estimate is then:
|
The super sensor estimate is then:
|
||||||
@ -276,11 +291,12 @@ As \(H_1\) and \(H_2\) are complementary filters, we finally have:
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensor_fusion_arch_uncertainty.pdf}
|
\includegraphics[scale=1]{figs/sensor_fusion_arch_uncertainty.pdf}
|
||||||
\caption{\label{fig:sensor_fusion_arch_uncertainty}Sensor Fusion Architecture with sensor model uncertainty}
|
\caption{\label{fig:sensor_fusion_arch_uncertainty}Sensor Fusion Architecture with sensor model uncertainty}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Super Sensor Dynamical Uncertainty}
|
\subsection{Super Sensor Dynamical Uncertainty}
|
||||||
|
\label{sec:org725af92}
|
||||||
The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at frequency \(\omega\) is bounded in the complex plane by a circle centered on 1 and with a radius equal to \(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\) as shown in Figure \ref{fig:uncertainty_set_super_sensor}.
|
The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at frequency \(\omega\) is bounded in the complex plane by a circle centered on 1 and with a radius equal to \(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\) as shown in Figure \ref{fig:uncertainty_set_super_sensor}.
|
||||||
|
|
||||||
|
|
||||||
@ -288,13 +304,14 @@ And we can see that the dynamical uncertainty of the super sensor is equal to th
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/uncertainty_set_super_sensor.pdf}
|
\includegraphics[scale=1]{figs/uncertainty_set_super_sensor.pdf}
|
||||||
\caption{\label{fig:uncertainty_set_super_sensor}Super Sensor model uncertainty displayed in the complex plane}
|
\caption{\label{fig:uncertainty_set_super_sensor}Super Sensor model uncertainty displayed in the complex plane}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
At frequencies where \(\left|W_i(j\omega)\right| > 1\) the uncertainty exceeds \(100\%\) and sensor fusion is impossible.
|
At frequencies where \(\left|W_i(j\omega)\right| > 1\) the uncertainty exceeds \(100\%\) and sensor fusion is impossible.
|
||||||
|
|
||||||
\subsection{\(\mathcal{H_\infty}\) Synthesis of Complementary Filters}
|
\subsection{\(\mathcal{H_\infty}\) Synthesis of Complementary Filters}
|
||||||
|
\label{sec:org941ed72}
|
||||||
In order for the fusion to be ``robust'', meaning no phase drop will be induced in the super sensor dynamics,
|
In order for the fusion to be ``robust'', meaning no phase drop will be induced in the super sensor dynamics,
|
||||||
|
|
||||||
The goal is to design two complementary filters \(H_1(s)\) and \(H_2(s)\) such that the super sensor noise uncertainty is kept reasonably small.
|
The goal is to design two complementary filters \(H_1(s)\) and \(H_2(s)\) such that the super sensor noise uncertainty is kept reasonably small.
|
||||||
@ -335,48 +352,51 @@ The \(\mathcal{H}_\infty\) norm of Eq. \eqref{eq:Hinf_norm} is equals to \(\sigm
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/h_infinity_robust_fusion.pdf}
|
\includegraphics[scale=1]{figs/h_infinity_robust_fusion.pdf}
|
||||||
\caption{\label{fig:h_infinity_robust_fusion}Generalized plant \(P_{\mathcal{H}_\infty}\) used for the \(\mathcal{H}_\infty\) synthesis of complementary filters}
|
\caption{\label{fig:h_infinity_robust_fusion}Generalized plant \(P_{\mathcal{H}_\infty}\) used for the \(\mathcal{H}_\infty\) synthesis of complementary filters}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Example}
|
\subsection{Example}
|
||||||
|
\label{sec:org7df520f}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensors_uncertainty_weights.pdf}
|
\includegraphics[scale=1]{figs/sensors_uncertainty_weights.pdf}
|
||||||
\caption{\label{fig:sensors_uncertainty_weights}Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)}
|
\caption{\label{fig:sensors_uncertainty_weights}Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/weight_uncertainty_bounds_Wu.pdf}
|
\includegraphics[scale=1]{figs/weight_uncertainty_bounds_Wu.pdf}
|
||||||
\caption{\label{fig:weight_uncertainty_bounds_Wu}Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)}
|
\caption{\label{fig:weight_uncertainty_bounds_Wu}Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/hinf_comp_filters.pdf}
|
\includegraphics[scale=1]{figs/hinf_comp_filters.pdf}
|
||||||
\caption{\label{fig:hinf_comp_filters}Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis}
|
\caption{\label{fig:hinf_comp_filters}Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/super_sensor_dynamical_uncertainty_Hinf.pdf}
|
\includegraphics[scale=1]{figs/super_sensor_dynamical_uncertainty_Hinf.pdf}
|
||||||
\caption{\label{fig:super_sensor_dynamical_uncertainty_Hinf}Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis}
|
\caption{\label{fig:super_sensor_dynamical_uncertainty_Hinf}Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/psd_sensors_hinf_synthesis.pdf}
|
\includegraphics[scale=1]{figs/psd_sensors_hinf_synthesis.pdf}
|
||||||
\caption{\label{fig:psd_sensors_hinf_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the \(\mathcal{H}_\infty\) synthesis}
|
\caption{\label{fig:psd_sensors_hinf_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the \(\mathcal{H}_\infty\) synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
\section{Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
\section{Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
||||||
|
\label{sec:org75a038a}
|
||||||
\label{sec:optimal_robust_fusion}
|
\label{sec:optimal_robust_fusion}
|
||||||
|
|
||||||
\subsection{Sensor with noise and model uncertainty}
|
\subsection{Sensor with noise and model uncertainty}
|
||||||
|
\label{sec:org3810d6b}
|
||||||
We wish now to combine the two previous synthesis, that is to say
|
We wish now to combine the two previous synthesis, that is to say
|
||||||
|
|
||||||
The sensors are now modelled by a white noise with unitary PSD \(\tilde{n}_i\) shaped by a LTI transfer function \(N_i(s)\).
|
The sensors are now modelled by a white noise with unitary PSD \(\tilde{n}_i\) shaped by a LTI transfer function \(N_i(s)\).
|
||||||
@ -392,11 +412,12 @@ Multiplying by the inverse of the nominal model of the sensor dynamics gives an
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensor_model_noise_uncertainty.pdf}
|
\includegraphics[scale=1]{figs/sensor_model_noise_uncertainty.pdf}
|
||||||
\caption{\label{fig:sensor_model_noise_uncertainty}Sensor Model including Noise and Dynamical Uncertainty}
|
\caption{\label{fig:sensor_model_noise_uncertainty}Sensor Model including Noise and Dynamical Uncertainty}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Sensor Fusion Architecture}
|
\subsection{Sensor Fusion Architecture}
|
||||||
|
\label{sec:org3758b1e}
|
||||||
|
|
||||||
For reason of space, the blocks \(\hat{G}_i\) and \(\hat{G}_i^{-1}\) are omitted.
|
For reason of space, the blocks \(\hat{G}_i\) and \(\hat{G}_i^{-1}\) are omitted.
|
||||||
|
|
||||||
@ -418,11 +439,12 @@ The estimate \(\hat{x}\) of \(x\)
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/sensor_fusion_arch_full.pdf}
|
\includegraphics[scale=1]{figs/sensor_fusion_arch_full.pdf}
|
||||||
\caption{\label{fig:sensor_fusion_arch_full}Super Sensor Fusion with both sensor noise and sensor model uncertainty}
|
\caption{\label{fig:sensor_fusion_arch_full}Super Sensor Fusion with both sensor noise and sensor model uncertainty}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
||||||
|
\label{sec:org06317f4}
|
||||||
|
|
||||||
The synthesis objective is to generate two complementary filters \(H_1(s)\) and \(H_2(s)\) such that the uncertainty associated with the super sensor is kept reasonably small and such that the RMS value of super sensors noise is minimized.
|
The synthesis objective is to generate two complementary filters \(H_1(s)\) and \(H_2(s)\) such that the uncertainty associated with the super sensor is kept reasonably small and such that the RMS value of super sensors noise is minimized.
|
||||||
|
|
||||||
@ -452,52 +474,59 @@ The synthesis objective is to:
|
|||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/mixed_h2_hinf_synthesis.pdf}
|
\includegraphics[scale=1]{figs/mixed_h2_hinf_synthesis.pdf}
|
||||||
\caption{\label{fig:mixed_h2_hinf_synthesis}Generalized plant \(P_{\mathcal{H}_2/\mathcal{H}_\infty}\) used for the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of complementary filters}
|
\caption{\label{fig:mixed_h2_hinf_synthesis}Generalized plant \(P_{\mathcal{H}_2/\matlcal{H}_\infty}\) used for the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of complementary filters}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Example}
|
\subsection{Example}
|
||||||
|
\label{sec:org42ee165}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/htwo_hinf_comp_filters.pdf}
|
\includegraphics[scale=1]{figs/htwo_hinf_comp_filters.pdf}
|
||||||
\caption{\label{fig:htwo_hinf_comp_filters}Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
\caption{\label{fig:htwo_hinf_comp_filters}Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/psd_sensors_htwo_hinf_synthesis.pdf}
|
\includegraphics[scale=1]{figs/psd_sensors_htwo_hinf_synthesis.pdf}
|
||||||
\caption{\label{fig:psd_sensors_htwo_hinf_synthesis}Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
\caption{\label{fig:psd_sensors_htwo_hinf_synthesis}Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/super_sensor_time_domain_h2_hinf.pdf}
|
\includegraphics[scale=1]{figs/super_sensor_time_domain_h2_hinf.pdf}
|
||||||
\caption{\label{fig:super_sensor_time_domain_h2_hinf}Noise of individual sensors and noise of the super sensor}
|
\caption{\label{fig:super_sensor_time_domain_h2_hinf}Noise of individual sensors and noise of the super sensor}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1,scale=1]{figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.pdf}
|
\includegraphics[scale=1]{figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.pdf}
|
||||||
\caption{\label{fig:super_sensor_dynamical_uncertainty_Htwo_Hinf}Super sensor dynamical uncertainty (solid curve) when using the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
\caption{\label{fig:super_sensor_dynamical_uncertainty_Htwo_Hinf}Super sensor dynamical uncertainty (solid curve) when using the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\section{Experimental Validation}
|
\section{Experimental Validation}
|
||||||
|
\label{sec:orge381a2a}
|
||||||
\label{sec:experimental_validation}
|
\label{sec:experimental_validation}
|
||||||
|
|
||||||
\subsection{Experimental Setup}
|
\subsection{Experimental Setup}
|
||||||
|
\label{sec:org473ab00}
|
||||||
|
|
||||||
\subsection{Sensor Noise and Dynamical Uncertainty}
|
\subsection{Sensor Noise and Dynamical Uncertainty}
|
||||||
|
\label{sec:orgebcb65d}
|
||||||
|
|
||||||
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
||||||
|
\label{sec:org0259d19}
|
||||||
|
|
||||||
\subsection{Super Sensor Noise and Dynamical Uncertainty}
|
\subsection{Super Sensor Noise and Dynamical Uncertainty}
|
||||||
|
\label{sec:orgdb5d29f}
|
||||||
|
|
||||||
\section{Conclusion}
|
\section{Conclusion}
|
||||||
|
\label{sec:org07df454}
|
||||||
\label{sec:conclusion}
|
\label{sec:conclusion}
|
||||||
|
|
||||||
\section{Acknowledgment}
|
\section{Acknowledgment}
|
||||||
|
\label{sec:org7b7e461}
|
||||||
|
|
||||||
\bibliographystyle{IEEEtran}
|
|
||||||
\bibliography{ref}
|
\bibliography{ref}
|
||||||
\end{document}
|
\end{document}
|
550
tikz/index.html
Normal file
@ -0,0 +1,550 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<!-- 2020-11-12 jeu. 10:42 -->
|
||||||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
|
<title>Robust and Optimal Sensor Fusion - Tikz Figures</title>
|
||||||
|
<meta name="generator" content="Org mode" />
|
||||||
|
<meta name="author" content="Thomas Dehaeze" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||||
|
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||||
|
<script>MathJax = {
|
||||||
|
tex: {
|
||||||
|
tags: 'ams',
|
||||||
|
macros: {bm: ["\\boldsymbol{#1}",1],}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="org-div-home-and-up">
|
||||||
|
<a accesskey="h" href="../index.html"> UP </a>
|
||||||
|
|
|
||||||
|
<a accesskey="H" href="../index.html"> HOME </a>
|
||||||
|
</div><div id="content">
|
||||||
|
<h1 class="title">Robust and Optimal Sensor Fusion - Tikz Figures</h1>
|
||||||
|
<div id="table-of-contents">
|
||||||
|
<h2>Table of Contents</h2>
|
||||||
|
<div id="text-table-of-contents">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#orgde691cc">1. Sensor Model - Noise</a></li>
|
||||||
|
<li><a href="#org3e09ccd">2. Sensor Fusion Architecture</a></li>
|
||||||
|
<li><a href="#org98e222d">3. Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</a></li>
|
||||||
|
<li><a href="#org7b2be36">4. Sensor Model - Uncertainty</a></li>
|
||||||
|
<li><a href="#org201b812">5. Sensor fusion architecture with sensor dynamics uncertainty</a></li>
|
||||||
|
<li><a href="#org295dc2a">6. Uncertainty set of the super sensor dynamics</a></li>
|
||||||
|
<li><a href="#orgff8ec60">7. Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</a></li>
|
||||||
|
<li><a href="#org77a9624">8. Sensor Model - Noise and Uncertainty</a></li>
|
||||||
|
<li><a href="#org194f17b">9. Sensor fusion architecture with sensor dynamics uncertainty and noise</a></li>
|
||||||
|
<li><a href="#org92adb06">10. Mixed H2/H-Infinity Synthesis</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
Configuration file is accessible <a href="config.html">here</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="outline-container-orgde691cc" class="outline-2">
|
||||||
|
<h2 id="orgde691cc"><span class="section-number-2">1</span> Sensor Model - Noise</h2>
|
||||||
|
<div class="outline-text-2" id="text-1">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb](add1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.5 of add1](G1){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (add1.west) -- ++(-1.0, 0) node[above right]{<span class="org-font-latex-math">$x$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N1.south) -- (add1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>} -- ++(0, 0.4);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv1.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n1.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1.north east) {Sensor};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org540adfc" class="figure">
|
||||||
|
<p><img src="figs/sensor_model_noise.png" alt="sensor_model_noise.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 1: </span>Sensor Model (<a href="./figs/sensor_model_noise.png">png</a>, <a href="./figs/sensor_model_noise.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org3e09ccd" class="outline-2">
|
||||||
|
<h2 id="org3e09ccd"><span class="section-number-2">2</span> Sensor Fusion Architecture</h2>
|
||||||
|
<div class="outline-text-2" id="text-2">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, above right=1.05 and 0.6 of x](add1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, below right=1.05 and 0.6 of x](add2){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 of add1](G1){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 of add2](G2){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G2](Ginv2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.6 of Ginv1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.6 of Ginv2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add2](N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=5.3 of x](add){};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add2.east) -- (G2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N1.south) -- (add1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N2.south) -- (add2.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>} -- ++(0, 0.4);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (N2.north)node[above left](n2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>} -- ++(0, 0.4);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G2.east) -- (Ginv2.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv1.east) -- (H1.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv2.east) -- (H2.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H1) -| (add.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2) -| (add.south);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(n1.north east-|add.east)+(0.2, 0.2)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n1.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G2.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n2.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor2) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org896d2c3" class="figure">
|
||||||
|
<p><img src="figs/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 2: </span>Sensor Fusion Architecture (<a href="./figs/sensor_fusion_noise_arch.png">png</a>, <a href="./figs/sensor_fusion_noise_arch.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org98e222d" class="outline-2">
|
||||||
|
<h2 id="org98e222d"><span class="section-number-2">3</span> Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</h2>
|
||||||
|
<div class="outline-text-2" id="text-3">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block={3.5cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.5!(P.north west) + (-0.7, 0)$</span>);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.8!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.5!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.2!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output1] (N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output2] (N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of N1] (sub) {};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2.west) -| (<span class="org-font-latex-math">$(inputu)+(0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$u$</span>} -- (N2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub.east) -- (N1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(sub.west)+(-0.6, 0)$</span>) node[branch]{} |- (<span class="org-font-latex-math">$(outputv)+(-0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$v$</span>} |- (H2.east);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N1.east) -- (output1)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N2.east) -- (output2)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgc47567c" class="figure">
|
||||||
|
<p><img src="figs/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 3: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters (<a href="./figs/h_two_optimal_fusion.png">png</a>, <a href="./figs/h_two_optimal_fusion.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org7b2be36" class="outline-2">
|
||||||
|
<h2 id="org7b2be36"><span class="section-number-2">4</span> Sensor Model - Uncertainty</h2>
|
||||||
|
<div class="outline-text-2" id="text-4">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[branch](b1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b1-|delta1](add1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add1](G1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(g1)+(-0.6,0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (add1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (g1) |- (W1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (add1.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv1.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b1|-W1.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org3c8c032" class="figure">
|
||||||
|
<p><img src="figs/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 4: </span>Sensor Model including dynamical uncertainty (<a href="./figs/sensor_model_uncertainty.png">png</a>, <a href="./figs/sensor_model_uncertainty.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org201b812" class="outline-2">
|
||||||
|
<h2 id="org201b812"><span class="section-number-2">5</span> Sensor fusion architecture with sensor dynamics uncertainty</h2>
|
||||||
|
<div class="outline-text-2" id="text-5">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[branch, above right=0.8 and 0.2 of x](b1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[branch, below right=0.8 and 0.2 of x](b2){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b2](W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W2](delta2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b1-|delta1](add1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b2-|delta2](add2){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add1](G1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add2](G2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G2](Ginv2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.35 of Ginv1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.35 of Ginv2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=6.8 of x](add){};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add2.east) -- (G2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (b1) |- (W1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (b2) |- (W2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (delta2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (add1.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta2.east) -| (add2.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G2.east) -- (Ginv2.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv1.east) -- (H1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv2.east) -- (H2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H1.east) -| (add.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2.east) -| (add.south);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(H2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(delta1.north east-|add.east)+(0.2, 0.3)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b1|-W1.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b2|-W2.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G2.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor2) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org4ef6676" class="figure">
|
||||||
|
<p><img src="figs/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 5: </span>Sensor fusion architecture with sensor dynamics uncertainty (<a href="./figs/sensor_fusion_arch_uncertainty.png">png</a>, <a href="./figs/sensor_fusion_arch_uncertainty.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org295dc2a" class="outline-2">
|
||||||
|
<h2 id="org295dc2a"><span class="section-number-2">6</span> Uncertainty set of the super sensor dynamics</h2>
|
||||||
|
<div class="outline-text-2" id="text-6">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(4, 0)}]
|
||||||
|
|
||||||
|
<span class="org-comment">% Uncertainty Circle</span>
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
|
||||||
|
<span class="org-font-latex-sedate">\path</span>[draw, dotted] (0, 0) circle [radius=1.0];
|
||||||
|
<span class="org-font-latex-sedate">\path</span>[draw, dashed] (135:1.0) circle [radius=0.8];
|
||||||
|
|
||||||
|
<span class="org-comment">% Center of Circle</span>
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below] at (0, 0){<span class="org-font-latex-math">$1$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<->, dashed] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<->, dashed] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(90:0.8);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[] (l1) at (2, 1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1|$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->, dashed, out=-90, in=0] (l1.south) to (r1);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[] (l2) at (-2.5, 1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2|$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->, dashed, out=0, in=-180] (l2.east) to (r2);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<->, dashed] (0, 0) -- coordinate[near end](r3) ++(200:1.8);
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[] (l3) at (-2.5, -1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1| + |W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2|$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->, dashed, out=90, in=-90] (l3.north) to (r3);
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||||
|
|
||||||
|
<span class="org-comment">% Real and Imaginary Axis</span>
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (-0.5, 0) -- (7.0, 0) node[below left]{Re};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (0, -1.7) -- (0, 1.7) node[below left]{Im};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[dashed] (0, 0) -- (tangent cs:node=c,point={(0, 0)},solution=2);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[dashed] (1, 0) arc (0:28:1) node[midway, right]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"> </span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\phi</span></span><span class="org-font-latex-math">$</span>};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgb4e2baf" class="figure">
|
||||||
|
<p><img src="figs/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 6: </span>Uncertainty region of the super sensor dynamics in the complex plane (solid circle), of the sensor 1 (dotted circle) and of the sensor 2 (dashed circle) (<a href="./figs/uncertainty_set_super_sensor.png">png</a>, <a href="./figs/uncertainty_set_super_sensor.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orgff8ec60" class="outline-2">
|
||||||
|
<h2 id="orgff8ec60"><span class="section-number-2">7</span> Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</h2>
|
||||||
|
<div class="outline-text-2" id="text-7">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block={4.2cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\infty</span></span><span class="org-font-latex-math">}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.5!(P.north west) + (-0.7, 0)$</span>);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.8!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.5!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.2!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output1] (W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output2] (W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W1] (Wu1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W2] (Wu2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of Wu1] (sub) {};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2.west) -| (<span class="org-font-latex-math">$(inputu)+(0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$u$</span>} -- (Wu2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub.east) -- (Wu1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(sub.west)+(-0.6, 0)$</span>) node[branch]{} |- (<span class="org-font-latex-math">$(outputv)+(-0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$v$</span>} |- (H2.east);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Wu1.east) -- (W1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Wu2.east) -- (W2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (output1)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (output2)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgcfbd978" class="figure">
|
||||||
|
<p><img src="figs/h_infinity_robust_fusion.png" alt="h_infinity_robust_fusion.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 7: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters (<a href="./figs/h_infinity_robust_fusion.png">png</a>, <a href="./figs/h_infinity_robust_fusion.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org77a9624" class="outline-2">
|
||||||
|
<h2 id="org77a9624"><span class="section-number-2">8</span> Sensor Model - Noise and Uncertainty</h2>
|
||||||
|
<div class="outline-text-2" id="text-8">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb](add1){};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[branch, right=0.4 of add1](b1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b1-|delta1](addu){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of addu](G1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (add1.west) -- ++(-1.0, 0) node[above right]{<span class="org-font-latex-math">$x$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (addu.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (b1) |- (W1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (addu.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addu.east) -- (G1.west);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N1.south) -- (add1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>} -- ++(0, 0.4);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv1.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n1.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1.north east) {Sensor};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org121d2ed" class="figure">
|
||||||
|
<p><img src="figs/sensor_model_noise_uncertainty.png" alt="sensor_model_noise_uncertainty.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 8: </span>Sensor Model (<a href="./figs/sensor_model_noise_uncertainty.png">png</a>, <a href="./figs/sensor_model_noise_uncertainty.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org194f17b" class="outline-2">
|
||||||
|
<h2 id="org194f17b"><span class="section-number-2">9</span> Sensor fusion architecture with sensor dynamics uncertainty and noise</h2>
|
||||||
|
<div class="outline-text-2" id="text-9">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, above right=1.0 and 0.6 of x](addn1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, below right=1.0 and 0.6 of x](addn2){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=2.6 of addn1](add1){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=2.6 of addn2](add2){};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above left=0.2 and 0 of add1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above left=0.2 and 0 of add2](delta2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of delta1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of delta2](W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of addn1](N1) {<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of addn2](N2) {<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of add1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of add2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=5.8 of x](add){};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (addn1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (addn2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(addn1-|W1.west)+(-0.3, 0)$</span>)node[branch](S1){} |- (W1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(addn2-|W2.west)+(-0.3, 0)$</span>)node[branch](S2){} |- (W2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (delta2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (add1.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta2.east) -| (add2.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addn1.east) -- (add1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addn2.east) -- (add2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (H1.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add2.east) -- (H2.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>} -- ++(0, 0.4);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (N2.north)node[above left](n2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>} -- ++(0, 0.4);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N1.south) -- (addn1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N2.south) -- (addn2.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H1.east) -| (add.north);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2.east) -| (add.south);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(H2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(n1.north east-|add.east)+(0.2, 0.3)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(n1.north west) (<span class="org-font-latex-math">$(add1.south -| add1.east) + (0.1, -0.1)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[fit={(n2.north west) (<span class="org-font-latex-math">$(add2.south -| add2.east) + (0.1, -0.1)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor2) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org257652d" class="figure">
|
||||||
|
<p><img src="figs/sensor_fusion_arch_full.png" alt="sensor_fusion_arch_full.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 9: </span>Sensor fusion architecture with sensor dynamics uncertainty (<a href="./figs/sensor_fusion_arch_full.png">png</a>, <a href="./figs/sensor_fusion_arch_full.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org92adb06" class="outline-2">
|
||||||
|
<h2 id="org92adb06"><span class="section-number-2">10</span> Mixed H2/H-Infinity Synthesis</h2>
|
||||||
|
<div class="outline-text-2" id="text-10">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block={4.2cm}{4.0cm}, fill=black!20!white, dashed] (P) {};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2/</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\infty</span></span><span class="org-font-latex-math">}$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.85!(P.north west) + (-0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.25!(P.north west) + (-0.7, 0)$</span>);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.85!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.65!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output3) at (<span class="org-font-latex-math">$(P.south east)!0.45!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output4) at (<span class="org-font-latex-math">$(P.south east)!0.25!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.10!(P.north east) + ( 0.7, 0)$</span>);
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output1] (W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output2] (W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W1] (Wu1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W2] (Wu2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=0.4 of Wu1] (sub1) {};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output3] (N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output4] (N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=0.6 of N1] (sub2) {};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2.west) -| (<span class="org-font-latex-math">$(inputu)+(0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$u$</span>} -- (N2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputu-|sub1) node[branch]{} -- (sub1.south);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputu-|sub2) node[branch]{} -- (sub2.south);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub1|-W2) node[branch]{} -- (Wu2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub1.east) -- (Wu1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub2.east) -- (N1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(sub1.west)+(-0.6, 0)$</span>) node[branch](w_branch){} |- (<span class="org-font-latex-math">$(outputv)+(-0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$v$</span>} |- (H2.east);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (w_branch|-sub2) node[branch]{} -- (sub2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Wu1.east) -- (W1.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (Wu2.east) -- (W2.west);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (output1)node[above left](z1){<span class="org-font-latex-math">$z_1$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (output2)node[above left](z2){<span class="org-font-latex-math">$z_2$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N1.east) -- (output3)node[above left](z3){<span class="org-font-latex-math">$z_3$</span>};
|
||||||
|
<span class="org-font-latex-sedate">\draw</span>[->] (N2.east) -- (output4)node[above left](z4){<span class="org-font-latex-math">$z_4$</span>};
|
||||||
|
|
||||||
|
|
||||||
|
<span class="org-font-latex-sedate">\draw</span> [decoration={brace, raise=5pt}, decorate] (z1.north east) -- node[right=6pt]{<span class="org-font-latex-math">$z_{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}_</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\infty</span></span><span class="org-font-latex-math">}$</span>} (z2.south east);
|
||||||
|
<span class="org-font-latex-sedate">\draw</span> [decoration={brace, raise=5pt}, decorate] (z3.north east) -- node[right=6pt]{<span class="org-font-latex-math">$z_{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}_2}$</span>} (z4.south east);
|
||||||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org7166204" class="figure">
|
||||||
|
<p><img src="figs/mixed_h2_hinf_synthesis.png" alt="mixed_h2_hinf_synthesis.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 10: </span>Mixed H2/H-Infinity Synthesis (<a href="./figs/mixed_h2_hinf_synthesis.png">png</a>, <a href="./figs/mixed_h2_hinf_synthesis.pdf">pdf</a>).</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="postamble" class="status">
|
||||||
|
<p class="author">Author: Thomas Dehaeze</p>
|
||||||
|
<p class="date">Created: 2020-11-12 jeu. 10:42</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|