Fast Obstacle Avoidance Based on Real-Time Sensing
Extracted source text · arXiv 2205.04928
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\documentclass[10 pt, journal, twoside]{IEEEtran}
% \documentclass[letterpaper, 10pt]{IEEEtran}
\documentclass[letterpaper, 10 pt, journal, twoside]{IEEEtran}
\IEEEoverridecommandlockouts % This command is only needed if
% \overrideIEEEmargins % Needed to meet printer requirements. % Needed to meet printer requirements.
% See the \addtolength command later in the file to balance the column lengths
% on the last page of the document
% The following packages can be found on http:\\www.ctan.org
\usepackage{graphics} % for pdf, bitmapped graphics files
\usepackage{epsfig} % for postscript graphics files
\usepackage{mathptmx} % assumes new font selection scheme installed
\usepackage{times} % assumes new font selection scheme installed
\usepackage{amsmath} % assumes amsmath package installed
\usepackage{amssymb} % assumes amsmath package installed
\usepackage{subcaption} % allows subfigure
\usepackage{listings}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{siunitx}
\usepackage[normalem]{ulem}
\usepackage{xcolor}
\usepackage{soul}
\usepackage{hyperref}
% Tight spacing
\setlength\abovedisplayskip{2.0pt}
\setlength\belowdisplayskip{2.0pt}
\pagestyle{empty} % Remove header number
\usepackage[font=small, labelfont=bf, belowskip=-2pt]{caption} % small fontsize in caption
% \addtolength{\textheight}{0.8cm} % cause of largermargin
% External bibliography --- For submission include citation in file
\usepackage[
backend=biber,
style=ieee,
sorting=none
]{biblatex}
\addbibresource{bibliography_avoidance.bib}
% \addbibresource{mybibliography.bib}
\title{
%Controlling Fast and Slow: \\
%Dynamical System Based Obstacle Avoidance \\
%Using Raw and Interpreted Sensor Data
Fast Obstacle Avoidance \\
Based on Real-Time Sensing
}
\author{Lukas Huber$^{1}$
% $\cdot$ David Gonon$^{1}$ $\cdot$ Diego Paez$^{2}$ \\
$\cdot$ Jean-Jacques Slotine $^2$ $\cdot$ Aude Billard $^1$ \vspace{-2.3ex}% stops a space
\thanks{*This work was funded in part by the EU ERC grant SAHR.}
\thanks{$^{1}$ LASA Laboratory, Swiss Federal School of Technology in Lausanne - EPFL, Switzerland. \tt $\{$lukas.huber;aude.billard$\}$@epfl.ch }
\thanks{$^{3}$ Nonlinear Systems Laboratory, Massachusetts Institute of Technology, USA. \tt jjs@mit.edu} %\tt \small
}
\begin{document}
\newcommand{\vect}[1]{\mathbf{#1}}
\newcommand{\matr}[1]{\mathbf{#1}}
\newcommand{\dotprod}[2]{\langle {#1}, \, {#2} \rangle}
\newcommand{\normdotprod}[2]{\frac{\langle #1, \, #2 \rangle}{\| #1 \| \, \| #2 \|}}
% Edited
% \newcommand{\editcolor}[1]{\color{black}{#1} \color{black}}
\newcommand{\editcolor}[1]{\color{blue}{#1} \color{black}}
\newcommand{\tempcolor}[1]{\color{violet}{#1} \color{black}}
\maketitle
\thispagestyle{empty} % Remove header number
\begin{abstract}
Humans are remarkable at navigating and moving through dynamic and complex spaces, such as crowded streets. For robots to do the same, it is crucial that they are endowed with highly reactive obstacle avoidance robust to partial and poor sensing.
We address the issue of enabling obstacle avoidance based on sparse and asynchronous perception.
The proposed control scheme combines a high-level input command provided by either a planner or a human operator with fast reactive obstacle avoidance.
The sampling-based sensor data can be combined with an analytical reconstruction of the obstacles for real-time collision avoidance.
We can ensure that the agent does not get stuck when a feasible path exists between obstacles.
The algorithm was evaluated experimentally on static laser data from cluttered, indoor office environments. Additionally, it was used in a shared control mode in a dynamic and complex outdoor environment in the center of Lausanne.
The proposed control scheme successfully avoided collisions in both scenarios.
During the experiments, the controller on the onboard computer took 1 millisecond to evaluate over 30000 data points.
%and to converge to the goal.
%For someone in a wheelchair, this task is much more challenging because the new geometry moved through the space.
%The nominal control input is interpreted as a dynamical system, and it is further modulated to avoid collisions. The method is based on existing modulation methods but adapted to treat sample-based sensor data and analytical obstacle descriptions in real-time. \\
%Compared to a similar dynamical system based algorithm, the novel method can directly be applied to raw distance sensor data.
% Additional analytical knowledge of environment information improves the estimate and increases converging behavior.
%The new control scheme allows for avoiding dynamic obstacles, such as people moving in a crowd, which can be combined with static sensor data. We could prove collision avoidance and the absence of local minima in free space.
%\\
% ... # of pedestrians - density of crowd - # hours of tests
\end{abstract}
% \begin{IEEEkeywords}
% Collision Avoidance; Autonomous Agents; Dynamical Systems; Crowd Navigation; Mobile Robots
% \end{IEEEkeywords}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction} \label{sec:introduction}
% Inspired by humans, algorithms are decoupling perception and control to make \textit{more intelligent} decisions.
% Sensors which are easy to interpret are often not viable outside of research because of too high costs (e.g., Lidars). On the other hand, cameras are cheap and readily available, but they are complex (and time-consuming) as they rely on deep neural networks.
% High-level path planning can be performed by a fully autonomous navigation algorithm or a (remote) operator.
%This paper focuses on reactive avoidance algorithms with real sensor data.
% This paper introduces a dynamical system based control algorithm. While simultaneously being able to react with low latency to sensor data.
% An operator of a robot, for example, the user of a semi-autonomous wheelchair or someone controlling a robotic arm, has to navigate towards their goal and adapt to avoid obstacles in real-time. This is often a challenging task since the operator has to be aware of the robot's geometry in space. \\
% A smart, assistive controller can help the operator in a shared control framework.
% It has to be defined to support but not restrict the nominal desired motion. Furthermore, a short computation time is crucial to react to the changes in human intention.
% Dynamical Systems (DS) have proven ideal to address real-time obstacle avoidance since they.
% \subsection{State of The Art}
%By taking insight from autonomous robots, the field of intelligent wheelchairs has significantly advanced in the past two decades: innovations in hardware, autonomous navigation algorithms, as well as shared control schemes \cite{leaman2017comprehensive, abbink2012haptic, dragan2013policy}.
% Many shared controllers for walking aids and wheelchairs focus on guiding the user in global environments but do not provide a convergence or local collision avoidance \cite{yu2003adaptive, jiao2018path}.
Local avoidance algorithms have to take into account new sensory information in real-time and adapt the global path to ensure safe navigation in the environment.
One approach to elevate distance sensor data is the Vector Field Histograms (VFH) method, which has been applied on mobile robots to navigate autonomously \cite{borenstein1991vector}. VFH has the advantage of taking measurement uncertainties into account. Furthermore, the short evaluation time of VFH makes it applicable to shared control on wheelchairs \cite{levine1999navchair, li2011dynamic}. However, VFH has the shortcoming of the control velocity being zero in narrow pathways, for example, in front of (narrow) doorways.
An alternative set of approaches are sampling-based methos. They have been used for fast self-collision avoidance of robots in joint space \cite{mirrazavi2018unified, koptev2021real}. The collision-free environment is taught using the sampled data. As the models require training before execution, the methods cannot adapt to fast-changing environments.
Conversely, the Velocity Obstacle (VO) approach is designed for dynamic environments. VO takes into account the motion of the obstacles and their potential future positions to calculate a collision-free motion \cite{fiorini1998motion, wilkie2009generalized, kufoalor2018proactive}. VO has been successfully used in shared control on wheelchairs \cite{prassler2001robotics}. However, VO is prone to local minima, which predominantly becomes apparent in static, cluttered environments.
Recently, real-time optimization algorithms have become feasible for implementing onboard robots thanks to the improved computational performance of hardware, for example, model predictive control \cite{bardaro2018mpc} or quadratic programming \cite{gonon2021reactive}. However, most optimization problems cannot guarantee convergence to a feasible solution.
Recent work on Control Barrier Functions (CBFs) can ensure a feasible solution by softening some constraints \cite{ames2014control} or using slack variables \cite{reis2020control}. Nevertheless, these CBFs require a Lyapunov candidate function to reach the goal position and cannot be applied to dynamic environments.
Conversely, artificial potential fields create a closed-form, repulsive field to avoid collision with obstacles \cite{khatib1986real}. They can be elevated with navigation functions to ensure convergence to the desired goal around concave obstacles \cite{rimon1992exact, zhang2019distributed}.
Recent work extends the navigation function to discovering obstacles' positions at runtime, but the approach relies on prior knowledge about the obstacles' shapes \cite{loizou2022mobile}.
However, navigation functions are difficult to tune around dynamic obstacles. Moreover, no approach exists that combines the method with high-level control inputs, as is the case for shared control.
Similarly, \cite{feder1997real} creates a dynamical system based algorithm inspired by harmonic potential fields, which can ensure collision-free motion in dynamic environments.
This has been extended to ensure convergence around concave obstacles by taking a (linear) velocity towards a goal and guiding it around all obstacles \cite{khansari2012dynamical, huber2019avoidance, huber2021avoiding}.
However, the approach requires the analytical description of the obstacles, and interpreting the sensor data onboard a robot often introduces a significant delay \cite{huber2021avoiding}.
\subsection{Contribution}
% Control scheme.
We propose a fast, dynamical system-based control algorithm based on \cite{huber2019avoidance, huber2021avoiding} with the following new contributions:
%The method redirects an nominal velocity to ensure collision avoidance while providing the following advantages:
% The method ensures a smooth control velocity across space (and hence time) in smooth input.
% With the framework proposed in this paper, we make the following contributions:
% This paper extends these modulation-based algorithms to redirect the human operator's input in a dynamical system-based manner. The computational time of the algorithm is decreased by applying the avoidance directly to the sensor data. A dynamic switching method allows to include analytic obstacle description when available additionally.
% The presented method has the following advantages:
\begin{itemize}
\item \textbf{Low computational complexity} ensures fast evaluation in a cluttered environment, such as crowds (see Sec.~\ref{sec:non_circular}).
\item \textbf{Obstacle avoidance using sampled data} makes the method directly applicable to Lidar data (see Sec.~\ref{sec:single_modulation}).
\item \textbf{Unifying disparate obstacle descriptions} such as sample-based sensor data and (delayed) analytic reconstruction of obstacles is enabled through asynchronous evaluation and dynamic weighting (see Sec.~\ref{sec:mixed_environments}).
%Our approach is based on closed-form dynamical system functions applicable to sensor data.
%It can ensure the absence of local minima in between obstacles and has been applied to Lidar data
% > state of the art: show as a drawback
% \item \textbf{Modulation on raw sensor data:}
%Closed form navigation function based on dynamical systems for real-time obstacle avoidance
% Raw distance sensor (Lidar) data
%the proposed approach can directly be applied to raw (distance) sensor data. The reduction of the modulation algorithm to
% (see Sec.~\ref{sec:single_modulation}).
% The computational complexity grows linearly with the number of dimensions as opposed to almost cubically in comparable dynamical system based approaches
%in analytic obstacle environments:}
% Local convergence with many obstacles is ensured at a low computational cost.
% We extend the approach to the analytic description of \textit{star shaped} obstacles.
% In coupling with a linear dynamical system, the existence of a unique minimum at the attractor could be proven.
%With a single modulation of the robot's velocity, the absence of local minima can be ensured in \textit{star shaped} environments
%\item \textbf{Avoidance in dynamic environments through asynchronous evaluation of sensor data:}
% We couple rapid detection through sampled-based sensor data with a delayed analytic reconstruction of obstacles. The coupling is performed through asynchronous evaluation and dynamic weighting. We managed to navigate in dynamic environments with partially known obstacles (see Sec.~\ref{sec:mixed_environments}).
% We couple discrete samples obtained in real-time with analytic obstacle description through a weighted environment.
% We propose a framework to couple discrete and analytic obstacle descriptions. The asynchronicity of data is taken into account by weighted evaluation.
%\item \textbf{Correcting Behavior:}
%The algorithm takes the nominal control velocity, i.e., the input of a human operator or a path planning algorithm, and modulates it to ensure collision avoidance. While the algorithm needs to ensure safe and collision-free navigation, it also allows approaching obstacles.
% \item \textbf{Low latency:}
% The inner loop of the algorithm is computationally cheap and can run fast. The low latency can be obtained by working directly with raw laser scan data.
% \item \textbf{Continuous improvement:}
% Further evaluation of the sensor data leads to a better understanding of the environment but higher latency. The proposed approach can fuse new information in real-time.
\end{itemize}
% The method has been implemented and tested in a semi-autonomous wheelchair in a static indoor environment and an outdoor crowd.
% The algorithm was able to support the operator to avoid any collision.
% Crowd critical tasks require additional
% TALK of Roy Nicholas -> hard to learn (Are there citations to underly this)
\section{Preliminaries}
The state of the robotics system $\xi \in \mathbb{R}^d$ refers to the position of a $d$-dimensional state throughout this work.
The evolution of the position is governed by a dynamical system
\begin{equation}
\dot \xi = \vect f(t, \xi) \quad \text{with} \quad \vect f(t, \xi) : (\mathbb{R}_+, \mathbb{R}^d) \rightarrow \mathbb{R}^d
\end{equation}
We further introduce a linear (autonomous) dynamical system which is asymptotically stable at the attractor position $\xi^a$:
\begin{equation}
\vect f^l(\xi) = -(\xi - \xi^a)
\qquad \text{with} \quad
\xi^ \in \mathbb{R}^d \label{eq:linear_dynamics}
\end{equation} % A linear (autonomous
\subsection{Obstacles and Gamma Function} \label{sec:gamma_function}
As in \cite{khansari2012dynamical}, a continuous distance function $\Gamma(\xi): \mathbb{R}^d \setminus \mathcal{X}^i \mapsto \mathbb{R}_{\geq 1}$ is defined around each obstacle, and divides the space into three regions:
\begin{align}
&\text{Exterior points:}& \;\; & \mathcal{X}^e = \{\xi \in \mathbb{R}^d: \Gamma(\xi) > 1 \} \nonumber \\ %\label{eq:levelFunc3} \\
&\text{Margin exterior points:} & \;\; & \mathcal{X}^g = \{\xi - (R + D^{\mathrm{gap}}) \vect r(\xi) \in \mathcal{X}^e \} \nonumber \\
&\text{Boundary points:}& \;\; & \mathcal{X}^b = \{\xi \in \mathbb{R}^d: \Gamma(\xi) = 1 \} \label{eq:gamma_function} \\
&\text{Interior points:}& \;\; & \mathcal{X}^i = \{ \xi \in \mathbb{R}^d \setminus ( \mathcal{X}^e \cup \mathcal{X}^b ) \} \nonumber
\end{align}
where $D^{\mathrm{gap}} \in \mathbb{R}_{>0}$ is the margin distance, and $R \in \mathbb{R}_{>0}$ the robot radius.
By construction $\Gamma(\cdot)$ increases monotonically ($C^1$-smoothness) with increasing distance from the center $\xi^c \in \mathbb{R}^d$.
The obstacle avoidance algorithm \cite{huber2019avoidance} is defined for \textit{star-shapes}, i.e., a shape where there exists a reference point $\xi^r \in \mathbb{R}^d$ within the obstacle, such that any surface point can be seen:
\begin{equation}
\exists \, \xi^r \in \mathcal{X}^i
% :
\quad : \;\;
\dotprod{\vect r(\xi)}{\vect n(\xi)} > 0 \;\;\;\; \forall \xi \in \mathcal{X}^e \label{eq:star_shape}
\end{equation}
where $\vect r(\xi) = (\xi - \xi^r)/\| \xi - \xi^r\|$ with $\vect r(\xi) \in \mathbb{R}^d, \; \| \vect r(\xi) \| = 1$ is denoted as the normalized reference direction.
An environment made up of \textit{star-shaped} obstacles is referred to as a \textit{star world}.
\subsection{Obstacle Avoidance through Modulation}
Assuming the agents nominal velocity command of $\vect v^N \in \mathbb{R}^d$, which restuls from a user's input or a high-level planner evaluated at position $\xi$.
% The agent's motion is controlled through a first-order time-invariant dynamical systems of the form: $ \dot{\xi} =\vect f^l(\xi)$. DIMENSIONS, the definition of smoothness off.
% -> That is now introduced earlier.
As in \cite{huber2019avoidance}, the collision free velocity around a single obstacle is obtained by applying a dynamic modulation matrix $\matr M\in \mathbb{R}^{d \times d}$:
\begin{equation}
\dot{\xi} = \matr{M}(\xi, \vect v^N) \vect v^N
\; \text{,} \quad
\matr{M} ( \xi, \vect v^N) = \matr{E}(\xi) \matr D(\xi, \vect v^N) \matr{E}(\xi)^{-1}
\label{eq:modulated_ds}
\end{equation}
The basis matrix is defined as:
\begin{equation}
\matr {E} (\xi) =
\left[ {\vect r }(\xi) \;\; \vect e_1(\xi) \;\; .. \;\; \vect{e}_{d-1}(\xi) \right]
\label{eq:basisMatr}
\end{equation}
where $\vect e_{(\cdot)}$ form an orthonormal basis of the tangent plane.\footnote{For a spherical obstacle, decomposition matrix $\matr E$ is orthonormal, hence $\matr{E}^{-1} = \matr{E}^{T}$.}
The diagonal eigenvalue matrix $\matr D(\xi)$ defines the stretching in each direction.
%, as can be seen in Figure~\ref{fig:velocity_modulation}.
% The diagonal eigenvalue matrix is given as:
% \begin{equation}
% \matr D(\xi, \vect v) =
% \textbf{diag}
% \left(
% \lambda^r(\xi, \vect v) ,
% \lambda^e(\xi) , \,
% \hdots ,
% \lambda^e( \xi)
% \right)
% \label{eq:eigVecMatr}
% \end{equation}
% The eigenvalues $\lambda^{(\cdot)} \in \mathbb{R}$ are further discussed in Section~\ref{sec:eigenvalues}. Figure~\ref{fig:velocity_modulation} shows the effect of the modulation around a circular obstacle.
% \begin{figure}[t]
% \centering
% \includegraphics[width=0.8\columnwidth]{figures/obstacle_avoidance_basic_vectors.png}
% \caption{The modulation of the dynamical system pushes the agent guides the agent around the obstacle. The nominal velocity $\vect v^N$ is compressed along the reference direction $\vect r(\xi)$ (red arrow), but stretched along the tangent direction $\vect e(\xi)$ (green arrow) with corresponding eigenvalues $\lambda_{(\cdot)}$ to obtain the collision-free velocity $\dot \xi$.}
% \label{fig:velocity_modulation}
% \end{figure}
% \subsubsection{Dynamic Obstacles}
% In presence of moving obstacles, the modulation is applied in the relative reference frame of the obstacles:
% \begin{equation}
% \dot{\vect \xi} = { \matr{M}(\xi, \vect v^N)} \left( \vect v^N - \dot{\tilde \xi}^{\mathrm{tot}} \right) + \dot{\tilde \xi}^{\mathrm{tot}}
% \quad \text{with} \;\;
% \dot{\tilde \xi}^{\mathrm{tot}} = \sum_{o=1}^{N_o} w^{{l}}_o \dot{\tilde \xi}_o
% \label{eq:dynamic_environments}
% \end{equation}
%The local relative velocity is summed up over all obstacles
%\begin{equation}
% \dot{\tilde \xi}^{\mathrm{tot}} = \sum_{o=1}^{N_o} w^{{l}}_o \dot{\tilde \xi}_o
% \label{eq:relative_obstacle_velocity}
%\end{equation}
%where $\dot{\tilde \xi}_o \in \mathbb{R}^d$ is the relative velocity of the obstacle $i$, see \cite{huber2021avoiding} for details.
%\section{Convergence in Star Worlds} \label{sec:non_circular}
\section{Fast Obstacle Avoidance} \label{sec:non_circular}
%An analytical obstacle description based on the distance function introduced in Eq.~(\ref{eq:gamma_function}) has several advantages.
%Firstly, a single reference direction is sufficient to describe the obstacle.
%Additionally, using the knowledge of the shape of the obstacle when constructing the modulation matrix as defined in Eq.~(\ref{eq:modulated_ds}) can ensure local convergence \cite{huber2019avoidance}.
When navigating in cluttered environments, such as dense crowds, the algorithm described \cite{huber2021avoiding}, requires applying the modulation for all obstacles at each time step. This results in a high computational cost which increases linearly with the number of obstacles.
% However, more obstacles lead to higher computational costs. As a result, similar avoidance approaches limit the maximum number of obstacles to ensure evaluation at runtime \cite{huber2021avoiding}.
We propose a computationally cheaper algorithm by creating a single \textit{virtual} obstacle that encapsulates all obstacles. The modulation is then only applied to these obstacles while ensuring collision avoidance for all obstacles. The virtual obstacle has a single modulation matrix $\matr M(\xi)$ with corresponding decomposition matrix $\matr E(\xi)$ and diagonal stretching matrix $\matr D(\xi)$
\subsection{Single Modulation Obstacle Avoidance} \label{sec:single_modulation_avoidance}
% In scenarios where the analytic description of the obstacle is known, may it be from the existing map or an obstacle detector, the additional knowledge can be used to create the \textit{virtual} obstacle.
% If the obstacles are known, for example, walls from an existing map or a real-time crowd detector, their analytic description can be used with the single-modulation obstacle avoidance, too.
To evaluate the decomposition matrix $\matr E(\xi)$ as defined in (\ref{eq:basisMatr}), we use the normalized reference direction $\vect{r}^o(\xi) = \hat{\vect r}^o(\xi) / \| \hat{\vect r}^o(\xi) \| $, and the tangent directions $\vect e_i^o(\xi)$ form the orthonormal basis to $\vect{n}^o(\xi)$. The vectors are further described in the following subsections.
\subsubsection{Averaged Reference Direction}
The averaged reference direction $\hat{\vect{r}}^o(\xi)$ is evaluated as the weighted sum:
\begin{equation}
\hat{\vect{r}}^o(\xi) = \sum_i w_i^o(\xi) \vect r_i^o(\xi)
\quad i = 1 .. N^{\mathrm{obs}}
\label{eq:reference_summing}
\end{equation}
where the reference directions $\vect{r}^o_i(\xi)$ are evaluated for each obstacle as described in (\ref{eq:star_shape}).
Additionally, the influence weights $w_i^o(\xi)$ are given by
\begin{multline}
w^o_i(\xi) =
\begin{cases}
\hat w^o_i(\xi) / \hat w^{\mathrm{sum}} \quad & \text{if} \;\; \hat w^{\mathrm{sum}} > 1 \\
{w}^o_i(\xi) & \text{otherwise}
\end{cases}
\, , \;
w^{\mathrm{sum}} = \sum_i \hat w_i^o(\xi)
\label{eq:weight_sum_obstacle}
\end{multline}
which is a function of the distance Gamma, see (\ref{eq:gamma_function}), and evaluated for each obstacle $i$ as follows:
\begin{equation}
\hat{w}^o_i(\xi) = \left( \frac{D^{\mathrm{scal}}}{D^o_i(\xi)} \right)^s
\qquad \text{with} \quad
D_i^o (\xi) = \Gamma_i(\xi) - 1 % \label{eq:obstalce_distance}
\end{equation}
% as a function of the $\Gamma$-value as given to
%where $\Gamma_i(\xi)$ is described by (\ref{eq:gamma_function}).
where $s \in \mathbb{R}_{>0}$ is the scaling-potential and $D^{\mathrm{scal}} \in \mathbb{R}_{>0}$. We choose $s = 2$ and $D^{\mathrm{scal}}= 1$.
% The reference vector $\hat{\vect r}^o(\xi) \in \mathbb{R}^d$ and the modulation matrix $\matr M(\xi)$ are obtained analogously to Sec.~\ref{sec:single_modulation}.
% An example of dynamical system resulting from this combined obstacle avoidance around multiple spheres can be observed in Fig.~\ref{fig:multi_circle_comparison}.
% \tempcolor{TODO: introduce scaling weights depending on obstacle size}
%% TODO: (elaborate further): The distance function is evaluated as:
%% \begin{equation}
%% d_i^o (\xi) = \| \xi - \xi^c_i \| - \| \xi^s - \xi^r_i \| \qquad i \in [1 ... N^{\mathrm{obs}}]
%% \label{eq:obstalce_distance}
%% \end{equation}
%% furthermore, we choose the scaling weight as the obstacle dependent average radius:
%% $ d^{\mathrm{scal}}_i = \bar{R}^{obs}_i$ and the weight power $d = D -1 $, where $D$ is the dimensions of the space. The subtraction of 1 follows that the obtained laser data is from the surface of an obstacle only (not the volume).
%% }
%% \begin{figure}[t]
%% \centering
%% \includegraphics[width=1.0\columnwidth]{figures/multi_circle_comparison.png}
%% \caption{The reference direction (left) and the obtained vector field (right) around a circular obstacle environment (brown) with corresponding reference point (black star). A single modulation is sufficient to guarantee a collision free path around multiple obstacles.}
%% \label{fig:multi_circle_comparison}
%% \end{figure}
\subsubsection{Summing of the Normal Direction} \label{sec:normal_offset}
% A general obstacle does not have a parallel reference direction $\vect r(\xi)$ and normal direction $\vect n(\xi)$. For this reason, we introduce a method to average the normal over all $N^{\mathrm{obs}}$ obstacles.
%During this process, the decomposition matrix $\matr{E}(\xi)$ needs to have full rank in order to be invertible. Note, this is equivalent to constraining the \textit{virtual} obstacle to be \textit{star shaped}, similar to what was done in \cite{huber2019avoidance}.
% So far all obstacles were circular, hence the normal direction $\vect{n}(\xi)$ is equal to the reference direction $\vect{r}(\xi)$. But for many obstacles a circular approximation does not fit well the ideal shape, e.g., a table or a car. \\
% Let us introduce a method to average the normal direction $\vect n(\xi)$ to account for non-circular obstacles. The tangent vectors $\vect{e}_i$ in (\ref{eq:basisMatr}) are evaluated to form the orthonormal basis to the normal direction. Moreover, the decomposition matrix $\matr{E}(\xi)$ needs to have full rank in order to be invertible. This property holds if $\langle \vect{n}(\xi), \vect{r}(\xi) \rangle > 0$.
% Note, this is equivalent to constraining the (virtual) obstacle to be \textit{star shaped}, similar to what was done in \cite{huber2019avoidance}.
% But the method presented in this paper can handle similar environments as \cite{huber2019avoidance, huber2021avoiding}. However, it comes with two advantages 1) obstacle avoidance is computationally cheaper, as it only requires a single modulation matrix, and 2) analytic obstacles can be combined with raw sensor data by using the same descriptive framework (see Sec.~\ref{sec:mixed_environments} for more details).
First, the normal offset is evaluated for all obstacles
\begin{equation}
%\bar{\vect n}^{\Delta}(\xi) = \sum^{N^{\mathrm{obs}}}_{i=1} w_i^o(\xi) \vect n^{\Delta}_i(\xi)
{\vect n}^{\Delta}(\xi) = \sum^{N^{\mathrm{obs}}}_{i=1} w_i^o(\xi) \left( \vect{n}_i(\xi) - \vect{r}^o_i(\xi) \right)
\end{equation}
where $N^{\mathrm{obs}} \in \mathbb{N}_{\geq 0}$ is the number of obstacles.
%The normal offsets are given as:
%\begin{equation}
% \vect{n}^\Delta_i (\xi) = \vect{n}_i(\xi) - \vect{r}_i(\xi)
% \quad i \in 1 .. N^{\mathrm{obs}}
% \end{equation}
Finally, the weighted normal vector is obtained as:
\begin{gather}
%{\vect{n}}(\xi) = \frac{\hat{\vect{n}}(\xi)}{\| \hat{\vect{n}}(\xi)\|}
{\vect{n}}(\xi) = \hat{\vect{n}}(\xi) / \| \hat{\vect{n}}(\xi)\|
\quad \text{with} \;\;
\hat{\vect{n}}(\xi) = c^n \vect{r}(\xi) + {\vect n}^{\Delta}(\xi) \label{eq:normal_vector} \\
c^n = \begin{cases}
1 & \text{if} \;\; p^{nr} < \frac{\sqrt{2}}{2} \\
\sqrt{2} p^{nr}& \text{otherwise}
\end{cases}
\;\; \text{with} \; p^{nr} = (-1)
\frac{\dotprod{\vect{r}^o(\xi)}{ \vect n^{\Delta}(\xi) } }{\| \vect n^{\Delta}(\xi) \|} \nonumber
\end{gather}
% note that in the case of $\|\vect{r}(\xi) \| = 0$ the modulation defined in Sec.~\ref{sec:eigenvalues} is not active.
%% Additionally we have:
%% \begin{equation}
%% c^n = \begin{cases}
%% 1 & \text{if} \;\; p^{nr} > - \sqrt{2} / 2 \\
%% \frac{{1} + \sqrt{2}}{2} + \frac{{1} - \sqrt{2}}{2}
%% \cos \left( \frac{\pi p^{nr}}{ \sqrt{2} / 2 - 1} \right) & \text{otherwise}
%% \end{cases}
%% \end{equation}
%% with $p^{nr} = \langle \vect{r}(\xi), \, \bar{\vect n}^{\Delta}(\xi)\rangle / (\| \vect{r}(\xi) \| \, \| \bar{\vect n}^{\Delta}(\xi)) \|) $.
% \begin{gather*}
% c^n = \begin{cases}
% 1 & \text{if} \;\; p^{nr} < \frac{\sqrt{2}}{2} \\
% \sqrt{2} p^{nr}& \text{otherwise}
% \end{cases}
% \;\; \text{with} \; p^{nr} = (-1) \langle \vect{r}(\xi), \, \bar{\vect n}^{\Delta}(\xi) \rangle
%\;\; \text{with} \; p^{nr} = (-1)\frac{\langle \vect{r}(\xi), \, \bar{\vect n}^{\Delta}(\xi)\rangle}{\| \vect{r}(\xi) \| \, \| \bar{\vect n}^{\Delta}(\xi)) \|}
% p^{nr} = \begin{cases}
% 0 & \text{if} \;\; \| \vect{r}(\xi) \| \, \| \bar{\vect n}^{\Delta}(\xi)) \| = 0 \\
% n(-1)\frac{\langle \vect{r}(\xi), \, \bar{\vect n}^{\Delta}(\xi)\rangle}{\| \vect{r}(\xi) \| \, \| \bar{\vect n}^{\Delta}(\xi)) \|} & \text{otherwise}
% \end{cases}
% \end{gather*}
%% where $p^{nr} = (-1) \langle \vect{r}(\xi), \, \bar{\vect n}^{\Delta}(\xi)\rangle / \| \bar{\vect{n}}^\Delta(\xi) \|$.
The scaling factor $c^n \in [1, \sqrt{2} ]$ ensures that the decomposition matrix $\matr E(\xi)$ is invertible, see Appendix~\ref{sec:proof_theorem1} for further explanation.
%the normal offset and reference direction oppose each other, i.e., $p^{nr} < \sqrt{2} / 2$, hence
\subsection{Eigenvalue Matrix}
The diagonal eigenvalue matrix is given as:
\begin{equation}
\matr D(\xi) =
\textbf{diag}
\left(
\lambda^r(\xi) ,
\lambda^e(\xi) , \,
\hdots ,
\lambda^e( \xi)
\right)
\label{eq:eigVecMatr}
\end{equation}
with eigenvalues in reference direction $\lambda_r(\xi) \in ]0, 1[$ and in tangent $\lambda_e(\xi) \in ]1, 2[$ are a function of the averaged reference direction $\hat{\vect r}^o(\xi)$:
\begin{equation}
\lambda_r(\xi) = 1 - \| \hat{\vect r}^o(\xi) \|^{\rho}
\qquad
\lambda_e(\xi) = 1 + \| \hat{\vect r}^o(\xi) \|^\rho
\end{equation}
where $\rho \in \mathbb{R}_{>0}$ is the reactivity, see \cite{khansari2012dynamical} for more information.\\
\\
\noindent\textbf{Theorem 1}
\textit{Consider a star-world as defined in Eq.~(\ref{eq:star_shape}) with $N^{\mathrm{obs}}$ obstacles. Any trajectory $\{\xi\}_t$, that starts within the free space $\mathcal{X}^e$, and evolves according to Eq.~(\ref{eq:modulated_ds}) and (\ref{eq:normal_vector}), will stay in free space, i.e., $\{\xi\}_t \in \mathcal{X}^e \; \forall \, t $. Furthermore, if the motion results from linear nominal dynamics $v^N$ as given in Eq.~(\ref{eq:linear_dynamics}), the final dynamics are stable and have a unique minimum at the attractor $\xi^a \in \mathcal{X}^f$, i.e., $\{ \xi : \| \dot{\xi} \| = 0, \nabla \dot{\xi} \succ 0 \} = \{ \xi^a\} $
} \hfill \textbf{Proof:}~see~Appendix~\ref{sec:proof_theorem1}.\\
\\
The proposed approach allows collision avoidance in a star-shaped world similar to \cite{huber2021avoiding}, but with only the need for a single modulation resulting in lower computational cost (see Fig.~\ref{fig:vectorfield_starshaped}).
\subsection{Tail Negligence}
The modulation-based obstacle avoidance is active even when the nominal dynamics $v^N$ are already moving away from an obstacle. This can be an undesired effect since, in this case, the unconstrained velocity already ensures collision avoidance. This \textit{tail} effect can be reduced by modifying the wake eigenvalues while still ensuring a smooth vector field by adapting the eigenvalues as follows:
\begin{align*}
& \lambda^{e, t}(\xi) = w^r w^v + ( 1 - w^r w^v) \lambda^e(\xi) \\
& \lambda^{r, t}(\xi) = \lambda^{e, t}(\xi) w^r \text{sgn}(w^v) + ( 1 - w^r \text{sgn}(w^v)) \lambda^r(\xi)
\end{align*}
with the weights given as
\begin{equation}
w^r = \min \left(1, \frac{1}{\| \hat{\vect r}^o (\xi) \|} \right)
\quad
w^v = \max \left(0, \frac{\dotprod{\vect{r}^o(\xi)}{\vect v^N}}{\|\vect v^N\|} \right)^{c^w}
\end{equation}
where $c^w \in \mathbb{R}_{>0}$ is the power weight, we choose $c^w=0.2$.
% We choose $p^w = 0.2$
\subsubsection{Decreasing Tail Weight}
The importance of obstacles in the wake of the nominal velocity $v^N$ can be further decreased by modifying the weight based on the nominal velocity $\vect v$. For this we restate the weight from Eq.~(\ref{eq:weight_sum_obstacle}) as:
\begin{equation*}
\hat{w}_i^o = \hat{w}_i^o \left(\frac{\hat{w}_i^o}{\sum_i \hat{w}^o_i } \right)^{1/c_i}
, \;\;
c_i = 1 - \normdotprod{\vect v^N}{\vect r_i^o(\xi)}
\end{equation*}
for all obstacles $i = 1 .. N^{\mathrm{obs}}$.
%% Only act in tail-region when in close danger-region:
%% \begin{gather*}
%% \lambda^{r, t}(\xi) = \lambda^{e, t}(\xi) = w^t + \lambda^r(\xi) (1 - w^t) \\
%% \;\; \text{if} \;\;
%% \langle \vect{\hat r}(\xi), \vect v^N\rangle > 0 \quad \text{and} \quad \| \hat{\vect r}(\xi) \| \leq 1
%% \end{gather*}
%% where $w^t = \min \left(1, 1/\| \hat{\vect r}(\xi) \| \right \langle \rangle)$
% This allows to extend the impenetrability proof a local dynamics proof with respect to an attractor $\xi^a$, i.e., $\dot{\xi} = \xi - \xi^a$. \\
%% We define here the normal offset for the two and three dimensional scenarios.
%% \subsubsectionn{Two Dimensional Case}
%% For the two dimensional case, for each vector the normal offset can be obtained by:
%% \begin{equation}
%% n^{\Delta} = \vect r \times \vect n(\xi)
%% \end{equation}
%% The vector product results in a scalar value.
%% The summed normal direction is evaluated as:
%% \begin{equation}
%% \bar{\vect n}(\xi) = \sum^{N^o} w_l \vect n_l(\xi)^{\Delta}
%% \end{equation}
%% \subsubsection{Three Dimensional Case}
%% Similarly for in three dimensions, we get a full vector for the normal offset of each point:
%% \begin{equation}
%% \vect n(\xi)^{\Delta} = \vect r(\xi) \times \vect n(\xi)
%% \end{equation}
%% Similarly to before, we have a weighted summing of the elements:
%% \begin{equation}
%% \bar{\vect n}(\xi)^{\Delta} = \sum^{N^o} w_l \vect n_l(\xi)^{\Delta}
%% \end{equation}
%% This gives can be interpreted as the angle axes rotation and applied to obtain the final normal.
%% \footnote{Higher dimensions cannot be trivially expanded, since the rotation of a rigid body in $\mathbb{R}^d$ has
%% $d^2 - d(d-1)/2 - d = d(d+1)/2$
%% % # 2D: 2*2 - (1) - 2 = 1
%% %# 3D: 3*3 - (2+1) - 3 = 3
%% %# D: d*d - (d-1 + 1)*(d-1)/2 - d = d*d - d*d/2 + d*1/2 - d = d*d/2 - d/2 = d(d-1)/2
%% degrees of freedom, i.e., a rotation vector in 4D will have 6 degrees of freedom.}
% \subsection{Normal Estimation for Sensor Data}
% Sampled environment data allows to approximate a local normal vector, too. While there exists different methods (e.g. regression, obstacle reconstruction), we propose the normal and tangent evaluation for two dimensional environments as:
% \begin{equation*}
% \vect n_i = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} \vect t_i
% \quad \text{with} \;\;
% \vect t_i = (\xi_{i+1} - \xi_{i-1}) / \| \xi_{i+1} - \xi_{i-1} \|
% \end{equation*}
% Analogously to the previous section, the average normal offset is averaged to obtain the resulting normal direction (see Fig.~\ref{fig:laserscan_normal_offset}).
% Note that noisy sensor reading is smoothed through the weighted average from many data points.
% While this method can improve the modulation; it is expected to have inferior performance to the algorithm using analytical obstacle descriptions because it lacks the knowledge of the environment embedded in an analytical description.
% Hence, no convergence guarantees can be made. Hence, it can not be ensured that including the normal in the estimation improves performance.
%% \begin{figure}[t]
%% \centering
%% \includegraphics[width=1.0\columnwidth]{figures/vectorfield_starshaped.png}
%% \caption{The left plot shows the normal vectors in a \textit{stars-world} and the color represents the angle between normal and reference, i.e., $\text{arcsin}(\vect r(\xi) \times \vect n(\xi))$. The rights side shows the converging vector field. Red regions rotate the nominal vector field clockwise, blue regions rotate it counter-clockwise.}
%% \label{fig:vectorfield_starshaped}
%% \end{figure}
%% \begin{figure}[t]
%% \centering
%% \includegraphics[width=1.0\columnwidth]{figures/vector_field_around_laserscan_door.png}
%% \caption{Normal offset for a laserscan gives good results in local environments.}
%% \label{fig:laserscan_normal_offset}
%% \end{figure}
%% \begin{figure}[t]\centering
%% \begin{subfigure}{1.0\columnwidth}
%% \centering
%% \includegraphics[width=1.0\columnwidth]{figures/vectorfield_starshaped.png}
%% \caption{Obstacle avoidance with normal offset in a \textit{star-world}. }
%% \label{fig:vectorfield_starshaped}
%% \end{subfigure}
%% \begin{subfigure}{1.0\columnwidth}
%% \centering
%% \includegraphics[width=1.0\columnwidth]{figures/vector_field_around_laserscan_door.png}
%% \caption{Normal offset applied to a laserscan reading.}
%% \label{fig:laserscan_normal_offset}
%% \end{subfigure}
%% \caption{The left plots visualize the reference direction, and the color represents the angle between normal and reference, i.e., $\text{arcsin}(\vect r(\xi) \times \vect n(\xi))$. The rights side shows the converging vector field with an nominal linear velocity to the attractor (black star). It can be observed that the red regions rotate the nominal vector field clockwise, and blue regions rotate it counter-clockwise.}
%% \label{fig:boundary_analysis}
%% \end{figure}
\begin{figure}[t]
\centering
\includegraphics[width=1.0\columnwidth]{figures/multiple_avoiding_obstacles_analytic}
\caption{In the surrounding with analytical obstacle descriptions (brown), a \textit{virtual} obstacle is constructed with corresponding reference and tangent direction. This ensures the absence of minima in \textit{star worlds}.}
\label{fig:vectorfield_starshaped}
\end{figure}
\section{Sample Based Obstacle Avoidance} \label{sec:single_modulation}
In many scenarios, the analytical obstacle description is not known at runtime, but the obstacles are perceived as a large number of data points, $\xi^p_i \in \mathbb{R}^d \; , i = 1, \, ..., \, N^p$, where $N^p \in \mathbb{N}_{>0}$ is the total number of points.\footnote{In this paper we focus on Lidar data, but this could be a point-cloud model of objects.} We extend the notion of \text{virtual} obstacle to be applied to a large number of zero-dimensional data points. Furthermore, throughout this section, we assume a circular d-dimensional robot with radius $R \in \mathbb{R}_{>0}$ and a sampling angle of $\delta \ll 1$, see Fig.~\ref{fig:sensor_data_avoidance_flat}.
\begin{figure}[t]
\centering
\includegraphics[width=0.7\columnwidth]{figures/sensor_data_avoidance_flat.pdf}
\caption{Mobile robot in front of a flat obstacle.}
\label{fig:sensor_data_avoidance_flat}
\end{figure}
% This is done to keep the cost cheap and make the algorithm scalable to many points and higher dimensions.
%Each Lidar point $\xi^p_i \in \mathbb{R}^d \; , i = 1, \, ..., \, N^p$ can be seen as a circular obstacle with zero radius, but applying the obstacle avoidance modulation (\ref{eq:modulated_ds}) would lead to a long evaluation time.
% We propose a novel method to apply the modulation-based obstacle avoidance to the raw sensor data from a laser scan by interpreting each data point $\xi^p_i$ as a circular obstacle with zero radii. Since applying the modulation to each obstacle would increase the computational time, a virtual obstacle is created with
% represents all laser scan objects but only reduces the computation to a single modulation.
\subsection{Reference Summing for Sampled Data}
First, we evaluate the reference direction to each point $i$
\begin{gather}
\hat{\vect r}^p_i (\xi) = \frac{\xi^p_i - \xi}{\| \xi^p_i - \xi \|}
\qquad i = 1 .. N^p
\end{gather}
Additionally, the distance is evaluated as
\begin{equation}
D_i (\xi) = \| \xi^p_i - \xi \| - R \qquad i = 1 .. N^p \label{eq:distance_function}
\end{equation}
This provides the reference direction similar to (\ref{eq:reference_summing}). Since each data point is approximated with a small circle, the decomposition matrix $\matr E(\xi)$ is constructed to be orthogonal.
Furthermore, we introduce the weight sum for discrete data points:
\begin{equation}
w^{\mathrm{sum}} = \min \left( \sum_i \hat{w}_i^p (\xi), w^{\mathrm{norm}} \right)
\label{eq:weight_sum}
\end{equation}
where $w^{\mathrm{norm}} > 0$ is the maximum distance weight, for more information see Appendix~\ref{sec:proof_theorem1}.
% The combined reference direction of the data points $\hat{\vect{r}}^p(\xi)$ is evaluated as the weighted sum,
% \begin{equation}
% \hat{\vect{r}}^p(\xi) = \sum_i w_i^l(\xi) \vect r^p_i(\xi) \label{eq:laser_reference}
% \end{equation}
% where the influence weights are given by
% \begin{multline}
% w^p_i(\xi) =
% \begin{cases}
% \hat w^p_i(\xi) / \hat w^{\mathrm{sum}} \quad & \text{if} \;\; \hat w^{\mathrm{sum}} > 1 \\
% {w}^p_i(\xi) & \text{otherwise}
% \end{cases}
% \qquad i \in [1 ... N^p] \\
% \hat{w}^p_i(\xi) = \left( \frac{D^{\mathrm{scal}}}{D_i(\xi)} \right)^s,
% \quad
% w^{\mathrm{sum}} = \min \left( \sum_i \hat{w}_i^l (\xi), w^{\mathrm{norm}} \right)
% \label{eq:weight_sum}
% \end{multline}
% where $s \in \mathbb{R}_+$ is the scaling-potential, $D^{\mathrm{scal}} \in \mathbb{R}_+$ the scaling distance and $w^{\mathrm{norm}} > 0$ the maximum distance weight. We choose $s = 2$ and $D^{\mathrm{scal}}= 2 \pi / \delta^{(d-1)}$, see Sec.~\ref{sec:importance_scaling} for more information, and Appendix~\ref{sec:proof_theorem1} how to chose $w^{\mathrm{norm}}$.
%\\ \tempcolor{TODO Improve: A (mostly) sensor independent reference direction can be obtained by changing the sclaing distance to $d^{\mathrm{scal}} = \delta^{\mathrm{tot}} / \delta_i $ (see Fig.~\ref{fig:sensor_data_avoidance_flat}). Additionally we set $p = 1$.}
% To evaluate the modulation matrix defined in (\ref{eq:basisMatr}), we use the normalized reference direction $\vect{r}^p(\xi) = \hat{\vect r}^p(\xi) / \| \hat{\vect r}^p(\xi) \| $, and the tangent directions $\vect e_i^p(\xi)$ form the orthonormal basis to $\vect{r}^p(\xi)$.
\subsection{Eigenvalues Based on Reference Direction} \label{sec:eigenvalues}
The modulated velocity $\dot \xi$ needs to be tangent to the surface or point away from it when approaching the obstacle to ensure collision avoidance. Conversely, the obstacle avoidance controller should have no effect far away from any obstacle.
Correspondingly, the magnitude of the reference direction $\| \hat{\vect{r}}^p(\xi) \|$ reaches zeros far away from an obstacle, and approaches infinity when on the surface. Hence, we can use the magnitude to define the eigenvalues as follows:
\begin{align*}
&\| \hat{\vect r}^p(\xi) \| = 0 \quad \Rightarrow \quad \lambda^r(\xi) = \lambda^e(\xi) = 1 \\
&\| \hat{\vect r}^p(\xi) \| = 1 \quad \Rightarrow \quad \lambda^r(\xi) / \lambda^e(\xi) = 0 \\
&\| \hat{\vect r}^p(\xi) \| \rightarrow \infty \quad \Rightarrow \quad | \lambda^e(\xi) |/ \lambda^r(\xi) = 0
\end{align*}
Additionally, we set the constraint that $\lambda^e(\xi) \in \mathbb{R}_+$, since the velocity in the tangent direction should never be reflected.
We choose the eigenvalue in reference direction $\lambda^r(\xi, \vect v) \in [1, \, -1[$ as:
\begin{align}
& \lambda^r(\xi, \vect v) =
\begin{cases}
(-1) \lambda^{r, 0}(\xi) \quad & \text{if} \;\; \dotprod{\vect r^p(\xi)}{\vect{v}} < 0 , \; \| \hat{\vect r}^p(\xi) \| > 1 \;\; \\
\lambda^{r, 0}(\xi) & \text{otherwise}
\end{cases} \nonumber \\
& \quad \text{with} \;\;
\lambda^{r, 0}(\xi) =
\begin{cases}
\cos( \frac{\pi}{2} \| \hat{\vect r}^p(\xi) \|) & \text{if} \;\; \| \hat{\vect r}^p(\xi) \| < 2 \\
-1 & \text{otherwise}
\label{eq:eigenvalues_simples}
\end{cases}
\end{align}
Additionally the eigenvalues in tangent direction $\lambda^r(\xi) \in [1, \, 2]$ are given by
\begin{equation}
\lambda^e(\xi) =
\begin{cases}
1 + \sin( \frac{\pi}{2} \| \hat{\vect r}^p(\xi) \|) & \text{if} \;\; \| \hat{\vect r}^p(\xi) \| < 1 \\
2 \sin \left( \frac{\pi}{2 \| \hat{\vect r}^p(\xi) \|} \right) & \text{otherwise} \label{eq:eigenvalues_tangent}
\end{cases}
%\begin{cases}
% 1 + \sin( \pi / 2 \| \hat{\vect r}^p(\xi) \|) & \text{if} \;\; \| \hat{\vect r}^p(\xi) \| < 2 \\
% 1 & \text{otherwise}
%\end{cases} \nonumber
\end{equation}
where $\pi$ is the circle constant.
% where $p^r=2$, $c^r = 0.1$ and $p^e = 1$. \\
Note that the eigenvalues are $C^1$-smooth, because of $\frac{d}{d x} \sin(x) |_{x = \pi/2} = 0$ and $\frac{d}{d x} \cos(x) |_{x = \pi} = 0$. The resulting vector field can be seen in Fig.~\ref{fig:motion_laserscan}.\\
\\
% \begin{equation}
% \| \dot{\xi} \| > 0 \;\; \forall \xi - (R + D^{\mathrm{gap}}) \vect r(\xi) \in \mathcal{X}^e \label{eq:margin_space}
% \end{equation}
\noindent\textbf{Theorem 2}
% Any trajectory $\{\xi\}_t$, that starts within the free space $\mathcal{X}^e$, and evolves according to Eq.~(\ref{eq:modulated_ds}) and (\ref{eq:normal_vector}), will stay in free space, i.e., $\{\xi\}_t \in \mathcal{X}^e \; \forall \, t $.
\textit{Consider an agent with radius $R$ and a nominal velocity of $\vect{v}^N \in \mathbb{R}^d \setminus \vect 0$. Let us assume the existence of $N^{\mathrm{obs}}$ obstacles with corresponding boundary and free space as given in Eq.~(\ref{eq:gamma_function}), from which the sampled surface points $\xi_i^p \in \mathbb{R}^d, \, i \in 1, \, ... \, N^{p}$ are known. \\
Any trajectory $\{\xi\}_t$ that starts in free space $\mathcal{X}$, and evolves according to Eq.~(\ref{eq:modulated_ds}), (\ref{eq:eigenvalues_simples}) and (\ref{eq:eigenvalues_tangent}) will stay in free space, i.e., $\{\xi\}_t \in \mathcal{X}^e$
%and at a distance $D^{\mathrm{gap}}$ from the object's surface $\mathcal{X}^b$, i.e., $ \| \dot{\xi} \| > 0 \;\; \forall \xi - (R + D^{\mathrm{gap}}) \vect r(\xi) \in \mathcal{X}^e$ , the agent will remain at a distance $D^{\mathrm{gap}} \in \mathbb{R}_{>0}$ from the object's surface i.e., $\xi - R \, \vect r(\xi) \in \mathcal{X}^e \; \; \forall t$
and will not stop outside of the gap distance, i.e., $\| \dot{\xi} \| > 0 \;\; \forall \xi \in \mathcal{X}^g$.
%, i.e., $ \| \dot{\xi} \| > 0 \;\; \forall \xi - (R + d^{\mathrm{gap}}) \vect r(\xi) \in \mathcal{X}^e$.
}
${ \, }$ \hfill \textbf{Proof:}~see~Appendix~\ref{sec:proof_theorem2}.
%No local minimum exists further than $d^{\mathrm{gap}}$ from any surface,
%i.e., $ \| \dot{\xi} \| > 0 \;\; \forall \xi - (R + d^{\mathrm{gap}}) \vect r(\xi) \in \mathcal{X}^e$.} \\
%% \begin{figure}[t]
%% \centering
%% \includegraphics[width=1.0\columnwidth]{figures/vector_field_around_laserscan.png}
%% \caption{The reference direction (left) and the obtained vector field (right) around an unstructured environment obtained by laserscan (brown dots). The nominal motion $v^N$ are linear dynamics with corresponding attractor (black star).}
%% \label{fig:motion_laserscan}
%% \end{figure}
\begin{figure}[t]\centering
\begin{subfigure}{0.49\columnwidth} %
\centering
\includegraphics[width=1.0\columnwidth]{figures/visualization_reference_vectors_annotated.png}
\caption{Initial vector field}
\label{fig:summation_of_reference}
\end{subfigure}
\begin{subfigure}{0.49\columnwidth}
\centering
\includegraphics[width=1.0\columnwidth]{figures/visualize_avoiding_field_annotated.png}
\caption{Modulated vector field}
\label{fig:avoided_vectorfield}
\end{subfigure}%
\caption{At each position, the algorithm is only aware of the sample points $\xi^p_i, \; i = 1 .. N^p$ and not the actual shape of the obstacle in grey (a). The the summed reference direction $\hat{\vect r}^p(\xi)$ is used to guide the nominal velocity around the obstacle in grey (b).}
\label{fig:motion_laserscan}
\end{figure}
\begin{figure}[t]
\centering
\includegraphics[width=0.9\columnwidth]{figures/multiple_avoiding_obstacles.png}
\caption{The algorithm does not need to estimate the number or shape of each individual obstacle. Calculating the weighed reference direction is sufficient to navigate safely in cluttered environments.}
\label{fig:motion_laserscan_multiple}
\end{figure}
\section{Disparate Obstacle Descriptions} \label{sec:mixed_environments}
% Detection algorithms that interpret sensor data (e.g., camera or Lidar) and output the analytic description of the obstacles in the environment are commonly used in robotics \cite{jia2020dr}.
Detection algorithms can fail to identify certain obstacles. Hence, we are left with a mix of analytic obstacles and sampled sensor data. Furthermore, the analytic reconstruction of the obstacles often comes with a significant delay in time.
% which means an asynchronous obtaining of the information about the environment.
This results in asynchronous reception of information on obstacles, with fast sampled-based information and slow analytical model acquisition.
% Real-world scenarios encounter a mix of analytic obstacles and raw sensor data: part of the obstacles are recognized by vision algorithms, where some sensor points remain unassigned. We propose an approach to combining the two methods of the previous sections in a single control scheme. \\
% sample-based sensor data and (delayed) analytic reconstruction of obstacles
We address this by proposing an approach to fuse analytic obstacle descriptions (see Sec.~\ref{sec:non_circular}) with sample-based sensor data (see Sec.~\ref{sec:single_modulation}).
The first step is to remove sampled obstacle data which has been identified as an analytic obstacle. Hence, the laserscan weights in (\ref{eq:weight_sum}) are set to zero if they lie withing the obstacle $o = 1 .. N^{\mathrm{obs}}$:
\begin{equation}
\hat{w}^o_i(\xi)
\gets 0 \qquad \text{if} \;\; \exists \, o : \, \Gamma_o(\xi_i) \leq 1
\end{equation}
% This results in a mixed environment, as shown in Fig.~\ref{fig:mixed_streamplot}. Note that the agent's margin is added directly to the obstacle, whereas laser scan points within this margin are still considered.
\subsection{Fusion Weights of Sampled and Analytic Obstacles}
The magnitude of the reference direction of the sampled and analytic obstacles gives us information about the proximity to obstacles.
%Hence, the reference can be used to calculate the importance weight of the two inputs.
% Through the summing of the reference directions, we obtain the reference direction from laser scan data, and for analytic obstacle environment $\vect{r}^o(\xi)$ has been obtained.
%% The weight for the laser scan $w^l$ and obstacle $w^o$ are now obtained as:
%% \begin{equation}
%% \begin{bmatrix} w^l(\xi) \\ w^o(\xi) \end{bmatrix}
%% =
%% \begin{cases}
%% \bar{\vect r}(\xi) / \sum_i \bar{\vect r}_i(\xi) & \text{if} \; \sum_i \bar{\vect r}_i(\xi) \\
%% \bar{\vect r}(\xi) & \text{otherwise}
%% \end{cases}
%% \end{equation}
%% with $ \bar{\vect r}(\xi) = [ \| \vect r^p(\xi) \|, \, \| \vect r^o(\xi) \| ] $.
% The references can be further used to calculate the importance weights of the laserscan and the analytic obstacle input.
Hence, the reference magnitude can be used to calculate the importance weight of the sampled data $w^p \in [0, 1]$ and analytic obstacles $w^o \in [0, 1]$ as:
\begin{equation*}
\begin{bmatrix} w^p\\ w^o \end{bmatrix}
= \frac{1}{\hat w^p + \hat w^o} \begin{bmatrix} \hat w^p \\ \hat w^o \end{bmatrix}
\quad \text{with} \;\;
\begin{cases}
\hat w^p = 1 / \left( 1 - \left\| \bar{\vect r}^p(\xi) \right\| \right) - 1 \\
\hat w^o = 1 / \left( 1 - \left\| \bar{\vect r}^o(\xi) \right\| \right) - 1
\end{cases}
% & \text{if} \;\; \bar{\vect r} < 1 \;\; \forall \bar{\vect r}_i < 1
\end{equation*}
% with $\bar{\vect r} = \begin{bmatrix} \| \hat{\vect r}^p(\xi) \| & \| \hat{\vect r}^o(\xi) \| \end{bmatrix}^T$.
where $i = 1 .. N^{\mathrm{obs}}$. The weight is used to evaluate the reference direction of the mixed environment:
\begin{equation}
\vect{r}^m(\xi) = w^l(\xi) \hat{\vect{r}}^p(\xi) + w^o(\xi) \hat{\vect{r}}^o(\xi)
\end{equation}
% Analogously, the weights are used to calculate the weighted normal direction as defined in Sec.~\ref{sec:normal_offset}.
%% \subsection{Dynamic Obstacles}
%% Many recent tracker give information about the weighting can be changed. For each obstacle, there exists the angular difference between the normal and the reference. For any star shaped obstacle, this angle is strictly smaller than $\pi/2$, hence the dot product
%% \begin{equation}
%% \langle \vect r(\xi), \vect n(\xi) \rangle / ( \|\vect r(\xi)|\ \|\vect n(\xi) \|) > 0
%% \quad
%% \end{equation}
%% A more detailed description on directional weighted mean as well as underlying proofs can be found in \cite{huber2021avoiding}.
%% An additional (base) weighting can be added to each of the obstacles. This allows to differentiate the importance of the obstacle, but also the size: the distance to a lamp-post or the distance to a house are interpreted differently.
% \subsection{Dynamic Environments}
%Sampled sensor data obtained from a Lidar measurement does not contain any information about the velocities of the obstacles.
% Conversely, an advanced crowd tracker interprets the crowd's dynamic and outputs a velocity.
The analytical description has the additional advantage that it often provides information about the velocity and shape of the obstacles. This can be used to ensure collision avoidance in dynamic environments. We propose to include the velocity similar to \cite{huber2021avoiding} for the fused scenario as follows:
% Raw sensor data often gives a bad prediction about the velocity scan measures do not give information about the velocity. Conversely, a crowd tracker might output the analytical obstacle description, including the velocity of the people. Hence, the averaged velocity as given in is evaluated for mixed scenarios as:
\begin{equation}
\dot{\vect \xi} = { \matr{M}(\xi, \vect v^N)} \left( \vect v^N - \dot{\tilde \xi}^{\mathrm{d, \mathrm{tot}}} \right) + \dot{\tilde \xi}^{d, \mathrm{tot}}
\; \, \quad
\dot{\tilde \xi}^{d, \mathrm{tot}} = w^o \dot{\tilde \xi}^{\mathrm{tot}}
\end{equation}
where $\dot{\tilde \xi}^{\mathrm{tot}} \in \mathbb{R}^d$ is the averaged velocity of all analytical obstacles.
% in Sec.~\ref{sec:normal_offset}. The vector field around a fused environment can be found in Fig.~\ref{fig:mixed_streamplot}.
\begin{figure}[t]
\centering
\includegraphics[width=1.0\columnwidth]{figures/multiple_avoiding_obstacles_mixed.png}
\caption{Analytical obstacle descriptions (brown) and sampled obstacle data (black dots on the gray obstacles) are fused by the algorithm. The weighting uses the corresponding reference directions.}
\label{fig:mixed_streamplot}
\end{figure}
\subsection{Asynchronous Evaluation}
The disparate data is combined by using a controller with three inputs: the velocity command from the human operator $\vect{v}^N$, the laser scan reading $\xi^p$, and the estimated position of the robot $\xi$ (see Fig.~\ref{fig:control_scheme_mixed}).
The two sensor loops run at different frequencies, with the sample-based evaluator running at a higher update rate than the analytic evaluator. The latter is delayed due to the processing time to generate analytic obstacle descriptions. However, the analytic descriptions enable improved behavior due to the information about the obstacle's shape and velocity.
% Note that only the inner loop runs at a constant frequency, where the desired velocity input is modulated. Due to a single modulation needed, this can be done at frequencies of around \SI{1}{kHz}.
% The update of the sensor reading is often much slower at rates of ~\SI{50}{Hz}, but still much faster than the evaluation of common trackers.
% We estimate the latter to be an order of magnitude slower and run at frequencies of around \SI{5}{Hz}. This is in the same order of magnitude as the human reaction time.
\subsection{Uniform Importance Scaling} \label{sec:importance_scaling}
An obstacle described by sampled data points or an analytic function should have the same effect on the modulation. An adequate scaling is necessary since a single obstacle often corresponds to multiple data points.
Let us consider an obstacle that can be approximated by radius $R^{\mathrm{obs}}$ at a distance $D$. The number of sampling data points $N^p$ can be approximated as:\footnote{If the obstacle sampling is volumetric, e.g., by obtaining a collision model of the robot in higher dimensions, the power value of the right side is $d$, i.e., $N^p \sim (\cdot)^d$.}
\begin{equation}
N^p
\sim \left(\frac{R^{\mathrm{obs}}}{\tan(\delta) D}\right)^{d-1}
\sim \left(\frac{R^{\mathrm{obs}}}{\delta D}\right)^{d-1}
\end{equation}
It follows that the scaling weight of the sampled data is set proportional to the sampling angle $\delta$:
\begin{equation}
w^{\mathrm{scal}, p} \approx \delta ^{d-1}
\end{equation}
Moreover, the scaling weight of the analytic obstacle description is dependent on the size and distance.
\begin{equation}
w^{\mathrm{scal}, o} \approx \left( R^{\mathrm{obs}} / D\right)^{d-1}
\end{equation}
As a result, we set the distance scaling
$D^{\mathrm{scal}}= 2 \pi / \delta^{(d-1)}$ in mixed environments.
\begin{figure}[tb]
\centering
\includegraphics[width=0.91\columnwidth]{figures/control_scheme_mixed.png}
\caption{The modulation-based avoidance takes the most recent update from the sampled and analytic obstacle description. The reference directions are obtained at different frequencies and are combined asynchronously.}
\label{fig:control_scheme_mixed}
\end{figure}
\section{Experimental Validation}
% Evaluation and Update Speed
\subsection{Computational Speed}
The proposed, fast obstacle avoidance algorithm has a computational complexity of $\mathcal{O} (d N^{\mathrm{obs}})$, is lower than when compared to similar approaches that have a complexity of $\mathcal{O} (d^{2.4} N^{\mathrm{obs}})$, see \cite{huber2021avoiding}. This was confirmed by the low computational time observed during the experiments for sampled data and analytic obstacle descriptions (see Fig.~\ref{fig:computational_speed_comparsion}). \\
Note that an important speed-up of the presented algorithm compared to the baseline method is due to the application using sampled sensor data directly without using an intermediate tracker.
\begin{figure}[t]\centering
\begin{subfigure}{0.49\columnwidth}
\centering
\includegraphics[width=1.0\columnwidth]{figures/comparions_random_ellipse_number_d2.png}
\caption{Analytic data}
\label{fig:comparison_algorithms}
\end{subfigure}%
\begin{subfigure}{0.5\columnwidth} %
\centering
\includegraphics[width=1.0\columnwidth]{figures/comparison_sampling_dimensions_nolog.png}
\caption{Sample data}
\label{fig:comparison_sampling_dimensions}
\end{subfigure}
\caption{The proposed approach (\textit{Fast Modulation}) and the baseline \cite{huber2019avoidance} denoted as \textit{Modulation} have a computation time that grow linearly with the number of obstacles. However, the proposed approach has a flatter rate of growth (a). Moreover, the complexity grows linearly with respect to the number of data points (b). The evaluation was performed on a desktop computer with \textit{an Intel Core i7-6700 CPU @ 3.40GHz}.}
\label{fig:computational_speed_comparsion}
\end{figure}
\subsection{Convergence Analysis Using Disparate Sensor Data}
The algorithm was applied to simulated, two-dimensional environments with four obstacles and a surrounding wall (Fig.~\ref{fig:comparsion_two_partial_algorithms}). The shape and pose of the ellipse obstacles were randomly obtained in the top right and bottom left corner, respectively. The position of the two square obstacles is fixed, but the obstacle is either discovered through surface sampling or using the analytical obstacle description. The surrounding wall is fixed.
From the comparison between the two scenarios, it can be observed that the analytical knowledge of the obstacles doubles the number of converging trajectories, see Tab.~\ref{tab:comparison_convergence}.
However, this increases the time to convergence by around 20 \%, resulting from a more conservative behavior around analytic obstacles.
\begin{figure}[t]\centering
\begin{subfigure}{0.49\columnwidth}
\centering
% \includegraphics[width=1.0\columnwidth]{figures/custom_environment_for_comparison_mixed.png}
\includegraphics[width=1.0\columnwidth]{figures/custom_environment_integration_for_comparison_sampled.png}
\caption{Sampled data}
\label{fig:sampled_data_comparison}
\end{subfigure}%
\begin{subfigure}{0.5\columnwidth} %
\centering
% \includegraphics[width=1.0\columnwidth]{figures/custom_environment_for_comparison_sampled.png}
\includegraphics[width=1.0\columnwidth]{figures/custom_environment_integration_for_comparison_mixed.png}
\caption{Disparate data}
\label{fig:disparate_data_comparison}
\end{subfigure}
\caption{Trajectories often end in a local minimum when using sampled data of obstacles only, see (a). The avoidance can be improved using analytical obstacle description (brown), where an increased number of trajectories converge to the attractor (black star) as in (b).}
\label{fig:comparsion_two_partial_algorithms}
\end{figure}
\begin{table}[t]
\caption{The ratio of trajectories (100 runs) that reached the attractor for implementation with only sampled data versus the use of disparate environment description. The average time is taken over the runs which had both algorithms converging.}
\centering
\begin{tabular}{|l|c|c|} \hline
& Sampled & Disparate \\ \hline
Convergence Ratio & 45\% & 83\% \\
Average Time & \SI{ 24.6 }{s} & \SI{29.7}{s} \\
\hline
\end{tabular}
\label{tab:comparison_convergence}
\end{table}
\subsection{Evaluation using Static Sensor Data}
An additional evaluation was performed with two static recordings of real sensor data, which was obtained by two 3D \textit{Velodyne} Lidars. Each Lidar is interpreted as a laser scan by extracting the horizontal 2D row of the Lidar. During the recording, the sensor was placed approximately \SI{30}{cm} above ground. The resulting laser scans have an angle of view of $\pm 0.75 \, \pi \, \mathrm{rad}$ and an angle increment of $\delta=$\SI{7e-3}{rad}, resulting in approximately 650 data points each.
Based on the static laser scan, the robot passes narrow doorways successfully (Fig.~\ref{fig:passing_doorway}). Even though the gap is marginally wider than the (simulated) robot's diameter, no local minimum is observed in front of the doorway.
When passing a room, the simulated robot avoids obstacles of various shapes in real-time. The two people standing in the room were avoided based on sampled data only (Fig.~\ref{fig:comparison_sampling_dimensions}).
\begin{figure}[t]\centering
\begin{subfigure}{0.8\columnwidth}
\centering
\includegraphics[width=1.0\columnwidth]{figures/multi_plot_door_passing_annotated.png}
\caption{Circular robot passing a narrow doorway}
\label{fig:passing_doorway}
\end{subfigure}
\begin{subfigure}{0.8\columnwidth} %
\centering
\includegraphics[width=1.0\columnwidth]{figures/multi_fancyplot_room_passing_annotated.png}
\caption{QOLO passes a room with two people}
\label{fig:comparison_sampling_dimensions}
\end{subfigure}
\caption{In experiments using instances of recorded sensor data of approximately 1000 data points, the robot is able to navigate between the narrow doorways (a) and cluttered environments (b).}
\label{fig:motion_laserscan}
\end{figure}
% Furthermore, using the crowd tracker developed by \cite{jia2020dr}, the Lidar data was combined with cameras to obtain the position of people, which are represented by analytical obstacles. The application to a snapshot shows that the disparate data, a smooth, collision-free vector field can be obtained (Fig.~\ref{fig:comparsion_two_partial_algorithms}).
% \begin{figure}[t]\centering
% \begin{subfigure}{0.49\columnwidth}
% \centering
% \includegraphics[width=1.0\columnwidth]{figures/mixed_environment_both.png}
% \caption{Sampled data}
% \label{fig:sampled_data_comparison}
% \end{subfigure}%
% \begin{subfigure}{0.5\columnwidth} %
% \centering
% \includegraphics[width=1.0\columnwidth]{figures/mixed_environment_obstacle.png}
% \caption{Disparate data}
% \label{fig:disparate_data_comparison}
% \end{subfigure}
% \caption{The obstacle avoidance can be improved using analytical obstacle description (b), where an increased number of trajectories converge to the attractor (black star) compared to sampled data only (a).}
% \label{fig:comparsion_two_partial_algorithms}
% \end{figure}
%% \subsection{Static Indoor Navigation}
%% The first experiment is conducted in an indoor office.
%% The robot is controlled using sampled laser data only, as described in Sec.~\ref{sec:single_modulation}.
%% The operator was instructed to reach the other side of the room by giving the robot a constant control command and to \textit{ignore} the two people standing in the room (one puppet and one person).
%% During the runs, the robot modulates the nominal control command successfully and reaches the opposite side of the room collision-free, only based on sensor data (see Fig.~\ref{fig:schematic_drawing_qolo}).
%% \begin{figure}[t]
%% \centering
%% \includegraphics[width=0.6\columnwidth]{figures/schematic_drawing_qolo.png}
%% \caption{Four snapshots (a) - (d) of QOLO moving through the indoor environment with furniture and two static people. The nominal velocity $\vect v^N$ (blue arrow) is modulated using sampled data to obtain the modulated velocity $\dot \xi$ (turquoise arrow). A large effect of the modulation can be observed at (b) and (c) when the nominal velocity points towards the people. At (d), there is a change in magnitude as the modulation stops the robot from driving into the table. Conversely, at (a), the modulation does not influence the nominal velocity since the nominal velocity command was already safe.}
%% \label{fig:schematic_drawing_qolo}
%% \end{figure}
% \subsection{Evaluation Speed}
% Onboard Evaluation
% Laserscan: 20 Hz / 50 ms
% Evaluation (laserscan only - wihtout reference calculation) 0.25 ms / 4000 Hz
% Evaluation (laserscan incl. ref calculation): 0.4 ms
% Hip Control / Phone: ~20 Hz
% Odom / qolo position: ~150 Hz
% Laptop evaluation
% 8 Core - Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
% Evaluation: 36540 points / 0.951 ms
% \tempcolor{(TODO: Quick discussion of speed it takes to run the different elements)}
% \subsection{Laserscan Analysis}
%0.007000000216066837
% \begin{equation}
% d^{min} = r^{min} \tan{\delta}
%\end{equation}
\subsection{Outdoor Crowd Evaluation with QOLO} \label{eq:evaluation_qolo}
% Hardware [QOLO]
The experimental validation is performed with the semi-autonomous, standing wheelchair QOLO \cite{granados2018unpowered}. The nominal velocity $\vect v^N$ was obtained from the onboard operator.
The algorithm was implemented in \textit{Python} and evaluated on the onboard computer of QOLO (\textit{Intel(R) Atom(TM) Processor E3950 @ 1.60GHz}), taking \SI{0.4}{ms} to evaluate a scenario with over 1000 data points. Furthermore, the main control loop runs at \SI{100}{Hz}, with Lidar information being obtained at \SI{20}{Hz} and the pedestrian-tracker providing an update at a frequency of \SIrange{1}{5}{Hz} (depending on the number of tracked persons in close proximity). The operator control input was obtained at a frequency of \SI{20}{Hz}.
The wheelchair is non-holonomic with two rigid main wheels and two passive back wheels; its geometry is approximated with a circle of radius \SI{0.45}{m}. The circle's center $\xi$ is placed in front of the middle of the main wheels at a distance of $d^c=$~\SI{6.25e-2}{m}. This is the position where the dynamical system is also evaluated.
The modulated velocity $\dot \xi$ is split into a linear command $\dot{\xi}_l$ and angular command $\dot{\xi}_a$ by using the Jacobian $J^Q$:
\begin{equation}
\begin{bmatrix} \dot{\xi}_l \\ \dot{\xi}_a \end{bmatrix}
=
\left( J^Q \right)^{-1} \dot{\xi}
\qquad \text{with} \quad
J^Q = \begin{bmatrix} 1 & 0 \\0 & d^c \end{bmatrix}
\end{equation}
% Hardware [Sensors]
% Controller / Dynamics
% The algorithm is evaluated in an indoor and outdoor environment.
%subsection{Human Control Dynamical System}
% The control input is interpreted as the nominal dynamical system $\dot \xi$.
%\begin{equation}
% \dot{\xi} = \vect v^N_{t}
% The two-dimensional laser scan recording is at a fixed height \SI{30}{cm} above the floor. While the robot detects the lower legs of people, it does not have any information about their feet. % However, combining sampled and interpreted environment information allowed for creating a sufficiently large margin around the people and navigating collision-free.
% \subsection{Outdoor Crowd Analysis}
The qualitative evaluation with the robot was conducted in the city center of Lausanne, Switzerland.\footnote{Approval has been obtained from the EPFL ethics board and the city of Lausanne. The driver was on board the robot during the experiment and could interfere. Two experimenters watched the scene and verified the controller output.}
The chosen location is an intersection of six streets and is restricted to pedestrians. This results in a large diversity in pedestrian speeds and directions of movement. The operator was navigating with QOLO up and down the street along a transect with a distance of \SI{15}{meters} (Fig.~\ref{fig:qolo_in_lausanne}). During the experiments, the controller supported the operator while ensuring a collision-free motion.
% Obstacle Detection
%% During the experiments, a crowd tracker \cite{jia2020dr} was used to obtain the position and velocity of surrounding pedestrians. This was combined with the sampled data from the laser scan.
%% The disparate obstacles descriptions were fused as described in Section~\ref{sec:mixed_environments}.
%% During two runs, the influence of the modulation controller was recorded (see Fig.~\ref{fig:direction_laserscan}).
%% In the scenario with the laser scan only, the angle corrections are mostly below \SI{20}{\degree}. Hence, the modulation starts early and redirects the operator gradually to avoid any collision.\\
%% Conversely, in the mixed mode (see Fig.~\ref{fig:direction_laserscan_tracker}), the relative angular correction if often larger than \SI{45}{\degree}.
%% This hints at a more abrupt obstacle avoidance correction.
% \begin{figure}[tb]
% \centering
% \includegraphics[width=0.9\columnwidth]{figures/qolo_in_the_city}
% \caption{The operator on QOLO navigating in Lausanne}
% \label{fig:qolo_in_lausanne}
% \end{figure}
\begin{figure}[tb]
\begin{subfigure}{0.495\columnwidth} %
\centering
\includegraphics[trim={12cm 2cm 15cm 0}, clip, width=1.0\columnwidth]{figures/qolo_in_the_city}
\caption{QOLO in the city center}
\label{fig:qolo_with_david}
\end{subfigure} %
\begin{subfigure}{0.495\columnwidth} %
\centering
\includegraphics[trim={0 0.45cm 0cm 0}, clip, width=1.0\columnwidth]{figures/comparison_distance_control.png}
\caption{Shared control analysis}
\label{fig:comparison_distance_control}
\end{subfigure}
\caption{During the evaluation with the QOLO robot in Lausanne (a) the control contribution ensured that the closest distance to any pedestrian stayed above the save margin of \SI{0.45}{m} during six runs (b). The control contribution is the relative input of the controller, evaluated as $\Delta ^c = \| \dot{\xi} - \vect v^N \| / \| \vect v^N \|$. The closest distance $D^{\mathrm{min}}$ is the average distance of the ten closest Lidar measurements. The relation between the mean of the two measurements was observed to be $\Delta ^c = \exp{(10.0 - 6.3 D^{\mathrm{min}})}$.}
\label{fig:qolo_in_lausanne}
\end{figure}
%% \begin{figure}[tb]
%% \begin{subfigure}{1.0\columnwidth} %
%% \centering
%% \includegraphics[width=0.9\columnwidth]{figures/qolo_in_the_city}
%% \caption{The operator on QOLO navigating in Lausanne}
%% \label{fig:qolo_in_lausanne}
%% \end{subfigure} %
%% \begin{subfigure}{0.495\columnwidth} %
%% \centering
%% \includegraphics[width=0.8\columnwidth]{figures/bag_moduation_angle_2022-01-28-13-33-32}
%% \caption{Laserscan only}
%% \label{fig:direction_laserscan}
%% \end{subfigure} %
%% \begin{subfigure}{0.495\columnwidth} %
%% \centering
%% \includegraphics[width=0.8\columnwidth]{figures/bag_moduation_angle_2022-02-03-13-21-52}
%% \caption{Laserscan and tracker}
%% \label{fig:direction_laserscan_tracker}
%% \end{subfigure}
%% \caption{During the operation of the robot (a), the relative modulation evaluated as $ \vect{r}(\xi) \cdot \vect{n}(\xi)$ for an experimental run with laserscan only (b) and using the combined (analytic and discrete) environment (c).}
%% \label{fig:relative_direction}
%% \end{figure}
\section{Discussion}
This work presents a modulation-based approach for real-time obstacle avoidance based on dynamical systems. The proposed method excels in its speed and can be applied to sampled data, such as Lidar or laser scans combined with analytic obstacle descriptions.
We proved the absence of local minima in free space, and an agent controlled with our algorithm only stopped when directly driving towards obstacles. Furthermore, the method is scalable to higher dimensions.
Experimental validation was performed in simulation, static sensor data, and the standing wheelchair QOLO. It was shown that the algorithm avoids collisions while navigating in static and dynamic environments.
The evaluation with sampled sensor data showed that the algorithm could pass narrow doorways. %
Moreover, the algorithm had a short evaluation time onboard the robot.
% The operator of the wheelchair stated that the controller was \textit{intuitive to use}.
% [General Analysis]
% Furthermore, the experimental evaluation using the robot was successful:
%collisions were avoided with the shared-control setup for indoor and outdoor environments.
% Application to sensor data
% Lower computational cost
% TODO (?): Short comment / evaluation concerning speed perception
% Even though we observed that all trajectories (except the saddle point trajectories) converge to the attractor in experiments, we could only demonstrate the absence of local minima. A saddle point on the surface of an obstacle occurs when the robot is driving towards the reference point.
% Lidar limitations
% Due to a minimal measurement distance of the Lidar of \SI{47}{cm}, we were not able to test the algorithms with narrow doorways.
% Fast obstacle avoidance [Computational Speed]
% Mixed and asynchronous input
% Full Trust in Lidar and ODOM
% Height of Laserscan
% The behavior could be improved by additionally using the tracker and hence the mixed scenario since the tracker creates a circular obstacle of radius \SI{0.6}{m} for each detected person.
% This could have been fixed by using a more conservative margin around the robot, making the margin too large to pass doorways. \\
% \\
% In the experiments, it was observed that a higher angular correction occurs for the modulation with added crowd tracker compared to sampled sensor data only. This indicates that the tracker inputs new information, which leads to faster velocity correction.
% We attribute this to two causes. Firstly, the robot's localization was observed to jump in dense crowd situations. Since the analytic obstacles are described globally, they are primarily influenced by this.
% Moreover, the tracker gets overloaded in dense crowds, and the analytic obstacles are evaluated with a larger delay. This leads to large changes between the messages and hence a more abrupt modulation behavior.
% Lastly, the weighting of the summing of the different sensors can give too much importance to a specific sensor. \\
% Geometrical Representation of the Robot
% The current algorithm uses a simplified circle representation for the robot (see Fig.~\ref{fig:sensor_data_avoidance_flat}). The control point is placed above the front Lidar. This makes the circle cover the whole front of the robot, while no collision avoidance guarantee is made for the back part of the robot, e.g., the back wheels. This setup was sufficient for the experiments conducted in this work, as the robot mostly moved forwards, and there was enough space to navigate. \\
% The back of the robot could be included by using several control points as has been proposed in \cite{huber2021avoiding}. A specific circular margin could then be assigned to each point. Alternatively, a more complex geometrical shape (e.g., ellipse) could be used to encapsulate the whole robot geometry.
% Algorithms which output the exact robot position are never perfect. Similar to humans, new sensor reading might change the knowledge drastically and make its position \textit{jump}. The presented implementation of the obstacle algorithm evaluates the sensor reading in the local obstacle frame. Hence it is not affected by these updates. On the downside, this does not allow the controller to consider actual position updates. \\
% Conversely, the tracker outputs the position of obstacles (people) in the global frame of reference. Hence, the mixed obstacle avoidance algorithm is affected by abrupt position changes. \\
% Similarly, the current implementation of the tracker also transmits abrupt updates of people and their velocity.
\subsection{Future Work}
% Higher Dimensional Space (3D+)
Most theoretical development in this work is for multiple-dimensional collision avoidance. However, the implementation is on a mobile agent in crowds for navigation in two-dimensions. Future implementations will focus on exploiting the scalability to higher dimensions. Sampled data is obtained through distance sensors for two and three-dimensional cases. Conversely, in higher dimensional space, e.g., joint space, sampled data about the environment can be obtained through sampling in simulations \cite{mirrazavi2018unified, koptev2021real}.
%Future work will explore the application and performance of the presented algorithm in such environments.
% Quantitive comparison + Real-time adaptation of user study
% The presented work has focused on the theoretical development of the algorithm but also provided a proof-of-concept evaluation with a real robot in two scenarios.
The algorithm has been tested in a shared-controller setup. Future work will include a quantitative controller evaluation compared to existing algorithms in various crowd scenarios. Additionally, this will include several operators and see how different driving styles influence the overall behavior. Finally, we believe that quantitative data of the algorithm will enable the design of an intelligent shared-controller, which learns and adapts its behavior based on the operator and the environment, similar to \cite{li2011dynamic}.
% acceptance, ease of use, and comparing to existing algorithms
% The proposed algorithm entails several hyper-parameters which were currently manually chosen. We believe that different operators will have different preferences. An automatic approach to tuning or learning these parameters could drastically increase the acceptance of the algorithm by the user. Automated learning should be done in combination with a quantitative user study. \\
% Furthermore, the algorithm could adapt specific parameters depending on environmental and instantaneous driving conditions similar to \cite{li2011dynamic}.
%The magnitude of the velocity $\| \vect v^N\|$ can be a parameter: when moving fast, the avoidance should be active, whereas when moving slow, the operator does only need minor assistance. \\
%\section{Conclusion}
% This work presents a modulation-based approach for real-time obstacle avoidance based on dynamical systems. It excels in its speed and can be applied to sampled data, such as Lidar or laser scans and analytic obstacle descriptions. The approach comes with theoretical proofs and is scalable to higher dimensions. The implementation on a standing wheelchair has shown that the algorithm avoids collisions while navigating in static and dynamic environments with a short evaluation time.
% \tempcolor{TODO}
% TODO
% This work provides a new controller
% The dynamical system framework further allows to
% We believe that combining human intelligence with algorithmic avoidance in a closed loop is an important step to utilize robotic technology.
\section{Acknowledgement}
We want to thank David Gonon and Albéric de Lajarte for their support in running the experiments on QOLO.
\appendix
\subsection{Proof of Theorem 1} \label{sec:proof_theorem1}
As the eigenvalues $\lambda^e(\xi)$ are equal in all tangent directions $\vect e_i$, we only analyze the two-dimensional case. Generalization is the immediate result; see \cite{huber2019avoidance} for further elaboration.
\subsubsection{Absence of Local Minima in Free Space}
Les us first show that the dot-product is uniquely positive, and hence describes a (virtual) star shaped obstacle as defined in (\ref{eq:star_shape}),
\begin{align*}
\vect{r}(\xi)^T \hat{\vect{n}}(\xi)
= \vect{r}(\xi)^T (c^n \vect{r}(\xi) + {\vect n}^{\Delta}(\xi))
= c^n + \vect{r}(\xi)^T {\vect n}^{\Delta}(\xi)
\end{align*}
Further, from the star-shape constraint in (\ref{eq:star_shape}), we have $\|\vect n^{\Delta}(\xi)\| < \sqrt{2}$.
Consider the case when $\dotprod{\vect{r}(\xi)}{\vect n^{\Delta}(\xi)} / \|\vect n^{\Delta}(\xi)\| > -\sqrt{2}/2$:
\begin{equation*}
\vect{r}(\xi)^T \hat{\vect{n}}(\xi) = 1 + \vect{r}(\xi)^T {\vect n}^{\Delta}(\xi) \geq 1 - \|\vect n^{\Delta}(\xi)\| \sqrt{2}/2 > 0
\end{equation*}
For the case of $\dotprod{\vect{r}(\xi)}{\vect n^{\Delta}(\xi)} / \|\vect n^{\Delta}(\xi)\| \leq -\sqrt{2}/2$ we have:
\begin{align*}
\vect{r}(\xi)^T \hat{\vect{n}}(\xi)
& = - \sqrt{2} \vect{r}(\xi)^T {\vect n}^{\Delta} + \vect{r}(\xi)^T {\vect n}^{\Delta}(\xi) \\
& = (\sqrt{2} - 1 ) \left( - \vect{r}(\xi)^T {\vect n}^{\Delta}(\xi) \right) \\
& \geq (\sqrt{2} - 1) \|\vect n^{\Delta}(\xi)\| \sqrt{2}/2 > 0
\end{align*}
Hence, in both scenarios, the dot-product is positive.
% Hence for all $\xi$ the dot product is larger than zero, hence the vectors are linearly, and the normalized vector $\vect n(\xi)$, too.
%% \begin{equation}
%% a = 0
%% \end{equation}
% \subsubsection{Smooth Vector field}
% The normalization of $\hat{\vect{n}}(\xi)$ to obtain the final normal $\vect n(\xi)$. Since we have shown above that the dot product is strictly larger than zero (for any $\| \vect r(\xi) \|$ above zero), it follows that the norm is strictly larger than zero $\| \hat{\vect n}(\xi) \|$, i.e., there is no zero division to obtain $\hat{\vect{n}}(\xi)$.
\subsubsection{Saddle Point Only on the Obstacles' Surfaces}
The avoidance of multiple obstacles is defined as the modulation with respect to a single \textit{virtual} obstacle with boundary function $\hat{\Gamma}(\xi)$. As we approach an obstacle $i$, we have $\hat{\Gamma}(\xi) \rightarrow \Gamma_i(\xi)$ (see Sec.~\ref{sec:single_modulation_avoidance}). \\
From this, we can conclude that (1) since there is no minimum on the surface of the obstacle $i$, there are no minima for the virtual obstacle, and (2) as there is impenetrability of the obstacle $i$, any trajectory starting in free space $\mathcal{X}^e$ will remain in free space. For further information, see \cite{huber2019avoidance}.
Hence, full impenetrability and a minimum-free space follow.
${ }$ \hfill $\blacksquare$
\subsection{Proof of Theorem 2} \label{sec:proof_theorem2}
Analogously to the proof in Appendix~\ref{sec:proof_theorem1}, the two-dimensional analysis generalizes to higher dimensions.
\subsubsection{Continuously Defined Vector field}
% Let us assume a smooth input velocity $\vect{v}^I$.
% As the eigenvalues are smoothly defined. Hence the modulation matrix and the vector field are smooth (assuming a smooth input ).
% An operation which needs to be taken into special consideration is the normalization of $\hat{\vect r}(\xi)$ to obtain $\vect r(\xi)$. Since the normalization is not defined as $\vect r(\xi)$ reaches zero. \\
Special consideration has to be given to the case when $\hat{\vect r}(\xi) \rightarrow 0$, since the vector is normalized before being used in the modulation (\ref{eq:modulated_ds}).
For $\| \hat{\vect r}(\xi) \| = 0$, the final velocity is obtained as:
\begin{align*}
\dot \xi &= \matr E(\xi) \matr D(\xi, \vect v^N) \matr E(\xi) ^T \vect v^N \\
& = \matr E(\xi) \text{diag}\left(\lambda^r(\xi, \, \vect v^N \right) , \lambda^e(\xi)) \matr E(\xi) ^T \vect v^N \\
& = \matr E(\xi) \text{diag}\left( (1 + \sin(0)), \, \cos(0) \right) \matr E(\xi) ^T \vect v^N \\
& = \matr E(\xi) \, \matr I \, \matr E(\xi) ^T \vect v^N = \vect v^N
\end{align*}
Additionally, all variables are continuously defined; hence the modulation effect is low in the surrounding region, and the DS is continuously defined.
\subsubsection{Absence of Local Minima in Free Space}
The modulated DS from Eq.~(\ref{eq:modulated_ds}) has the same equilibrium points as the original system, if $\det \left( \matr M(\xi) \right) \neq 0$, see \cite{kronander2015incremental} for further information.
Since the basis matrix $\matr E(\xi)$ is orthonormal, the modulation matrix is only \textit{rank-deficient} if any of the eigenvalues are 0. From Eq.~(\ref{eq:eigenvalues_simples}), we know that the only trivial eigenvalues are at $\lambda^e(\xi) |_{\|\hat{\vect r}^p(\xi) \| \rightarrow \infty} = 0$ and $\lambda^r(\xi) |_{\|\hat{\vect r}^p(\xi)\| = 1} = 0$.
%Hence, from (\ref{eq:eigenvalues_simples}) we have the trivial eigenvalues at: $\lambda^e(\|\hat{\vect r}(\xi) \| \rightarrow \infty) = 1$ and $\lambda^r(\|\hat{\vect r}(\xi)\| = 1) = 0$.\\
It is hence sufficient to limit the magnitude of the reference direction as $\| \hat{\vect r}^p(\xi) \| < 1$. Let us analyze the \textit{maximum repulsive environment} as drawn in Fig.~\ref{fig:repulsive_gap}), i.e., where the distance to the surface $D_i^p$ in one half-plane is $D^{\mathrm{gap}}$, and infinite in the other half-plane:
\begin{equation*}
D_i^p =
\begin{cases}
D^{\mathrm{gap}} & \text{if} \;\; \left(\hat{\vect r}^p\right)^T \cdot \xi_i^p < 0 \\
\infty & \text{otherwise}
\end{cases}
\end{equation*}
For this scene, the magnitude of the reference direction is evaluated as:
\begin{align*}
\| \hat{\vect r}^p (\xi) \|
& \leq \sum_{i = 0}^{N/2} \frac{D^{\mathrm{scal}}}{D^{\mathrm{gap}}} w^{\mathrm{sum}}\sin(i \delta)
\approx w^{\mathrm{sum}} \frac{D^{\mathrm{scal}}}{D^{\mathrm{gap}}} \int_0^{\pi / \delta} \sin(\phi \delta) \, d\phi \\
& = w^{\mathrm{sum}} \frac{D^{\mathrm{scal}}}{D^{\mathrm{gap}}} \frac{2}{\delta} \leq w^{\mathrm{norm}} \frac{D^{\mathrm{scal}}}{D^{\mathrm{gap}}} \frac{2}{\delta}
\end{align*}
The approximation of the finite sum as an integral holds for a small sampling angle $\delta$ and many sample points, as is the case for most scanners.
By choosing $w^{\mathrm{norm}} = (D^{\mathrm{gap}} \delta) / (2 D^{\mathrm{scal}})$, the modulated DS does not vanish further than $D^{\mathrm{gap}}$ away from any obstacle.
% Note, to ensure that an agent can pass a door, it needs to have a width of $2(r^{\mathrm{robo}} + d^{\mathrm{gap}})$.
\subsubsection{Impenetrability}
%Let us assume that we are about to collide with an obstacle. In a $d$-dimensional space, there will be a maximum of $d$ laser scan points which will dominate the calculation of the normal $\hat{\vect n}^p(\xi) $, since their corresponding distance to the robot $d_i \rightarrow 0$ and hence their weight $\hat w^p_i \rightarrow \infty$.
% The largest angle between the reference vector and the surface normal is given as: $ \hat{\vect r}(\xi) \cdot \vect{n}(\xi) = \delta / 2 \ll 1$.\footnote{Already at $\| \hat{\vect r}(\xi) \| = 1$, we have $\text{arccos} \left( \dot{\xi} \cdot \vect{r}(\xi) \right) \geq 0$, hence if $\vect{n}(\xi) \cdot \vect{r}(\xi) \rightarrow 1$, the Neuman Boundary condition is fulfilled.}
%% \begin{align*}
%% \langle \vect{e}(\xi), \; \dot{\xi} \rangle
%% & = \vect{e}(\xi) ^T \, \matr E(\xi) \text{diag}\left(\lambda^r(\xi), \; \lambda^e(\xi) \right) \matr E(\xi)^T \vect v^N \\
%% & = \vect{e}(\xi) ^T \left[\vect r(\xi) \; \vect e (\xi) \right] \text{diag}\left(\lambda^r(\xi), \; 0 \right) \matr E(\xi)^T \vect v^N \\
%% & = \vect{e}(\xi) ^T \left[\lambda^r(\xi) \vect r(\xi) \; \vect 0 \right] \matr E(\xi)^T \vect v^N
%% = 0
%% \end{align*}
Let us observe the modulated velocity $\dot{\xi}$ as we approach the surface, i.e., $\exists i \, : D_i^p \rightarrow 0$ (see Fig.~\ref{fig:sensor_data_avoidance_flat}), it follows that $\| \vect{\hat r}^p(\xi) \| \rightarrow \infty$ and hence $\lambda^e(\xi) = 2 \sin \left( \pi / (2 \| \hat{\vect r}^p(\xi) \|) \right) = 0$. With this, we can rewrite the modulated velocity as
\begin{align*}
\dot{\xi}
& = \matr E(\xi) \text{diag}\left(\lambda^r(\xi), \; \lambda^e(\xi) \right) \matr E(\xi)^T \vect v^N \\
& =\left[\vect r(\xi) \; \vect e (\xi) \right] \text{diag}\left(\lambda^r(\xi), \; 0 \right) \left[\vect r(\xi) \; \vect e (\xi) \right]^T \vect v^N \\
& = \lambda^r(\xi) \left[\vect r(\xi) \; \vect 0 \right] \text{diag}(1, \; 0) \left[\vect r(\xi) \; \vect 0 \right]^T \vect v^N \\
& = \lambda^r(\xi) \left( \vect r(\xi)^T \cdot \vect v^N \right) \vect r(\xi)
\end{align*}
Furthermore, from (\ref{eq:eigenvalues_simples}) we have
\begin{equation}
\lambda^r(\xi, \vect v^N)
\begin{cases}
> 0 & \text{if} \; \dotprod{\vect r(\xi)}{\vect v^N} > 0 \\
\leq 0 & \text{otherwise}
\end{cases} \label{eq:lambda_r_limits}
\end{equation}
Consequently, the Neuman boundary condition holds true:
\begin{align*}
\vect n(\xi)^T \, \dot{\xi} &= \vect n(\xi)^T \, \left( \lambda^r) \dotprod{\vect r(\xi)}{\vect v^N} \vect r(\xi) \right) \\
& \geq
\underbrace{\text{arccos}\left(\delta / 2\right)}_{\approx 1, \; \text{since} \; \delta \ll 1} \underbrace{
\lambda^r \dotprod{\vect r(\xi)}{\vect v^N}}_{\geq 0, \;\text{from} \; (\ref{eq:lambda_r_limits})} \geq 0
\end{align*}
As a result, we have a smooth vector field with no local minima away from the obstacles and proven impenetrability.
${ }$ \hfill $\blacksquare$
\begin{figure}[t]\centering
\begin{subfigure}{0.32\columnwidth} %
\centering
\includegraphics[width=1.0\columnwidth]{figures/gap_distance.png}
\caption{Repulsive gap}
\label{fig:repulsive_gap}
\end{subfigure} %
\hfill
\begin{subfigure}{0.32\columnwidth}
\centering
\includegraphics[width=1.0\columnwidth]{figures/small_obstacles.png}
\caption{Small obstacles}
\label{fig:small_obstacles}
\end{subfigure}%
\hfill
\begin{subfigure}{0.32\columnwidth}
\centering
\includegraphics[width=1.0\columnwidth]{figures/concave_region.png}
\caption{Concave regions}
\label{fig:concave_region}
\end{subfigure}
\caption{Multiple extreme environments for the sensor reading.}
\label{fig:extreme_sensor_situations}
\end{figure}
\subsection{Practical Considerations} \label{sec:practical_considrations}
\subsubsection{Small Obstacles}
The discrete sampling of a laser scan might miss the closest point of an obstacle, i.e., an edge of an obstacle (see Fig.~\ref{fig:small_obstacles}). A small margin can be added to the obstacle to account for this:
\begin{equation*}
R^{\mathrm{marg}} / R^{\mathrm{robo}} = \sin(\delta / 2) / \tan( \phi^{\min} / 2 ) + (1 - \cos(\delta / 2) )
\end{equation*}
Note that the first summand comes from the obstacle's corner and the second summand is the contribution of the agent's curvature. A good choice for the minimum obstacle angles is $\phi^{\min} =$ \SI{45}{\degree}. \\
Additionally, any obstacle with its robot to obstacle curvature radius ratio of
$R^{\mathrm{obs}} / R^{\mathrm{robo}} > \sin (\delta / 2) / \cos (\phi^{\mathrm{min}} / 2)$
is avoided safely, too (see Fig.~\ref{fig:small_obstacles}).
% Note that, already for a two-dimensional environment with a thousand laser points and $\phi^{\mathrm{min}}$ the radius would be so small that the obstacle could maximal be detected by two laser points. It will not be detected in such situations due to sensor inaccuracies.
% => [sin(2*pi/1000 /2) / cos(90/2) * 2 / sin(2*pi/1000)]
\subsubsection{Concave Regions}
When approaching a concave region, as in Fig.~\ref{fig:concave_region}, the algorithm is not aware that the resulting normal is obtained from multiple distinct walls. \\
Nevertheless, under the assumption that the distance to both walls is close to zero and that we obtain approximately the same weight from both walls, the resulting reference direction $\hat{\vect r}(\xi)$ points opposite the corner and has a large magnitude. It follows from (\ref{eq:eigenvalues_simples}), that the modulated DS will be pointing along the reference direction, i.e. $ \dot{\xi}^T \cdot \hat{\vect r}(\xi) / (\| \dot{\xi} \| \, \| \hat{\vect r}(\xi) \|) \rightarrow 1$. Hence we have to ensure collision avoidance.
% This command serves to balance the column lengths
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \renewcommand{\bibfont}
\renewcommand*{\bibfont}{\small}
\printbibliography
% \renewcommand{\bibfont}
% \bibliographystyle{plain}
% \begin{thebibliography}{99}
% \bibitem{feder1997real} H. J. S. Feder and J.-J. Slotine, “Real-time path planning using harmonic potentials in dynamic environments,” in Robotics and Automation, 1997. Proceedings., 1997 IEEE International Conference on, IEEE, vol. 1, 1997, pp. 874–881.
% \end{thebibliography}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
% $ biblatex auxiliary file $
% $ biblatex bbl format version 3.1 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{ver@biblatex.sty}
{\@latex@error
{Missing 'biblatex' package}
{The bibliography requires the 'biblatex' package.}
\aftergroup\endinput}
{}
\endgroup
\refsection{0}
\datalist[entry]{none/global//global/global}
\entry{borenstein1991vector}{article}{}
\true{moreauthor}
\true{morelabelname}
\name{author}{2}{}{%
{{hash=cc5340eb24a0e02e50a9a7f16f22c1d5}{%
family={Borenstein},
familyi={B\bibinitperiod},
given={Johann},
giveni={J\bibinitperiod}}}%
{{hash=5a1fa1814a312ce304ee2f2957996a66}{%
family={Koren},
familyi={K\bibinitperiod},
given={Yoram},
giveni={Y\bibinitperiod}}}%
}
\strng{namehash}{4ee4f86b806e248abd985bb645958ef4}
\strng{fullhash}{4ee4f86b806e248abd985bb645958ef4}
\strng{bibnamehash}{4ee4f86b806e248abd985bb645958ef4}
\strng{authorbibnamehash}{4ee4f86b806e248abd985bb645958ef4}
\strng{authornamehash}{4ee4f86b806e248abd985bb645958ef4}
\strng{authorfullhash}{4ee4f86b806e248abd985bb645958ef4}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE transactions on robotics and automation}
\field{number}{3}
\field{title}{The vector field histogram-fast obstacle avoidance for mobile robots}
\field{volume}{7}
\field{year}{1991}
\field{pages}{278\bibrangedash 288}
\range{pages}{11}
\endentry
\entry{levine1999navchair}{article}{}
\name{author}{6}{}{%
{{hash=8f657eb75801338702cac1a0496bdc38}{%
family={Levine},
familyi={L\bibinitperiod},
given={Simon\bibnamedelima P},
giveni={S\bibinitperiod\bibinitdelim P\bibinitperiod}}}%
{{hash=9497412497db0f70e2b1875f183a7073}{%
family={Bell},
familyi={B\bibinitperiod},
given={David\bibnamedelima A},
giveni={D\bibinitperiod\bibinitdelim A\bibinitperiod}}}%
{{hash=c4c19beb333fa98821b35ae67fcbc9af}{%
family={Jaros},
familyi={J\bibinitperiod},
given={Lincoln\bibnamedelima A},
giveni={L\bibinitperiod\bibinitdelim A\bibinitperiod}}}%
{{hash=ed81203ea91e68a671e79b000f101189}{%
family={Simpson},
familyi={S\bibinitperiod},
given={Richard\bibnamedelima C},
giveni={R\bibinitperiod\bibinitdelim C\bibinitperiod}}}%
{{hash=5a1fa1814a312ce304ee2f2957996a66}{%
family={Koren},
familyi={K\bibinitperiod},
given={Yoram},
giveni={Y\bibinitperiod}}}%
{{hash=cc5340eb24a0e02e50a9a7f16f22c1d5}{%
family={Borenstein},
familyi={B\bibinitperiod},
given={Johann},
giveni={J\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{c8388c5d4d66099483229478fedb62ec}
\strng{fullhash}{83c0d664bdbdcbb4cdf83ff037a4a37e}
\strng{bibnamehash}{83c0d664bdbdcbb4cdf83ff037a4a37e}
\strng{authorbibnamehash}{83c0d664bdbdcbb4cdf83ff037a4a37e}
\strng{authornamehash}{c8388c5d4d66099483229478fedb62ec}
\strng{authorfullhash}{83c0d664bdbdcbb4cdf83ff037a4a37e}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE transactions on rehabilitation engineering}
\field{number}{4}
\field{title}{The NavChair assistive wheelchair navigation system}
\field{volume}{7}
\field{year}{1999}
\field{pages}{443\bibrangedash 451}
\range{pages}{9}
\endentry
\entry{li2011dynamic}{inproceedings}{}
\name{author}{3}{}{%
{{hash=1770f00c5f2ccd5c8b10d68dba7f9510}{%
family={Li},
familyi={L\bibinitperiod},
given={Qinan},
giveni={Q\bibinitperiod}}}%
{{hash=b3df0c73254c736fb2a9b9f47f721807}{%
family={Chen},
familyi={C\bibinitperiod},
given={Weidong},
giveni={W\bibinitperiod}}}%
{{hash=7a88c54d4900b6996218124d6ca9b91b}{%
family={Wang},
familyi={W\bibinitperiod},
given={Jingchuan},
giveni={J\bibinitperiod}}}%
}
\list{organization}{1}{%
{IEEE}%
}
\strng{namehash}{9448987c0684cd74c4ed81b1a630adee}
\strng{fullhash}{9448987c0684cd74c4ed81b1a630adee}
\strng{bibnamehash}{9448987c0684cd74c4ed81b1a630adee}
\strng{authorbibnamehash}{9448987c0684cd74c4ed81b1a630adee}
\strng{authornamehash}{9448987c0684cd74c4ed81b1a630adee}
\strng{authorfullhash}{9448987c0684cd74c4ed81b1a630adee}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{booktitle}{2011 IEEE International Conference on Robotics and Automation}
\field{title}{Dynamic shared control for human-wheelchair cooperation}
\field{year}{2011}
\field{pages}{4278\bibrangedash 4283}
\range{pages}{6}
\endentry
\entry{mirrazavi2018unified}{article}{}
\name{author}{3}{}{%
{{hash=f2aeae1dcc714b58da544344cb9ab610}{%
family={Mirrazavi\bibnamedelima Salehian},
familyi={M\bibinitperiod\bibinitdelim S\bibinitperiod},
given={Seyed\bibnamedelima Sina},
giveni={S\bibinitperiod\bibinitdelim S\bibinitperiod}}}%
{{hash=e0e7d32ef3a3c11385c44ce34e53e2a6}{%
family={Figueroa},
familyi={F\bibinitperiod},
given={Nadia},
giveni={N\bibinitperiod}}}%
{{hash=3cd4f444d840eee2580ddf886f20b1c8}{%
family={Billard},
familyi={B\bibinitperiod},
given={Aude},
giveni={A\bibinitperiod}}}%
}
\list{publisher}{1}{%
{SAGE Publications Sage UK: London, England}%
}
\strng{namehash}{9e5ea3aef6c189787744117d5ca1a6f3}
\strng{fullhash}{9e5ea3aef6c189787744117d5ca1a6f3}
\strng{bibnamehash}{9e5ea3aef6c189787744117d5ca1a6f3}
\strng{authorbibnamehash}{9e5ea3aef6c189787744117d5ca1a6f3}
\strng{authornamehash}{9e5ea3aef6c189787744117d5ca1a6f3}
\strng{authorfullhash}{9e5ea3aef6c189787744117d5ca1a6f3}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{The International Journal of Robotics Research}
\field{number}{10}
\field{title}{A unified framework for coordinated multi-arm motion planning}
\field{volume}{37}
\field{year}{2018}
\field{pages}{1205\bibrangedash 1232}
\range{pages}{28}
\endentry
\entry{koptev2021real}{article}{}
\name{author}{3}{}{%
{{hash=6e16b6aa94b8011ae43d115bd5082df3}{%
family={Koptev},
familyi={K\bibinitperiod},
given={Mikhail},
giveni={M\bibinitperiod}}}%
{{hash=e0e7d32ef3a3c11385c44ce34e53e2a6}{%
family={Figueroa},
familyi={F\bibinitperiod},
given={Nadia},
giveni={N\bibinitperiod}}}%
{{hash=3cd4f444d840eee2580ddf886f20b1c8}{%
family={Billard},
familyi={B\bibinitperiod},
given={Aude},
giveni={A\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{569ec12eedf45a5bfe3d52466a713288}
\strng{fullhash}{569ec12eedf45a5bfe3d52466a713288}
\strng{bibnamehash}{569ec12eedf45a5bfe3d52466a713288}
\strng{authorbibnamehash}{569ec12eedf45a5bfe3d52466a713288}
\strng{authornamehash}{569ec12eedf45a5bfe3d52466a713288}
\strng{authorfullhash}{569ec12eedf45a5bfe3d52466a713288}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Robotics and Automation Letters}
\field{number}{2}
\field{title}{Real-Time Self-Collision Avoidance in Joint Space for Humanoid Robots}
\field{volume}{6}
\field{year}{2021}
\field{pages}{1240\bibrangedash 1247}
\range{pages}{8}
\endentry
\entry{fiorini1998motion}{article}{}
\name{author}{2}{}{%
{{hash=e41bbb58c8dff1effdd2d6ded2741418}{%
family={Fiorini},
familyi={F\bibinitperiod},
given={Paolo},
giveni={P\bibinitperiod}}}%
{{hash=ab289ac499c1cbbc384425d5b111c78f}{%
family={Shiller},
familyi={S\bibinitperiod},
given={Zvi},
giveni={Z\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Sage Publications Sage CA: Thousand Oaks, CA}%
}
\strng{namehash}{5430f072e1fe88a5a6cc74c4c397c76c}
\strng{fullhash}{5430f072e1fe88a5a6cc74c4c397c76c}
\strng{bibnamehash}{5430f072e1fe88a5a6cc74c4c397c76c}
\strng{authorbibnamehash}{5430f072e1fe88a5a6cc74c4c397c76c}
\strng{authornamehash}{5430f072e1fe88a5a6cc74c4c397c76c}
\strng{authorfullhash}{5430f072e1fe88a5a6cc74c4c397c76c}
\field{sortinit}{4}
\field{sortinithash}{e071e0bcb44634fab398d68ad04e69f4}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{The International Journal of Robotics Research}
\field{number}{7}
\field{title}{Motion planning in dynamic environments using velocity obstacles}
\field{volume}{17}
\field{year}{1998}
\field{pages}{760\bibrangedash 772}
\range{pages}{13}
\endentry
\entry{wilkie2009generalized}{inproceedings}{}
\name{author}{3}{}{%
{{hash=ce3c579298bc1ff3475df9a920e52789}{%
family={Wilkie},
familyi={W\bibinitperiod},
given={David},
giveni={D\bibinitperiod}}}%
{{hash=3876829ed1260bb32d84788f836f36a1}{%
family={Van\bibnamedelimb Den\bibnamedelima Berg},
familyi={V\bibinitperiod\bibinitdelim D\bibinitperiod\bibinitdelim B\bibinitperiod},
given={Jur},
giveni={J\bibinitperiod}}}%
{{hash=d350899843e74c7cb6f945d48def0dfa}{%
family={Manocha},
familyi={M\bibinitperiod},
given={Dinesh},
giveni={D\bibinitperiod}}}%
}
\list{organization}{1}{%
{IEEE}%
}
\strng{namehash}{8797f5c4d818f961c56553d47d301cfc}
\strng{fullhash}{8797f5c4d818f961c56553d47d301cfc}
\strng{bibnamehash}{8797f5c4d818f961c56553d47d301cfc}
\strng{authorbibnamehash}{8797f5c4d818f961c56553d47d301cfc}
\strng{authornamehash}{8797f5c4d818f961c56553d47d301cfc}
\strng{authorfullhash}{8797f5c4d818f961c56553d47d301cfc}
\field{sortinit}{4}
\field{sortinithash}{e071e0bcb44634fab398d68ad04e69f4}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{booktitle}{2009 IEEE/RSJ International Conference on Intelligent Robots and Systems}
\field{title}{Generalized velocity obstacles}
\field{year}{2009}
\field{pages}{5573\bibrangedash 5578}
\range{pages}{6}
\endentry
\entry{kufoalor2018proactive}{inproceedings}{}
\name{author}{3}{}{%
{{hash=8873a781244efff3f1c850ed9a0b8962}{%
family={Kufoalor},
familyi={K\bibinitperiod},
given={D\bibnamedelima Kwame\bibnamedelima Minde},
giveni={D\bibinitperiod\bibinitdelim K\bibinitperiod\bibinitdelim M\bibinitperiod}}}%
{{hash=cbf9a68607dc162a2e1c4b989e0d34af}{%
family={Brekke},
familyi={B\bibinitperiod},
given={Edmund\bibnamedelima F{ø}rland},
giveni={E\bibinitperiod\bibinitdelim F\bibinitperiod}}}%
{{hash=dd7a219bd351f8768b82145983ef6c86}{%
family={Johansen},
familyi={J\bibinitperiod},
given={Tor\bibnamedelima Arne},
giveni={T\bibinitperiod\bibinitdelim A\bibinitperiod}}}%
}
\list{organization}{1}{%
{IEEE}%
}
\strng{namehash}{c161d1ba9d8b2b11f0f3b996d73c04ef}
\strng{fullhash}{c161d1ba9d8b2b11f0f3b996d73c04ef}
\strng{bibnamehash}{c161d1ba9d8b2b11f0f3b996d73c04ef}
\strng{authorbibnamehash}{c161d1ba9d8b2b11f0f3b996d73c04ef}
\strng{authornamehash}{c161d1ba9d8b2b11f0f3b996d73c04ef}
\strng{authorfullhash}{c161d1ba9d8b2b11f0f3b996d73c04ef}
\field{sortinit}{4}
\field{sortinithash}{e071e0bcb44634fab398d68ad04e69f4}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{booktitle}{2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}
\field{title}{Proactive collision avoidance for ASVs using a dynamic reciprocal velocity obstacles method}
\field{year}{2018}
\field{pages}{2402\bibrangedash 2409}
\range{pages}{8}
\endentry
\entry{prassler2001robotics}{article}{}
\name{author}{3}{}{%
{{hash=b778acb1c938d83e04a484fa1563f359}{%
family={Prassler},
familyi={P\bibinitperiod},
given={Erwin},
giveni={E\bibinitperiod}}}%
{{hash=5a17b9164e0ebdc28af0273a9055fa35}{%
family={Scholz},
familyi={S\bibinitperiod},
given={Jens},
giveni={J\bibinitperiod}}}%
{{hash=e41bbb58c8dff1effdd2d6ded2741418}{%
family={Fiorini},
familyi={F\bibinitperiod},
given={Paolo},
giveni={P\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{e49e69fac2e6eed9c94440ee1fe3d988}
\strng{fullhash}{e49e69fac2e6eed9c94440ee1fe3d988}
\strng{bibnamehash}{e49e69fac2e6eed9c94440ee1fe3d988}
\strng{authorbibnamehash}{e49e69fac2e6eed9c94440ee1fe3d988}
\strng{authornamehash}{e49e69fac2e6eed9c94440ee1fe3d988}
\strng{authorfullhash}{e49e69fac2e6eed9c94440ee1fe3d988}
\field{sortinit}{5}
\field{sortinithash}{5dd416adbafacc8226114bc0202d5fdd}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Robotics \& Automation Magazine}
\field{number}{1}
\field{title}{A robotics wheelchair for crowded public environment}
\field{volume}{8}
\field{year}{2001}
\field{pages}{38\bibrangedash 45}
\range{pages}{8}
\endentry
\entry{bardaro2018mpc}{article}{}
\name{author}{6}{}{%
{{hash=b73dd42a322159e85c7e51218f54f870}{%
family={Bardaro},
familyi={B\bibinitperiod},
given={Gianluca},
giveni={G\bibinitperiod}}}%
{{hash=5444d35f078f7cb87f38d18e8c08d02a}{%
family={Bascetta},
familyi={B\bibinitperiod},
given={Luca},
giveni={L\bibinitperiod}}}%
{{hash=af618989a45c056a5d969a7b6a8fe921}{%
family={Ceravolo},
familyi={C\bibinitperiod},
given={Eugenio},
giveni={E\bibinitperiod}}}%
{{hash=716e9ff4ffa3dd73151aba7d1c7a0ffb}{%
family={Farina},
familyi={F\bibinitperiod},
given={Marcello},
giveni={M\bibinitperiod}}}%
{{hash=0b3136ef3594f4bb891a5f57fe54c35e}{%
family={Gabellone},
familyi={G\bibinitperiod},
given={Mauro},
giveni={M\bibinitperiod}}}%
{{hash=9c17d48288f42137d6e435152af76171}{%
family={Matteucci},
familyi={M\bibinitperiod},
given={Matteo},
giveni={M\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Elsevier}%
}
\strng{namehash}{54218d359fa56f5da36a035d83ccbe7c}
\strng{fullhash}{19bca81b9e0f21fcd1ec4a65400049c0}
\strng{bibnamehash}{19bca81b9e0f21fcd1ec4a65400049c0}
\strng{authorbibnamehash}{19bca81b9e0f21fcd1ec4a65400049c0}
\strng{authornamehash}{54218d359fa56f5da36a035d83ccbe7c}
\strng{authorfullhash}{19bca81b9e0f21fcd1ec4a65400049c0}
\field{sortinit}{6}
\field{sortinithash}{7851c86048328b027313775d8fbd2131}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{Control Engineering Practice}
\field{title}{MPC-based control architecture of an autonomous wheelchair for indoor environments}
\field{volume}{78}
\field{year}{2018}
\field{pages}{160\bibrangedash 174}
\range{pages}{15}
\endentry
\entry{gonon2021reactive}{article}{}
\name{author}{3}{}{%
{{hash=50cde07869adc7048e82bb706b2b0eb7}{%
family={Gonon},
familyi={G\bibinitperiod},
given={David\bibnamedelima J},
giveni={D\bibinitperiod\bibinitdelim J\bibinitperiod}}}%
{{hash=7a52f6b34a8ff9fdd903f52508434144}{%
family={Paez-Granados},
familyi={P\bibinithyphendelim G\bibinitperiod},
given={Diego},
giveni={D\bibinitperiod}}}%
{{hash=3cd4f444d840eee2580ddf886f20b1c8}{%
family={Billard},
familyi={B\bibinitperiod},
given={Aude},
giveni={A\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{6ddb397063e86ca201c5f90833a9e208}
\strng{fullhash}{6ddb397063e86ca201c5f90833a9e208}
\strng{bibnamehash}{6ddb397063e86ca201c5f90833a9e208}
\strng{authorbibnamehash}{6ddb397063e86ca201c5f90833a9e208}
\strng{authornamehash}{6ddb397063e86ca201c5f90833a9e208}
\strng{authorfullhash}{6ddb397063e86ca201c5f90833a9e208}
\field{sortinit}{7}
\field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Robotics and Automation Letters}
\field{number}{3}
\field{title}{Reactive Navigation in Crowds for Non-Holonomic Robots With Convex Bounding Shape}
\field{volume}{6}
\field{year}{2021}
\field{pages}{4728\bibrangedash 4735}
\range{pages}{8}
\endentry
\entry{ames2014control}{inproceedings}{}
\name{author}{3}{}{%
{{hash=26ca3c454a548ddf7d6f1d59d368af6f}{%
family={Ames},
familyi={A\bibinitperiod},
given={Aaron\bibnamedelima D},
giveni={A\bibinitperiod\bibinitdelim D\bibinitperiod}}}%
{{hash=2fcf3934c7e637e477fc91d2b1118999}{%
family={Grizzle},
familyi={G\bibinitperiod},
given={Jessy\bibnamedelima W},
giveni={J\bibinitperiod\bibinitdelim W\bibinitperiod}}}%
{{hash=fa077b33d45928296923ab6a3c97f740}{%
family={Tabuada},
familyi={T\bibinitperiod},
given={Paulo},
giveni={P\bibinitperiod}}}%
}
\list{organization}{1}{%
{IEEE}%
}
\strng{namehash}{65cd810d8ab4ab9751289ad4ccbc4c0e}
\strng{fullhash}{65cd810d8ab4ab9751289ad4ccbc4c0e}
\strng{bibnamehash}{65cd810d8ab4ab9751289ad4ccbc4c0e}
\strng{authorbibnamehash}{65cd810d8ab4ab9751289ad4ccbc4c0e}
\strng{authornamehash}{65cd810d8ab4ab9751289ad4ccbc4c0e}
\strng{authorfullhash}{65cd810d8ab4ab9751289ad4ccbc4c0e}
\field{sortinit}{8}
\field{sortinithash}{1b24cab5087933ef0826a7cd3b99e994}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{booktitle}{53rd IEEE Conference on Decision and Control}
\field{title}{Control barrier function based quadratic programs with application to adaptive cruise control}
\field{year}{2014}
\field{pages}{6271\bibrangedash 6278}
\range{pages}{8}
\endentry
\entry{reis2020control}{article}{}
\name{author}{3}{}{%
{{hash=d004a842019e812a9c6828a2cd9232fe}{%
family={Reis},
familyi={R\bibinitperiod},
given={Matheus\bibnamedelima F},
giveni={M\bibinitperiod\bibinitdelim F\bibinitperiod}}}%
{{hash=fda7b2ea21f4da2d873463c51e92ac55}{%
family={Aguiar},
familyi={A\bibinitperiod},
given={A\bibnamedelima Pedro},
giveni={A\bibinitperiod\bibinitdelim P\bibinitperiod}}}%
{{hash=fa077b33d45928296923ab6a3c97f740}{%
family={Tabuada},
familyi={T\bibinitperiod},
given={Paulo},
giveni={P\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{734989e53928859f59155e06aade2098}
\strng{fullhash}{734989e53928859f59155e06aade2098}
\strng{bibnamehash}{734989e53928859f59155e06aade2098}
\strng{authorbibnamehash}{734989e53928859f59155e06aade2098}
\strng{authornamehash}{734989e53928859f59155e06aade2098}
\strng{authorfullhash}{734989e53928859f59155e06aade2098}
\field{sortinit}{9}
\field{sortinithash}{54047ffb55bdefa0694bbd554c1b11a0}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Control Systems Letters}
\field{number}{2}
\field{title}{Control barrier function-based quadratic programs introduce undesirable asymptotically stable equilibria}
\field{volume}{5}
\field{year}{2020}
\field{pages}{731\bibrangedash 736}
\range{pages}{6}
\endentry
\entry{khatib1986real}{article}{}
\name{author}{1}{}{%
{{hash=a1ed48939870abd896792330bc735967}{%
family={Khatib},
familyi={K\bibinitperiod},
given={Oussama},
giveni={O\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Sage Publications Sage CA: Thousand Oaks, CA}%
}
\strng{namehash}{a1ed48939870abd896792330bc735967}
\strng{fullhash}{a1ed48939870abd896792330bc735967}
\strng{bibnamehash}{a1ed48939870abd896792330bc735967}
\strng{authorbibnamehash}{a1ed48939870abd896792330bc735967}
\strng{authornamehash}{a1ed48939870abd896792330bc735967}
\strng{authorfullhash}{a1ed48939870abd896792330bc735967}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{The international journal of robotics research}
\field{number}{1}
\field{title}{Real-time obstacle avoidance for manipulators and mobile robots}
\field{volume}{5}
\field{year}{1986}
\field{pages}{90\bibrangedash 98}
\range{pages}{9}
\endentry
\entry{rimon1992exact}{article}{}
\name{author}{2}{}{%
{{hash=d299f9f30e569ef3068990db2c64589f}{%
family={Rimon},
familyi={R\bibinitperiod},
given={Elon},
giveni={E\bibinitperiod}}}%
{{hash=d8a4f4bd8ff47ecd0039e2c4508bb07b}{%
family={Koditschek},
familyi={K\bibinitperiod},
given={Daniel\bibnamedelima E},
giveni={D\bibinitperiod\bibinitdelim E\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{c5eedd459c995599e630faa854546531}
\strng{fullhash}{c5eedd459c995599e630faa854546531}
\strng{bibnamehash}{c5eedd459c995599e630faa854546531}
\strng{authorbibnamehash}{c5eedd459c995599e630faa854546531}
\strng{authornamehash}{c5eedd459c995599e630faa854546531}
\strng{authorfullhash}{c5eedd459c995599e630faa854546531}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Transactions on robotics and automation}
\field{number}{5}
\field{title}{Exact robot navigation using artificial potential functions}
\field{volume}{8}
\field{year}{1992}
\field{pages}{501\bibrangedash 518}
\range{pages}{18}
\endentry
\entry{zhang2019distributed}{article}{}
\name{author}{6}{}{%
{{hash=0840fe5a511c9e0cfe29ae42a7d21a31}{%
family={Zhang},
familyi={Z\bibinitperiod},
given={Liwei},
giveni={L\bibinitperiod}}}%
{{hash=fcd6114a30fda9801eef65b9d374f56b}{%
family={Wang},
familyi={W\bibinitperiod},
given={Jie},
giveni={J\bibinitperiod}}}%
{{hash=ce57e278bb5b1e07ba610c3aa4e1612d}{%
family={Lin},
familyi={L\bibinitperiod},
given={Zhibin},
giveni={Z\bibinitperiod}}}%
{{hash=2ab51ad750cbba15e5768a5b4bd38103}{%
family={Lin},
familyi={L\bibinitperiod},
given={Lixiong},
giveni={L\bibinitperiod}}}%
{{hash=970cf9e2e84483e036c82cc46937be6c}{%
family={Chen},
familyi={C\bibinitperiod},
given={Yanjie},
giveni={Y\bibinitperiod}}}%
{{hash=dc4acfa95329a46ce1f9bb4d3a5e9345}{%
family={He},
familyi={H\bibinitperiod},
given={Bingwei},
giveni={B\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Springer}%
}
\strng{namehash}{10cdc036da2ad348e54447a847dc1496}
\strng{fullhash}{c167c3a9e714a97a69c15d54d7903c85}
\strng{bibnamehash}{c167c3a9e714a97a69c15d54d7903c85}
\strng{authorbibnamehash}{c167c3a9e714a97a69c15d54d7903c85}
\strng{authornamehash}{10cdc036da2ad348e54447a847dc1496}
\strng{authorfullhash}{c167c3a9e714a97a69c15d54d7903c85}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{Journal of Intelligent \& Robotic Systems}
\field{title}{Distributed Cooperative Obstacle Avoidance for Mobile Robots Using Independent Virtual Center Points}
\field{year}{2019}
\field{pages}{1\bibrangedash 15}
\range{pages}{15}
\endentry
\entry{loizou2022mobile}{article}{}
\name{author}{2}{}{%
{{hash=6013bbebdba376d09ffdee869348964f}{%
family={Loizou},
familyi={L\bibinitperiod},
given={Savvas},
giveni={S\bibinitperiod}}}%
{{hash=d299f9f30e569ef3068990db2c64589f}{%
family={Rimon},
familyi={R\bibinitperiod},
given={Elon},
giveni={E\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{6f3d9e079abf1b2d886247b0e26d6621}
\strng{fullhash}{6f3d9e079abf1b2d886247b0e26d6621}
\strng{bibnamehash}{6f3d9e079abf1b2d886247b0e26d6621}
\strng{authorbibnamehash}{6f3d9e079abf1b2d886247b0e26d6621}
\strng{authornamehash}{6f3d9e079abf1b2d886247b0e26d6621}
\strng{authorfullhash}{6f3d9e079abf1b2d886247b0e26d6621}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Robotics and Automation Letters}
\field{title}{Mobile Robot Navigation Functions Tuned by Sensor Readings in Partially Known Environments}
\field{year}{2022}
\endentry
\entry{feder1997real}{inproceedings}{}
\name{author}{2}{}{%
{{hash=50e94209a46d8ca277f06167e445dc06}{%
family={Feder},
familyi={F\bibinitperiod},
given={Hans\bibnamedelimb Jacob\bibnamedelima S},
giveni={H\bibinitperiod\bibinitdelim J\bibinitperiod\bibinitdelim S\bibinitperiod}}}%
{{hash=ca625b2dc2c9110cbe11f1a4f82f8d56}{%
family={Slotine},
familyi={S\bibinitperiod},
given={J-JE},
giveni={J\bibinithyphendelim J\bibinitperiod}}}%
}
\list{organization}{1}{%
{IEEE}%
}
\strng{namehash}{453ff7f02616dedb1fffc4eb38907332}
\strng{fullhash}{453ff7f02616dedb1fffc4eb38907332}
\strng{bibnamehash}{453ff7f02616dedb1fffc4eb38907332}
\strng{authorbibnamehash}{453ff7f02616dedb1fffc4eb38907332}
\strng{authornamehash}{453ff7f02616dedb1fffc4eb38907332}
\strng{authorfullhash}{453ff7f02616dedb1fffc4eb38907332}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{booktitle}{Robotics and Automation, 1997. Proceedings., 1997 IEEE International Conference on}
\field{title}{Real-time path planning using harmonic potentials in dynamic environments}
\field{volume}{1}
\field{year}{1997}
\field{pages}{874\bibrangedash 881}
\range{pages}{8}
\endentry
\entry{khansari2012dynamical}{article}{}
\name{author}{2}{}{%
{{hash=593fbf343b24b75c288d74f267d88428}{%
family={Khansari-Zadeh},
familyi={K\bibinithyphendelim Z\bibinitperiod},
given={Seyed\bibnamedelima Mohammad},
giveni={S\bibinitperiod\bibinitdelim M\bibinitperiod}}}%
{{hash=3cd4f444d840eee2580ddf886f20b1c8}{%
family={Billard},
familyi={B\bibinitperiod},
given={Aude},
giveni={A\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Springer}%
}
\strng{namehash}{c477ca19f463267d71a37d200baa708f}
\strng{fullhash}{c477ca19f463267d71a37d200baa708f}
\strng{bibnamehash}{c477ca19f463267d71a37d200baa708f}
\strng{authorbibnamehash}{c477ca19f463267d71a37d200baa708f}
\strng{authornamehash}{c477ca19f463267d71a37d200baa708f}
\strng{authorfullhash}{c477ca19f463267d71a37d200baa708f}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{Autonomous Robots}
\field{number}{4}
\field{title}{A dynamical system approach to realtime obstacle avoidance}
\field{volume}{32}
\field{year}{2012}
\field{pages}{433\bibrangedash 454}
\range{pages}{22}
\endentry
\entry{huber2019avoidance}{article}{}
\name{author}{3}{}{%
{{hash=4b8b672c1588344939661005650a2c51}{%
family={Huber},
familyi={H\bibinitperiod},
given={Lukas},
giveni={L\bibinitperiod}}}%
{{hash=3cd4f444d840eee2580ddf886f20b1c8}{%
family={Billard},
familyi={B\bibinitperiod},
given={Aude},
giveni={A\bibinitperiod}}}%
{{hash=54b9721d8a3f8acbe240876d7920cee2}{%
family={Slotine},
familyi={S\bibinitperiod},
given={Jean-Jacques},
giveni={J\bibinithyphendelim J\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{9d07e3f7e4a7eb4a5803264b0c65119e}
\strng{fullhash}{9d07e3f7e4a7eb4a5803264b0c65119e}
\strng{bibnamehash}{9d07e3f7e4a7eb4a5803264b0c65119e}
\strng{authorbibnamehash}{9d07e3f7e4a7eb4a5803264b0c65119e}
\strng{authornamehash}{9d07e3f7e4a7eb4a5803264b0c65119e}
\strng{authorfullhash}{9d07e3f7e4a7eb4a5803264b0c65119e}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Robotics and Automation Letters}
\field{number}{2}
\field{title}{Avoidance of convex and concave obstacles with convergence ensured through contraction}
\field{volume}{4}
\field{year}{2019}
\field{pages}{1462\bibrangedash 1469}
\range{pages}{8}
\endentry
\entry{huber2021avoiding}{article}{}
\name{author}{3}{}{%
{{hash=4b8b672c1588344939661005650a2c51}{%
family={Huber},
familyi={H\bibinitperiod},
given={Lukas},
giveni={L\bibinitperiod}}}%
{{hash=54b9721d8a3f8acbe240876d7920cee2}{%
family={Slotine},
familyi={S\bibinitperiod},
given={Jean-Jacques},
giveni={J\bibinithyphendelim J\bibinitperiod}}}%
{{hash=3cd4f444d840eee2580ddf886f20b1c8}{%
family={Billard},
familyi={B\bibinitperiod},
given={Aude},
giveni={A\bibinitperiod}}}%
}
\list{publisher}{1}{%
{IEEE}%
}
\strng{namehash}{227103058611386eb79146464a2a0e0f}
\strng{fullhash}{227103058611386eb79146464a2a0e0f}
\strng{bibnamehash}{227103058611386eb79146464a2a0e0f}
\strng{authorbibnamehash}{227103058611386eb79146464a2a0e0f}
\strng{authornamehash}{227103058611386eb79146464a2a0e0f}
\strng{authorfullhash}{227103058611386eb79146464a2a0e0f}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{IEEE Transactions on Robotics}
\field{title}{Avoiding Dense and Dynamic Obstacles in Enclosed Spaces: Application to Moving in Crowds}
\field{year}{2022}
\endentry
\entry{granados2018unpowered}{inproceedings}{}
\name{author}{3}{}{%
{{hash=c4f3027292ff05957b671cdc2d72fe83}{%
family={Granados},
familyi={G\bibinitperiod},
given={Diego\bibnamedelimb Felipe\bibnamedelima Paez},
giveni={D\bibinitperiod\bibinitdelim F\bibinitperiod\bibinitdelim P\bibinitperiod}}}%
{{hash=bd38363ab60297f065b7961acfe49062}{%
family={Kadone},
familyi={K\bibinitperiod},
given={Hideki},
giveni={H\bibinitperiod}}}%
{{hash=bfefbf3b827bbdebc3f660587233b2e8}{%
family={Suzuki},
familyi={S\bibinitperiod},
given={Kenji},
giveni={K\bibinitperiod}}}%
}
\list{organization}{1}{%
{IEEE}%
}
\strng{namehash}{652b551b7f46ed3ea68c66b575c87e29}
\strng{fullhash}{652b551b7f46ed3ea68c66b575c87e29}
\strng{bibnamehash}{652b551b7f46ed3ea68c66b575c87e29}
\strng{authorbibnamehash}{652b551b7f46ed3ea68c66b575c87e29}
\strng{authornamehash}{652b551b7f46ed3ea68c66b575c87e29}
\strng{authorfullhash}{652b551b7f46ed3ea68c66b575c87e29}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{booktitle}{2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}
\field{title}{Unpowered Lower-Body Exoskeleton with Torso Lifting Mechanism for Supporting Sit-to-Stand Transitions}
\field{year}{2018}
\field{pages}{2755\bibrangedash 2761}
\range{pages}{7}
\endentry
\entry{kronander2015incremental}{article}{}
\name{author}{3}{}{%
{{hash=9b92584246f72253827724596b9e2405}{%
family={Kronander},
familyi={K\bibinitperiod},
given={Klas},
giveni={K\bibinitperiod}}}%
{{hash=122397c022cf734ea467d2901944f138}{%
family={Khansari},
familyi={K\bibinitperiod},
given={Mohammad},
giveni={M\bibinitperiod}}}%
{{hash=3cd4f444d840eee2580ddf886f20b1c8}{%
family={Billard},
familyi={B\bibinitperiod},
given={Aude},
giveni={A\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Elsevier}%
}
\strng{namehash}{6070c89e896fdae72d666539fd6f76e1}
\strng{fullhash}{6070c89e896fdae72d666539fd6f76e1}
\strng{bibnamehash}{6070c89e896fdae72d666539fd6f76e1}
\strng{authorbibnamehash}{6070c89e896fdae72d666539fd6f76e1}
\strng{authornamehash}{6070c89e896fdae72d666539fd6f76e1}
\strng{authorfullhash}{6070c89e896fdae72d666539fd6f76e1}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{journaltitle}{Robotics and Autonomous Systems}
\field{title}{Incremental motion learning with locally modulated dynamical systems}
\field{volume}{70}
\field{year}{2015}
\field{pages}{52\bibrangedash 62}
\range{pages}{11}
\endentry
\enddatalist
\endrefsection
\endinput