text:
\section{INTRODUCTION}

Robot localization is a fundamental topic in any mobile robot
application. Recent advances in robot hardware and software have boosted the
opportunity and demand for multi-robot systems for their inherent benefits,
such as high efficiency and robustness.

With a monocular camera and low-cost inertial measurement units, Visual
Inertial Odometry (VIO) is accepted as the minimal sensor configuration for
single robot state estimation and navigation considering size, wight, power and cost \cite{delmerico_benchmark_2018}.
Recent technical advances
\cite{lupton_preintegration_2012, forster_manifold_2017, qin_vinsmono_2018}
make VIO more and more robust and stable in many conditions. However, the
drift caused by accumulated error is still hard to control without loop
closures. Although loop closure is a natural part for SLAM system, the
requirements to close the loop rely much on the trajectory and
environment. For example, generating high-quality closures requires revisiting
the same location with a similar viewpoint. Furthermore, perception outliers
caused by illumination, self-similar environments, etc. are challenging for
loop closure.

In this paper, we use single extra sensor, a static ultra-wideband (UWB)
anchor, to improve the performance of robot localization. UWB technology has
attracted a lot of attention recent years for its accurate ranging performance
and long-distance support.  For example, the latest Apple IPhone at the time
of writing is equipped with a UWB chip (actually, it includes all sensors
needed in this paper).  Most available UWB systems
(e.g.~\cite{noauthor_loco_nodate}) use several (at least four for 3D and
three for 2D) calibrated anchors as a Global Positioning System (GPS) for
specific areas. This type of infrastructure is not applicable for the
exploration in unknown environments, which is one of the primary objectives of
SLAM. Therefore, we design our system to rely only on one anchor, which can be
dropped off at any moment by a robot during its mission. Our experiments show
this one anchor can improve the localization accuracy significantly.

\begin{figure}[h]
\begin{center}
\includegraphics[trim=0cm 0.2cm 1.2cm 0.3cm,clip, width=0.37\textwidth,center]{figures/multirobotexp.pdf}
\caption{ Two robots are manually controlled independently.
  The first robot with
  a Realsense T265 and an UWB module draws an "M"  in its own
  coordinate frame. The other robot, carrying a Realsense D435, a UWB module and
  a Pixracer flight controller, draws "IST" in its frame.
  One static UWB anchor is placed in the environment (the blue triangle shown in Robot1 frame). Their
  trajectories are shown at the bottom.  With two inter-robot communications and measurements,
  robot 1 can estimate the transformation matrix from robot 2, and then map robot
  2's trajectory in its own frame as the top picture shows, forming "MIST"
  (our lab).}
\label{fig:multirobotExp}
\end{center}
\end{figure}

This setup has another significant benefit for multi-robot SLAM. Multi-robot
SLAM is a promising field, but much more challenging. One issue is the
estimation of the transformation matrix between
robots~\cite{saeedi_multi_2016}. Most available works rely on common features
to extract the relative pose of robots, which is a type of inter-robot loop
closure, which leads to similar constraints as single robot loop closures.  An
additional challenge for inter-robot loop closure is the need to exchange the
information required for loop closure among all robots, which can be
significant.

In our system, we can solve this challenge using the UWB sensor. When any two
robots move into their respective UWB ranging radius, they can exchange their
mutual ranging and anchor information

and they can estimate their respective coordinate systems
transformations. Having the transformation matrix, a robot can correctly
project all the information from its neighbors onto its own frame. This
solution greatly simplifies multi-robot SLAM, minimizing the need for
inter-robot loop closure, which requires the exchange of feature databases,
the identification of loop closures and distributed pose graph optimization.

The last but not least reason for choosing UWB is its inherent advantage in
data association. When a range measurement is received, the identity of the
sender is recognized without extra effort, which can be of great assistance
for multi-robot systems. Moreover, UWB can provide low bandwidth communication
while ranging. For example, the state estimation of poses can be carried by
UWB packets while performing ranging. In the future, we believe a
monocular camera, inertial measurement units (IMU), and UWB will be a standard
minimal configuration for multi-robot systems.

\section{RELATED WORK}

\subsubsection{Single Robot SLAM with Visual, Inertial and Ranging Measurements}

SLAM has been the subject of intense research for more than thirty
years~\cite{cadena_slam_2016}. Monocular
visual-inertial odometry is a popular choice as it provides good state
estimation performance with a minimal sensor configuration. Although
state-of-the-art VIO algorithms (e.g. SVO \cite{forster_manifold_2017},
VINS-Mono~\cite{qin_vinsmono_2018}, DSO~\cite{ engel_direct_2018}) can reach
very high accuracy in relative translation and orientation, the accumulated
drift can still be an issue: any small orientation error can lead to large
end-point error. Our system leverages UWB ranging measurements to correct the
accumulated error. We developed our system based on
VINS-Mono~\cite{qin_vinsmono_2018}, which is a robust and versatile state
estimator which uses a sliding window tightly-coupled nonlinear optimization
for visual and IMU measurements.

UWB technology, as a localization solution on its own, has attracted a lot of
attention in recent years both in research and industry for its decimeter
localization accuracy. However, most results are based on a well-calibrated
multi-anchor setup~\cite{prorok_accurate_2014,mueller_fusing_2015,
  fang_graph_2018, tiemann_enhanced_2018}, which is not applicable for
navigation in unexplored, unstructured environments.  Wang et
al.~\cite{wang_ultra-wideband_2017} propose a system using camera, IMU and UWB
to bypass the complexity of loop closure. However, they still use multiple
pre-configured UWB anchors. Their UWB module provides coarse drift-free global
position and VIO identifies the local trajectory. On the contrary, in this
paper we use only one anchor, placed in an unspecified location.  Shi et
al.\cite{shi_visual-uwb_nodate} have a similar spirit to ours. They
start with one UWB anchor and keep dropping anchors from a moving
robot. Unfortunately, their experimental results are available only in
simulation for one sequence of the EuRoC dataset~\cite{burri_euroc_2016}, with
five simulated anchors. In our work, we focus on the use of a single anchor
setup. We design a double layer sliding window algorithm, which effectively
fuses accurate VIO and range constraints along the trajectory.

\subsubsection{Multi-Robot SLAM}

Multi-robot SLAM has gained recent attention for the increased viability and
accessibility of multi-robot systems. Saeedi et
al.\cite{saeedi_multiple-robot_2016} give a comprehensive review of
multi-robot SLAM and points out one key issue: relative pose estimation. Most
current multi-robot SLAM systems solve this issue by analyzing inter-robot
loop closures, either in centralized~\cite{schmuck_ccm-slam_2019} or
distributed~\cite{choudhary_distributed_2017, mangelson_pairwise_2018}
fashion. The distributed approach is more robust, but it is harder to
implement in practice: robots need to exchange map data to get the feature
database for future loop closures, and distributed optimization
usually requires additional communication and computation.

Ranging measurements can assist in relative pose estimation. Trawny et
al.\cite{trawny_3d_nodate} provide theoretical proofs and simulations that
show how six range measurements can be used to get the transformation matrix
between two robots. Martel et al.\cite{martel_unique_2019} extend the work and
adapt it to 4DOF relative pose estimation with a UWB setup, and use it for
merging maps for VR applications. Both methods use range measurements over
long trajectories. In our solution, robots can estimate the transformation
matrix as soon as they can get two measurements from their neighbors, which
meets the requirement of real-time transformation estimation during robot
rendezvous. These two methods~\cite{trawny_3d_nodate, martel_unique_2019}
represent a good solution when no common anchor is present and can be combined
with inter-robot loop closures to improve the transformation results.

In practice, most works in literature have explored the combination of
multiple UWB anchors with vision and/or IMU. In this paper, we focus on the
use of a single anchor in an arbitrary location, which is trivial to deploy as
a beacon in real exploration tasks. We propose a double layer sliding window
technique to combine VIO with UWB ranging, which produces drift-free state
estimation by leveraging VIO for its accurate short time relative pose
estimation, and range constraints for longer trajectories. Moreover, recorded
anchor ranges can help robots find the transformation matrix
efficiently with only two range measurements in multi-robot settings. Our
contributions can be summarized as:
\begin{itemize}
\item an UWB-aided SLAM system for single robots which outperforms state-of-the-art VIO;
\item a double layer sliding window algorithm that combined relative pose
  estimation from VIO and UWB ranging constrains;
\item an efficient method to estimate the transformation matrix between multiple robots.
\end{itemize}

\section{SYSTEM DESIGN}

In this section, we explain the preliminaries and symbols used in this
paper. We then detail the formulation of our ranging-aided visual inertial
SLAM, focusing on the cost factors of the optimization problem. Finally, we
introduce our solution for the estimation of the transformation matrix between
robots.

\begin{figure}
\begin{center}
\includegraphics[width=0.8\columnwidth]{figures/trajProcess.pdf}
\caption{Illustration of the scenario of VIR-SLAM, with a single anchor
  setup. Measurements from sensors are shown with different lines. Robot poses
  with the camera and IMU measurements belong to the short sliding window. All
  poses associated with UWB ranging to the anchor are kept for the long
  sliding window.}
\label{fig:problem}
\end{center}
\end{figure}

\subsection{Single Robot Estimation Preliminaries}

We assume a robot carries three kinds of sensors (a monocular camera, an IMU
and UWB module), and moves in a 3D environment, as shown in
Fig.~\ref{fig:problem}. An UWB anchor is placed in the environment with an
unknown initial position. We define the world frame of the robot $i$ as
$[\;\;]^{{iw}}$, which is usually aligned with the first camera frame when the
robot starts its mission. The position of the anchor is expressed in the robot
world frame, denoted by $\mathbf{P}_A^{iw}$. We use $[\;\;]^{ib}$ to indicate
the body frame of robot $i$, and similarly $[\;\;]^{ic}$ for the camera
frame. Note that we do not define the UWB sensor frame because it is a scalar
measurement. The UWB ranging measurement is transferred to body frame by
considering the 3D offset of the UWB antenna in the body frame.

Classical VIO proposes an optimization formulation of states over
a sliding window with size $n$ as:
\begin{align}
\mathcal{X} &= [\mathbf{x}_0,\mathbf{x}_1,\dots,\mathbf{x}_n,l_0, l_1, \dots, l_m] \label{equ:classicalState}\\
\mathbf{x}_k &= [
\mathbf{p}_{b_k}^{iw}, \mathbf{v}_{b_k}^{iw}, \mathbf{q}_{b_k}^{iw}, \mathbf{b}_{a_k}^{ib}, \mathbf{b}_{w_k}^{ib}] \;\;\; \;\;\;\;k\in[0,n] \nonumber
\end{align}
which includes the state $\mathbf{x}$ for all $n$ frames and the visual
feature inverse depth $l$. The $k$th frame state $\mathbf{x}_k$ includes the
position $\mathbf{p}_{b_k}^{iw}$, velocity $\mathbf{v}_{b_k}^{iw}$, and
orientation in quaternions $\mathbf{q}_{b_k}^{iw}$ for robot $i$ in its world
frame, plus accelerometer bias $\mathbf{b}_{a_k}^{ib}$ and gyroscope bias
$\mathbf{b}_{w_k}^{ib}$ in its body frame.  $l_i$ is the inverse depth of the
$i$th feature among $m$ features from the visual observations over the sliding
window. If the sliding window includes all the camera frames since the start
of the mission, the optimization becomes a full smoothing estimation. Although
full smoothing offers the best accuracy, it is not scalable in reality, so we
use a key frame approach that discards similar frames while not losing
tracking. However, as the trajectory becomes longer, the size of state keeps
growing. For this reason, we fix the size of key frames and marginalize older
key frames into a prior factor in the optimization. The drift from visual
inertial odometry is still hard to avoid, and pose graph optimization with
loop closure becomes the only chance to correct the accumulating error.

Aiming at an accurate localization system and avoiding all rely on loop
closure, we design a SLAM system that uses a novel double layer sliding window
structure, with an implementation based on VINS-Mono~\cite{qin_vinsmono_2018}.

\subsection{Double Layer Tightly Coupled VIR Optimization}

We propose a double layer sliding window tightly coupled SLAM optimization by
considering following aspects: high accuracy relative pose estimation from
VIO, less accurate but absolute UWB measurements, and the computation cost for
these factors.

We design two sliding windows involving three kinds of variables, shown in
Equ.~\ref{equ:states}. A short window $\Psi$, the same as the classical visual
SLAM sliding window with size $n$ from Equ.\ref{equ:classicalState}. The
variables in this window include $\mathbf{x}_k$ (Equ.~\ref{equ:shortwindow})
and $[l_0, l_1, \dots, l_m]$, which have same meaning as the variables in
Equ.~\ref{equ:classicalState}. The novelty in our system lies in the addition
of another long sliding window $\Omega$, which carries state $\mathbf{w}_t$,
as shown in Equ. \ref{equ:longwindow}. The size of the long slide window is
$s$, which is much larger than $n$. The state in this window only contains the
robot position $\mathbf{p}_{b}^{iw}$ in robot world frame.
\begin{align}
\mathcal{X} &= [\mathbf{w}_0,\mathbf{w}_1,\dots,\mathbf{w}_s,\mathbf{x}_0,\mathbf{x}_1,\dots,\mathbf{x}_n,l_0, l_1, \dots, l_m] \label{equ:states}\\
\mathbf{x}_k &= [
\mathbf{p}_{b_k}^{iw}, \mathbf{v}_{b_k}^{iw}, \mathbf{q}_{b_k}^{iw}, \mathbf{b}_{a_k}^{ib}, \mathbf{b}_{w_k}^{ib}] \;\;\;\;\;\;\;\;\;\;\;\;\;k\in \Psi[0,n] \label{equ:shortwindow}\\
\mathbf{w}_t &= [
\mathbf{p}_{b_t}^{iw}]\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \;\; t\in \Omega[0,s] \label{equ:longwindow}
\end{align}
Fig.\ref{fig:factorgraph} shows the factor graph of our system, corresponding
to the scenario of Fig.~\ref{fig:problem}. The short window area in gray
includes the state from the camera and IMU measurements. The long window area in
orange contains the state from the UWB measurements. Following the state
definition, we formulate a full nonlinear optimization problem as:
\begin{figure}
\begin{center}
\includegraphics[width=0.45\textwidth,center]{figures/posegraph.pdf}
\caption{Factor graph for the scenario in Fig. \ref{fig:problem}. The factor
  graph includes poses, UWB factor, IMU factors and visual factors. The edges
  are the error. We have a UWB factor for the poses with range
  measurements. Further, smooth edges (curves) are added between
  poses.}
\label{fig:factorgraph}
\end{center}
\end{figure}

\begin{align}
\min _{\mathcal{X}}&
\Bigr\{
\underbrace{
\sum_{t \in\Omega}
{\rho(\|\mathbf{r}_{\mathcal{U}}(\hat{\mathbf{z}_t},\mathcal{X})\|}_{\mathbf{P}_{b_t}^{iw}})
}_{UWB\; factor}
+
\underbrace{
\sum_{k \in \Psi}\|\mathbf{r}_{\mathcal{B}}(\hat{\mathbf{z}}_{b_{k+1}}^{b_{k}}, \mathcal{X})\|_{\mathbf{P}_{b_{k+1}}^{b_{k}}}^{2}
}_{IMU\; factor}
\nonumber \\&
+
\underbrace{
\sum_{(l, j) \in \mathcal{C}} \rho(\|\mathbf{r}_{\mathcal{C}}(\hat{\mathbf{z}}_{l}^{c_{j}}, \mathcal{X})\|_{\mathbf{P}_{l}^{c_{j}}}^{2})
}_{Vision\; factor}
\Bigr\} \label{equ:optimization}
\end{align}

This nonlinear optimization problem considers three factors, corresponding to
the UWB factor, the IMU factor, and the vision factor. The UWB residuals are
calculated for the long window $\Omega$, while IMU and visual residuals for
the short window $\Psi$.

\subsubsection{UWB Factor}

UWB localization uses different protocols: time of arrival (TOA), time
difference of arrival (TDoA), and two-way ranging (TWR). In our system, we use
TWR, which measures the distances between two transceivers by sending a packet
back and forth. Although the number of nodes supported is limited because of
the shared UWB communication medium, TWR can be used without device
synchronization, which makes the protocol widely used. Since we are not
considering hundreds of robot communicating simultaneously, we choose TWR to
avoid synchronization, which can be difficult to implement in distributed
multi-robot applications.
We model the ranging measurement of UWB modules as:
\[\label{uwb_model}
{\hat{d}} = {d} + {b}_{d} + {e}
\]
where ${\hat{d}}$ is the UWB measurement, ${d}$ is true distance, ${b}_{d}$ is
distance based bias, and ${e}$ is the error following a Gaussian distribution
${N}(0,\,\sigma^{2})$. Note that the ${b}_{d}$ can be calibrated with a Gaussian
process model beforehand by collecting data with ground truth. Then the model
can be simplified as:
\[\label{uwb_model1}
{\hat{d}} = {d} + {e}
\]
With this simplified UWB model, we define the UWB factor in
Equ.~\ref{equ:optimization} as:
\begin{align}
\mathbf{r}_{\mathcal{U}}(\hat{\mathbf{z}}_t,\mathcal{X}) =
\underbrace{
\gamma_r\cdot\rho( \|\mathbf{p}_{b_t}^{iw}-\mathbf{P}_A^{iw}\|-{\hat{d}}_t)}_{UWB\; ranging \; residual}
\nonumber\\
+
\underbrace{
\gamma_s\cdot(
\sum_{j\in(t,t+s]}
\{\mathbf{p}_{b_j}^{iw}-\mathbf{p}_{b_t}^{iw}\}-\widetilde{\mathbf{z}}_{b_{t}}^{b_{j}})
}_{Relative \; transformation \; residual}
\end{align}
The UWB factor above includes two residuals: a ranging measurement residual
and a virtual relative transformation measurement residual. $\gamma_r$ and
$\gamma_s$ are the weights for these two residuals. ${\hat{d}}_t$ are
the UWB ranging measurements, which are compared with the predicted ranging
from the robot body frame $t$ to the anchor $\mathbf{P}_A^{iw}$ in the world frame. To
avoid the ranging factor excessively affecting the optimizer and breaking the
relative pose property from visual-inertial estimation, we introduce a virtual
relative transformation measurement $\widetilde{\mathbf{z}}_{b_{t}}^{b_{j}}$
between frames $t$ and $j\in(t,t+s]$, which is extracted from the short sliding
window estimation result. We select $s=3$ in our experiments
to create two consecutive links between poses, as can be seen for example with $x_{p7}$ in
Fig.~\ref{fig:factorgraph}.  $\rho()$ is a pseudo-Huber loss function
defined as $\rho(q)=\delta^{2}(\sqrt{1+(q / \delta)^{2}}-1)$.

\subsubsection{IMU factor}

IMU measurements are critical for monocular visual odometry. As the frequency
of the IMU is usually higher than the camera image frame rate, the IMU
measurements are preintegrated between two consecutive image
frames~\cite{lupton_preintegration_2012}. By referring to the last body frame
motion, this technique avoid repeated IMU reintegration and reduces
computation during optimization. Forster et al.~\cite{forster_manifold_2017}
extend this approach to manifold structures of the rotation group
$\mathfrak So3$ for higher accuracy and robustness. We follow the same method
as~\cite{qin_vinsmono_2018} in quaternion form.

The preintegrated IMU measurements between two consecutive frames of $b_k$ and
$b_{k+1}$ referring to frame $b_k$ can be expressed as:
\begin{align*}
\boldsymbol{\alpha}_{b_{k+1}}^{b_{k}}&=\iint_{t \in\left[t_{k}, t_{k+1}\right]} \mathbf{R}_{t}^{b_{k}}\left(\hat{\mathbf{a}}_{t}-\mathbf{b}_{a_{t}}\right) d t^{2}\\
\boldsymbol{\beta}_{b_{k+1}}^{b_{k}}&=\int_{t \in\left[t_{k}, t_{k+1}\right]} \mathbf{R}_{t}^{b_{k}}\left(\hat{\mathbf{a}}_{t}-\mathbf{b}_{a_{t}}\right) d t \\
\boldsymbol{\gamma}_{b_{k+1}}^{b_{k}}&=\int_{t \in\left[t_{k}, t_{k+1}\right]} \frac{1}{2} \mathbf{\Omega}\left(\hat{\boldsymbol{\omega}}_{t}-\mathbf{b}_{w_{t}}\right) \gamma_{t}^{b_{k}} d t
\end{align*}
where
\[
\mathbf{\Omega}(\boldsymbol{\omega})=\left[\begin{array}{cc}
{-\lfloor\boldsymbol{\omega}\rfloor_{\times}} & {\boldsymbol{\omega}} \\
{-\boldsymbol{\omega}^{T}} & {0}
\end{array}\right],\lfloor\boldsymbol{\omega}\rfloor_{\times}=\left[\begin{array}{ccc}
{0} & {-\omega_{z}} & {\omega_{y}} \\
{\omega_{z}} & {0} & {-\omega_{x}} \\
{-\omega_{y}} & {\omega_{x}} & {0}
\end{array}\right]
\]
$\hat{\mathbf{a}}_t$ and $\hat{\boldsymbol{\omega}}_t$ are the accelerometer
and gyroscope measurement vectors, respectively. These three formulas
correspond to relative the motion changes of position, velocity and orientation
to the local body frame of $b_k$.

The IMU factor is the residual between predicted motion and the preintegrated
results referring to the body frame:
\[
\mathbf{r}_{\mathcal{B}}\left(\hat{\mathbf{z}}_{b_{k+1}}^{b_{k}}, \mathcal{X}\right)=\left[\begin{array}{c}{\delta \boldsymbol{\alpha}_{b_{k+1}}^{b_{k}}} \\ {\delta \boldsymbol{\beta}_{b_{k+1}}^{b_{k}}} \\ {\delta \boldsymbol{\theta}_{b_{k+1}}^{b_{k}}} \\ {\delta \mathbf{b}_{a}} \\ {\delta \mathbf{b}_{g}}\end{array}\right]
=\left[\begin{array}{c}
{
\mathbf{p}^{b_k} - \hat{\boldsymbol{\alpha}}_{b_{k+1}}^{b_{k}}}\\
\mathbf{v}^{b_k} - \hat{\boldsymbol{\beta}}_{b_{k+1}}^{b_{k}}\\
\boldsymbol{\theta}^{b_k} \otimes(\hat{\boldsymbol{\gamma}}_{b_{k+1}}^{b_{k}})^{-1}\\
{\mathbf{b}_w^{b_{k+1}}-\mathbf{b}_w^{b_{k}}}\\
{\mathbf{b}_a^{b_{k+1}}-\mathbf{b}_a^{b_{k}}}
\end{array} \right]
\]
where
$ \mathbf{p}^{b_k} =
{\mathbf{R}_{w}^{b_{k}}\left(\mathbf{p}_{b_{k+1}}^{w}-\mathbf{p}_{b_{k}}^{w}+\frac{1}{2}
    \mathbf{g}^{w} \Delta t_{k}^{2}-\mathbf{v}_{b_{k}}^{w} \Delta
    t_{k}\right)}$ ,
$ \mathbf{v}^{b_k}
=\mathbf{R}_{w}^{b_{k}}\left(\mathbf{v}_{b_{k+1}}^{w}+\mathbf{g}^{w} \Delta
  t_{k}-\mathbf{v}_{b_{k}}^{w}\right) $ and
$\boldsymbol{\theta}^{b_k} = \mathbf{q}^{b_{k}}_{w} \otimes
\mathbf{q}_{b_{k+1}}^{w} $ are the estimated position, velocity and
orientation referred to the local body frame of $b_k$
(see~\cite{qin_vinsmono_2018} for details).

\subsubsection{Vision Factor}

The vision factor consists of the reprojection error for the tracked
features. We use a strategy similar to~\cite{qin_vinsmono_2018}, comparing the
reprojection of all features in the current frame with their first
observations. We define the visual residual as
\begin{align*}
\mathbf{r}_{\mathcal{C}}\left(\hat{\mathbf{z}}_{l}^{c_{j}}, \mathcal{X}\right)&= \| \mathbf{u}_{l_k}^{c_j} - \pi(\mathbf{R}_{c_i}^{c_j},\mathbf{T}_{c_i}^{c_j},\mathbf{P}_{l_k}^{c_i}) \|
\end{align*}
where $\mathbf{u}_{l_k}^{c_j}$ is the coordinate of feature $l_k$ in the image
of the camera frame $j$, $\pi()$ is the projection that converts homogeneous
coordinates into image coordinates,
$\mathbf{R}_{c_i}^{c_j},\mathbf{T}_{c_i}^{c_j}$ represent the frame
transformations (rotation and translation) from the camera frame $i$ to $j$,
which are inferred from state poses, and $\mathbf{P}_{l_k}^{c_i}$ is the 3D
position of the ${k}$th feature in the first observation frame $i$. The vision factor
iterates through all the frames and all the tracked features in the estimated
state.

\subsubsection{Anchor position estimation}

In the above discussion, we assume the anchor coordinates are available for
the optimizer. As the anchor position is initially unknown, it needs to be
estimated. Therefore, the state vector to estimate at the start becomes
$ \mathcal{X} =
[\mathbf{P}_A^{iw},\mathbf{w}_0,\mathbf{w}_1,\dots,\mathbf{w}_s,\mathbf{x}_0,\mathbf{x}_1,\dots,\mathbf{x}_n,l_0,
l_1, \dots, l_m] $. The cost function and factors are kept unchanged. The
optimization result of $\mathbf{P}_A^{iw} $ after the initialization stage is
saved as a fixed value. We fixed the anchor position with two considerations:
a) The anchor is static in practice, and b) usually, the initialization phase
can be controlled and the robot moves in proximity of the anchor. Although the
distance measurement error is not correlated with the distance value, the
estimation of the anchor position depends on the distance. In other words, the
ratio of trajectory length in the initialization with the distance affects the
estimation. So we treat the initial estimate as fixed value.

\subsection{Distributed Collaborative SLAM}

Another significant benefit of our ranging-aided system is that, with a common
anchor, robots can directly estimate inter-robot transformations when they
rendezvous. Robots simply need to send their current position and anchor
position while ranging their neighbors. After receiving this
information twice, a robot can calculate the transformation matrix between itself
and the sender. Once the transformation matrix is correctly estimated, all information
received from neighbors can be correctly placed in the robot's frame.

Estimating the transformation between robots is a critical requirement for
multi-robot systems. We mark the transformation of coordinate systems from
robot $i$ to $j$ as $\mathbf{T}_i^j = [\mathbf{R}_i^j, \mathbf{t}_i^j]$, where
$\mathbf{R}_i^j$ is $3\times3$ matrix representing rotation and
$\mathbf{t}_i^j$ is $3\times1$ vector of translation. With the help of
accelerometers and gyroscopes, we can establish the direction of gravity and
define the same $z$ axis for all robots. VINS-Mono~\cite{qin_vinsmono_2018}
uses the same strategy: the $z$ axis is aligned with the opposite of gravity when
creating the coordinate system. Therefore, only the yaw angle $\theta$ and 3D
offset $\mathbf{t}_i^j$ between two coordinate systems need to be
estimated. The transformation $\mathbf{T}_i^j$ consists of:

\[
\mathbf{R}_i^j=
\left[{\begin{array}{ccc}
{cos(\theta)} & {-sin(\theta)} & {0} \\
{sin(\theta)} & {cos(\theta)} & {0} \\
{0} & {0} & {1}
\end{array}}
\right],
\mathbf{t}_i^j=
\left[{\begin{array}{c}
t_x\\
t_y\\
t_z
\end{array}}
\right]
\]
Using the estimation of the anchor position for two robots, we can easily
get $t_z = ({\mathbf{P}_{A}^{jw}}- \mathbf{P}_{A}^{iw})_z$, which is the
projection of the difference vector on $z$ axis. This leaves three parameters
($\theta, t_x, t_z$) to be estimated.

\begin{figure}[h]
		\includegraphics[width=0.75\columnwidth,center]{figures/uwbCoSlam.pdf}

		\caption{Transformation matrix estimation for multiple robots scenario.}
		\label{fig:uwbCoSlam}
\end{figure}

Fig.\ref{fig:uwbCoSlam} shows how the remaining parameters are estimated.  Let
us assume two robots $i$ and $j$ moving independently in 2D for simplicity
(without loss of generality, as we already know the $z$ axis offset
$t_z$). Both robots have their own coordinate systems, $o_ix_iy_i$ and
$o_jx_jy_j$. They also have the anchor $A$ position after initialization, and
have their own trajectory tracked in their respective coordinate systems. When
the robot $i$ passes point $B$ and robot $j$ passes point $C$, they
enter in communication range and they can both obtain a reciprocal distance
measurement $d_1$. Simultaneously, they transmit their current
position and $A$'s position (which are in their own coordinate
system) to each other.

We take the view of robot $i$ to illustrate our solution. When robot $i$
receives the position of the anchor and the current position of robot $j$
(point $C$) expressed in $j$'s frame, $\mathbf{P}_{b_A}^{jw}$ and
$\mathbf{P}_{b_C}^{jw}$, respectively. Robot $i$ then knows the origin of
$o_jx_jy_j$ must be on the gray circle around the anchor with radius $|Ao_j|$
(known from $\mathbf{P}_A^{jw}$). In addition, robot $i$ calculates $|AC|$ from
$\mathbf{P}_A^{jw}$ and $\mathbf{P}_{b_C}^{jw}$ to find robot $j$'s position $C$ must lie on a green circle around A with radius
$|AC|$. As we know, the distance between point $B$ and $C$ is the range
measurement $d_1$, and point C also must lie on the orange circle around its
current position $B$ with radius $d_1$.

Therefore, the current position lies at one of the intersections between the
green and orange circles, $C$ and $C'$. To find which intersection if the
correct one, we take an additional measurement $d_2$ between two following points
$D$ and $E$. Following the same procedure, we can find the candidates
of $E$. For clarity, we did not draw these circles for $D$ and $E$. By
comparing the relation between $E$, $E'$, $C$ and $C'$ with the true motion
from $C$ to $E$, we can find $C$ and determine the transformation
$\mathbf{T}_j^i$. This is the same as solving:
\begin{align}
\left\{
\begin{array}{rc}
\mathbf{P}_{b_A}^{jw} =& \mathbf{T}_i^j \cdot \mathbf{P}_{b_A}^{iw} \\
d_1 =& \|\mathbf{P}_{b_B}^{jw} - \mathbf{T}_i^j \cdot \mathbf{P}_{b_C}^{iw}\|\\
d_2 =& \|\mathbf{P}_{b_D}^{jw} - \mathbf{T}_i^j \cdot  \mathbf{P}_{b_E}^{iw}\|
\end{array}
\right.
\end{align}
where  $\mathbf{P}_{b_Q}^{rw}$ represent the 3D position vector of points $Q$ in world coordinate frame of robot $r$.

\section{EXPERIMENTS}

We validate our algorithms using public datasets and real hardware
experiments. We choose
VINS-Mono\footnote{https://github.com/HKUST-Aerial-Robotics/VINS-Mono} and
compare with it using the TUM evaluation
tool\footnote{https://vision.in.tum.de/data/datasets/rgbd-dataset/tools}.  We
compute the absolute trajectory error (ATE) when ground truth is
available. For our large area experiments we do not have ground truth, and we
start and end the experiment in the same location and then calculate the
start-to-end error.

\subsection{EuRoC Dataset Experiments}

We test our single robot tracking system on the EuRoC~\cite{burri_euroc_2016}
dataset. We simulate the UWB ranging measurements from ground truth
data. The static anchor is assumed in the origin of the frame created during
robot initialization. We add Gaussian white noise $\mathcal{N}(0,\,0.05)$ to model the
error of our UWB sensor. The sliding window size of VINS-Mono is set to
10. For our system, we tested with a short window size of 10 and a long window
size of 100.

Table~\ref{table:ATE} shows our VIR-SLAM outperform VINS-Mono in terms of
ATE. As an example, we show the trajectory of the
comparison for the EuRoC MH-05 sequence in~Fig.\ref{fig:euroc05}. The green
trajectory of our method is closer to the red ground truth. From the
ellipse indicator, we can see our estimation can correct the error even when drifting.

\begin{figure}[tbp]
\begin{center}
\includegraphics[width=0.85\columnwidth,center]{figures/euroc05.pdf}
\caption{VIR results in EuRoC MH05 Dataset. ATE error of our method is 0.291m, compared to VINS-Mono MONO (0.388m). We set our method is closer to the ground truth in most sections, which testify the capability to correct the drift error.}
\label{fig:euroc05}
\end{center}
\end{figure}

\begin{table}[tbp]
\caption{Error comparison between VINS-Mono and our VIR SLAM.}
\begin{center}
\begin{tabular}{|c||c|c|c|}
\hline
ATE Error (m)  & VINS-Mono & \textbf{VIR} SLAM & Improvement\\
\hline
\textbf EuRoC MH\_01 &  0.186 & 0.178 & 4.33 \% \\
\textbf EuRoC MH\_02 &  0.240 &  0.188 & 21.76 \%  \\
\textbf EuRoC MH\_03 &  0.271 &   0.260 &4.04 \% \\
\textbf EuRoC MH\_04 &  0.402 &   0.366 & 9.0 \% \\
\textbf EuRoC MH\_05 &  0.388 &   0.291 &24.84 \% \\
\textbf Lab Seq1 &  0.266 &   0.193 & 27.81 \% \\
\textbf Lab Seq2 &  0.195 &   0.169 &15.08 \% \\
\hline
\end{tabular}
\end{center}
\label{table:ATE}
\end{table}

\subsection{Single Robot experiments}

\begin{figure}[tbp]

		\includegraphics[width=0.8\columnwidth,center]{figures/robot.jpg}
		\caption{For single robot experiments, we use the Spiri robot
                  (w/ Pixracer and NVIDIA TX1). We add a Realsense D435 camera
                  (although we only use RGB) and UWB sensor module. The IMU
                  measurements are obtained from the Pixracer. The
                  static is in the middle, while the Realsense T265 on the right
                  simulates a second robot in our multi-robot experiment.}
		\label{fig:robot}
\end{figure}

We also test our system with a Spiri robot with real UWB sensors, shown in
Fig.~\ref{fig:robot}. The system has a D435 Realsense camera but we use it as
a monocular camera. The IMU measurements come from the Pixracer flight
controller, and the robot carries an Nvidia TX1 as an on-board computer. We
test the system in our lab with an OptiTrack motion capture system as ground
truth.

We manually control the robot and collect two sequences: the results are
listed in Table~\ref{table:ATE}. To clearly see the difference, we show the
trajectories from same origin. This is different from aligning the two
trajectory to compute the ATE. As Fig.~\ref{fig:indoorExp} shows, our
estimator has less accumulated error than VINS-Mono.

\begin{figure}[tbp]
\includegraphics[width=0.9\columnwidth,center]{figures/indoorExp.jpg}
\caption{VIR indoor experiments with OptiTrack ground truth. The left and
  right figures are two sequences. All trajectories start at the origin and
  are not aligned. Our estimator does not present excessive drift.}
\label{fig:indoorExp}
\end{figure}

We also test our system performance in large atrium. The environment in the
atrium is quite challenging: featureless walls, low light conditions, glass
walls with reflections, etc.  We move the robot around the atrium and make
sure the robot ends at the same point as it starts. Then we compare the
start-to-end error. As Fig.~\ref{fig:atriumExp} and
Table~\ref{table:Start-to-end Error} shows, the VINS-Mono estimation has
significant drift, more than 5.4m. Although the loop closure version can
correct the drift as the loop closure is detected, there is still a clear
error in the trajectory. However, our VIR SLAM works correctly without any
loop closure. The start and end point have a small translation error (0.148m)
in 2D, but our system introduces a bigger accumulated error on the $z$
axis. We believe this is due to the anchor being close to the horizontal plane
of the robot, and the small difference in measurement does not help correct
the $z$ coordinate. We manually checked the UWB ranging information along the
top and bottom edges and we can confirm that our estimation is at the right
position on the boundaries.
\begin{table}[htbp]
	\caption{Start-to-end Error Comparison}
		\begin{tabular}{|c||c|c|c|}
			\hline
			   & End point & 2D Error(m) & 3D Error(m)\\
			\hline
			\textbf VINS-Mono &  (4.29,	3.35, 0.52) & 5.439 & 5.465 \\
			\textbf VINS-LC SLAM  & (0.18, 0.43, -0.38) &  0.464 & \textbf{0.602}\\
			\textbf  VIR-SLAM &  (-0.04, 0.14, 0.84) & \textbf{0.148} &0.853\\
			\hline
		\end{tabular}
	\label{table:Start-to-end Error}
\end{table}

\begin{figure}[tpb]
\includegraphics[trim=0cm 0cm 1.0cm 1.7cm,clip, width=0.65\columnwidth,center]{figures/atriumExp.pdf}
\caption{VIR results in the atrium, which is very visually challenging. The
  robot starts and ends at the same point and we compare the start-to-end
  error. As the figure shows, the start and end point of VIR-SLAM are
  overlapped. Although the VINS-Mono with loop closure (VINS\_LC) can close
  the loop, it does not eliminate the accumulated error from the VIO.}
\label{fig:atriumExp}
\end{figure}

\subsection{Multi-Robot Experiments}

We also test our multi-robot technique, as shown in
Fig.~\ref{fig:multirobotExp}. We manually and independently control two robots
to make a trajectory similar to the "MIST", the name of our lab.
We place one static UWB anchor in the environment. The first
robot is imply a Realsense T265 and an UWB module, show in
Fig.~\ref{fig:robot} (right). We move it to form an "M" shape. The other
robot, Spiri, moves along a "IST" and it controlled independently. Their
trajectories in each robot's frame are shown at the bottom of
Fig.~\ref{fig:multirobotExp}. With simply two inter-robot measurements (with data exchange), robot
1 can estimate the transformation of robot 2 and map robot 2's
trajectory in its own frame as shown at the top of Fig.~\ref{fig:multirobotExp}.

\section{CONCLUSIONS AND DISCUSSIONS}

In this paper, we propose VIR-SLAM, a novel SLAM paradigm combining vision,
inertial, and UWB sensors. By arbitrarily setting up a static UWB anchor in
the environment, robots can have drift-free state estimation and collaboration
on SLAM. Our solution combines the accurate relative pose estimation from VIO
and enhances it using ranging to correct the accumulated error. As our
experiments show, the introduced static anchor can help correct the drift
effectively to improve localization accuracy. We also show an example with two
independent robots mapping each other's
trajectory to their own frame after obtaining two range measurements. This
technique allows the robots to find the inter-robot transformation, which is
extremely useful for multi-robot SLAM.

\bibliographystyle{IEEEtran}

\section{INTRODUCTION}

Robot localization is a fundamental topic in any mobile robot
application. Recent advances in robot hardware and software have boosted the
opportunity and demand for multi-robot systems for their inherent benefits,
such as high efficiency and robustness.

With a monocular camera and low-cost inertial measurement units, Visual
Inertial Odometry (VIO) is accepted as the minimal sensor configuration for
single robot state estimation and navigation considering size, wight, power and cost \cite{delmerico_benchmark_2018}.
Recent technical advances
\cite{lupton_preintegration_2012, forster_manifold_2017, qin_vinsmono_2018}
make VIO more and more robust and stable in many conditions. However, the
drift caused by accumulated error is still hard to control without loop
closures. Although loop closure is a natural part for SLAM system, the
requirements to close the loop rely much on the trajectory and
environment. For example, generating high-quality closures requires revisiting
the same location with a similar viewpoint. Furthermore, perception outliers
caused by illumination, self-similar environments, etc. are challenging for
loop closure.

In this paper, we use single extra sensor, a static ultra-wideband (UWB)
anchor, to improve the performance of robot localization. UWB technology has
attracted a lot of attention recent years for its accurate ranging performance
and long-distance support.  For example, the latest Apple IPhone at the time
of writing is equipped with a UWB chip (actually, it includes all sensors
needed in this paper).  Most available UWB systems
(e.g.~\cite{noauthor_loco_nodate}) use several (at least four for 3D and
three for 2D) calibrated anchors as a Global Positioning System (GPS) for
specific areas. This type of infrastructure is not applicable for the
exploration in unknown environments, which is one of the primary objectives of
SLAM. Therefore, we design our system to rely only on one anchor, which can be
dropped off at any moment by a robot during its mission. Our experiments show
this one anchor can improve the localization accuracy significantly.

\begin{figure}[h]
\begin{center}
\includegraphics[trim=0cm 0.2cm 1.2cm 0.3cm,clip, width=0.37\textwidth,center]{figures/multirobotexp.pdf}
\caption{ Two robots are manually controlled independently.
  The first robot with
  a Realsense T265 and an UWB module draws an "M"  in its own
  coordinate frame. The other robot, carrying a Realsense D435, a UWB module and
  a Pixracer flight controller, draws "IST" in its frame.
  One static UWB anchor is placed in the environment (the blue triangle shown in Robot1 frame). Their
  trajectories are shown at the bottom.  With two inter-robot communications and measurements,
  robot 1 can estimate the transformation matrix from robot 2, and then map robot
  2's trajectory in its own frame as the top picture shows, forming "MIST"
  (our lab).}
\label{fig:multirobotExp}
\end{center}
\end{figure}

This setup has another significant benefit for multi-robot SLAM. Multi-robot
SLAM is a promising field, but much more challenging. One issue is the
estimation of the transformation matrix between
robots~\cite{saeedi_multi_2016}. Most available works rely on common features
to extract the relative pose of robots, which is a type of inter-robot loop
closure, which leads to similar constraints as single robot loop closures.  An
additional challenge for inter-robot loop closure is the need to exchange the
information required for loop closure among all robots, which can be
significant.

In our system, we can solve this challenge using the UWB sensor. When any two
robots move into their respective UWB ranging radius, they can exchange their
mutual ranging and anchor information

and they can estimate their respective coordinate systems
transformations. Having the transformation matrix, a robot can correctly
project all the information from its neighbors onto its own frame. This
solution greatly simplifies multi-robot SLAM, minimizing the need for
inter-robot loop closure, which requires the exchange of feature databases,
the identification of loop closures and distributed pose graph optimization.

The last but not least reason for choosing UWB is its inherent advantage in
data association. When a range measurement is received, the identity of the
sender is recognized without extra effort, which can be of great assistance
for multi-robot systems. Moreover, UWB can provide low bandwidth communication
while ranging. For example, the state estimation of poses can be carried by
UWB packets while performing ranging. In the future, we believe a
monocular camera, inertial measurement units (IMU), and UWB will be a standard
minimal configuration for multi-robot systems.

\section{RELATED WORK}

\subsubsection{Single Robot SLAM with Visual, Inertial and Ranging Measurements}

SLAM has been the subject of intense research for more than thirty
years~\cite{cadena_slam_2016}. Monocular
visual-inertial odometry is a popular choice as it provides good state
estimation performance with a minimal sensor configuration. Although
state-of-the-art VIO algorithms (e.g. SVO \cite{forster_manifold_2017},
VINS-Mono~\cite{qin_vinsmono_2018}, DSO~\cite{ engel_direct_2018}) can reach
very high accuracy in relative translation and orientation, the accumulated
drift can still be an issue: any small orientation error can lead to large
end-point error. Our system leverages UWB ranging measurements to correct the
accumulated error. We developed our system based on
VINS-Mono~\cite{qin_vinsmono_2018}, which is a robust and versatile state
estimator which uses a sliding window tightly-coupled nonlinear optimization
for visual and IMU measurements.

UWB technology, as a localization solution on its own, has attracted a lot of
attention in recent years both in research and industry for its decimeter
localization accuracy. However, most results are based on a well-calibrated
multi-anchor setup~\cite{prorok_accurate_2014,mueller_fusing_2015,
  fang_graph_2018, tiemann_enhanced_2018}, which is not applicable for
navigation in unexplored, unstructured environments.  Wang et
al.~\cite{wang_ultra-wideband_2017} propose a system using camera, IMU and UWB
to bypass the complexity of loop closure. However, they still use multiple
pre-configured UWB anchors. Their UWB module provides coarse drift-free global
position and VIO identifies the local trajectory. On the contrary, in this
paper we use only one anchor, placed in an unspecified location.  Shi et
al.\cite{shi_visual-uwb_nodate} have a similar spirit to ours. They
start with one UWB anchor and keep dropping anchors from a moving
robot. Unfortunately, their experimental results are available only in
simulation for one sequence of the EuRoC dataset~\cite{burri_euroc_2016}, with
five simulated anchors. In our work, we focus on the use of a single anchor
setup. We design a double layer sliding window algorithm, which effectively
fuses accurate VIO and range constraints along the trajectory.

\subsubsection{Multi-Robot SLAM}

Multi-robot SLAM has gained recent attention for the increased viability and
accessibility of multi-robot systems. Saeedi et
al.\cite{saeedi_multiple-robot_2016} give a comprehensive review of
multi-robot SLAM and points out one key issue: relative pose estimation. Most
current multi-robot SLAM systems solve this issue by analyzing inter-robot
loop closures, either in centralized~\cite{schmuck_ccm-slam_2019} or
distributed~\cite{choudhary_distributed_2017, mangelson_pairwise_2018}
fashion. The distributed approach is more robust, but it is harder to
implement in practice: robots need to exchange map data to get the feature
database for future loop closures, and distributed optimization
usually requires additional communication and computation.

Ranging measurements can assist in relative pose estimation. Trawny et
al.\cite{trawny_3d_nodate} provide theoretical proofs and simulations that
show how six range measurements can be used to get the transformation matrix
between two robots. Martel et al.\cite{martel_unique_2019} extend the work and
adapt it to 4DOF relative pose estimation with a UWB setup, and use it for
merging maps for VR applications. Both methods use range measurements over
long trajectories. In our solution, robots can estimate the transformation
matrix as soon as they can get two measurements from their neighbors, which
meets the requirement of real-time transformation estimation during robot
rendezvous. These two methods~\cite{trawny_3d_nodate, martel_unique_2019}
represent a good solution when no common anchor is present and can be combined
with inter-robot loop closures to improve the transformation results.

In practice, most works in literature have explored the combination of
multiple UWB anchors with vision and/or IMU. In this paper, we focus on the
use of a single anchor in an arbitrary location, which is trivial to deploy as
a beacon in real exploration tasks. We propose a double layer sliding window
technique to combine VIO with UWB ranging, which produces drift-free state
estimation by leveraging VIO for its accurate short time relative pose
estimation, and range constraints for longer trajectories. Moreover, recorded
anchor ranges can help robots find the transformation matrix
efficiently with only two range measurements in multi-robot settings. Our
contributions can be summarized as:
\begin{itemize}
\item an UWB-aided SLAM system for single robots which outperforms state-of-the-art VIO;
\item a double layer sliding window algorithm that combined relative pose
  estimation from VIO and UWB ranging constrains;
\item an efficient method to estimate the transformation matrix between multiple robots.
\end{itemize}

\section{SYSTEM DESIGN}

In this section, we explain the preliminaries and symbols used in this
paper. We then detail the formulation of our ranging-aided visual inertial
SLAM, focusing on the cost factors of the optimization problem. Finally, we
introduce our solution for the estimation of the transformation matrix between
robots.

\begin{figure}
\begin{center}
\includegraphics[width=0.8\columnwidth]{figures/trajProcess.pdf}
\caption{Illustration of the scenario of VIR-SLAM, with a single anchor
  setup. Measurements from sensors are shown with different lines. Robot poses
  with the camera and IMU measurements belong to the short sliding window. All
  poses associated with UWB ranging to the anchor are kept for the long
  sliding window.}
\label{fig:problem}
\end{center}
\end{figure}

\subsection{Single Robot Estimation Preliminaries}

We assume a robot carries three kinds of sensors (a monocular camera, an IMU
and UWB module), and moves in a 3D environment, as shown in
Fig.~\ref{fig:problem}. An UWB anchor is placed in the environment with an
unknown initial position. We define the world frame of the robot $i$ as
$[\;\;]^{{iw}}$, which is usually aligned with the first camera frame when the
robot starts its mission. The position of the anchor is expressed in the robot
world frame, denoted by $\mathbf{P}_A^{iw}$. We use $[\;\;]^{ib}$ to indicate
the body frame of robot $i$, and similarly $[\;\;]^{ic}$ for the camera
frame. Note that we do not define the UWB sensor frame because it is a scalar
measurement. The UWB ranging measurement is transferred to body frame by
considering the 3D offset of the UWB antenna in the body frame.

Classical VIO proposes an optimization formulation of states over
a sliding window with size $n$ as:
\begin{align}
\mathcal{X} &= [\mathbf{x}_0,\mathbf{x}_1,\dots,\mathbf{x}_n,l_0, l_1, \dots, l_m] \label{equ:classicalState}\\
\mathbf{x}_k &= [
\mathbf{p}_{b_k}^{iw}, \mathbf{v}_{b_k}^{iw}, \mathbf{q}_{b_k}^{iw}, \mathbf{b}_{a_k}^{ib}, \mathbf{b}_{w_k}^{ib}] \;\;\; \;\;\;\;k\in[0,n] \nonumber
\end{align}
which includes the state $\mathbf{x}$ for all $n$ frames and the visual
feature inverse depth $l$. The $k$th frame state $\mathbf{x}_k$ includes the
position $\mathbf{p}_{b_k}^{iw}$, velocity $\mathbf{v}_{b_k}^{iw}$, and
orientation in quaternions $\mathbf{q}_{b_k}^{iw}$ for robot $i$ in its world
frame, plus accelerometer bias $\mathbf{b}_{a_k}^{ib}$ and gyroscope bias
$\mathbf{b}_{w_k}^{ib}$ in its body frame.  $l_i$ is the inverse depth of the
$i$th feature among $m$ features from the visual observations over the sliding
window. If the sliding window includes all the camera frames since the start
of the mission, the optimization becomes a full smoothing estimation. Although
full smoothing offers the best accuracy, it is not scalable in reality, so we
use a key frame approach that discards similar frames while not losing
tracking. However, as the trajectory becomes longer, the size of state keeps
growing. For this reason, we fix the size of key frames and marginalize older
key frames into a prior factor in the optimization. The drift from visual
inertial odometry is still hard to avoid, and pose graph optimization with
loop closure becomes the only chance to correct the accumulating error.

Aiming at an accurate localization system and avoiding all rely on loop
closure, we design a SLAM system that uses a novel double layer sliding window
structure, with an implementation based on VINS-Mono~\cite{qin_vinsmono_2018}.

\subsection{Double Layer Tightly Coupled VIR Optimization}

We propose a double layer sliding window tightly coupled SLAM optimization by
considering following aspects: high accuracy relative pose estimation from
VIO, less accurate but absolute UWB measurements, and the computation cost for
these factors.

We design two sliding windows involving three kinds of variables, shown in
Equ.~\ref{equ:states}. A short window $\Psi$, the same as the classical visual
SLAM sliding window with size $n$ from Equ.\ref{equ:classicalState}. The
variables in this window include $\mathbf{x}_k$ (Equ.~\ref{equ:shortwindow})
and $[l_0, l_1, \dots, l_m]$, which have same meaning as the variables in
Equ.~\ref{equ:classicalState}. The novelty in our system lies in the addition
of another long sliding window $\Omega$, which carries state $\mathbf{w}_t$,
as shown in Equ. \ref{equ:longwindow}. The size of the long slide window is
$s$, which is much larger than $n$. The state in this window only contains the
robot position $\mathbf{p}_{b}^{iw}$ in robot world frame.
\begin{align}
\mathcal{X} &= [\mathbf{w}_0,\mathbf{w}_1,\dots,\mathbf{w}_s,\mathbf{x}_0,\mathbf{x}_1,\dots,\mathbf{x}_n,l_0, l_1, \dots, l_m] \label{equ:states}\\
\mathbf{x}_k &= [
\mathbf{p}_{b_k}^{iw}, \mathbf{v}_{b_k}^{iw}, \mathbf{q}_{b_k}^{iw}, \mathbf{b}_{a_k}^{ib}, \mathbf{b}_{w_k}^{ib}] \;\;\;\;\;\;\;\;\;\;\;\;\;k\in \Psi[0,n] \label{equ:shortwindow}\\
\mathbf{w}_t &= [
\mathbf{p}_{b_t}^{iw}]\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \;\; t\in \Omega[0,s] \label{equ:longwindow}
\end{align}
Fig.\ref{fig:factorgraph} shows the factor graph of our system, corresponding
to the scenario of Fig.~\ref{fig:problem}. The short window area in gray
includes the state from the camera and IMU measurements. The long window area in
orange contains the state from the UWB measurements. Following the state
definition, we formulate a full nonlinear optimization problem as:
\begin{figure}
\begin{center}
\includegraphics[width=0.45\textwidth,center]{figures/posegraph.pdf}
\caption{Factor graph for the scenario in Fig. \ref{fig:problem}. The factor
  graph includes poses, UWB factor, IMU factors and visual factors. The edges
  are the error. We have a UWB factor for the poses with range
  measurements. Further, smooth edges (curves) are added between
  poses.}
\label{fig:factorgraph}
\end{center}
\end{figure}

\begin{align}
\min _{\mathcal{X}}&
\Bigr\{
\underbrace{
\sum_{t \in\Omega}
{\rho(\|\mathbf{r}_{\mathcal{U}}(\hat{\mathbf{z}_t},\mathcal{X})\|}_{\mathbf{P}_{b_t}^{iw}})
}_{UWB\; factor}
+
\underbrace{
\sum_{k \in \Psi}\|\mathbf{r}_{\mathcal{B}}(\hat{\mathbf{z}}_{b_{k+1}}^{b_{k}}, \mathcal{X})\|_{\mathbf{P}_{b_{k+1}}^{b_{k}}}^{2}
}_{IMU\; factor}
\nonumber \\&
+
\underbrace{
\sum_{(l, j) \in \mathcal{C}} \rho(\|\mathbf{r}_{\mathcal{C}}(\hat{\mathbf{z}}_{l}^{c_{j}}, \mathcal{X})\|_{\mathbf{P}_{l}^{c_{j}}}^{2})
}_{Vision\; factor}
\Bigr\} \label{equ:optimization}
\end{align}

This nonlinear optimization problem considers three factors, corresponding to
the UWB factor, the IMU factor, and the vision factor. The UWB residuals are
calculated for the long window $\Omega$, while IMU and visual residuals for
the short window $\Psi$.

\subsubsection{UWB Factor}

UWB localization uses different protocols: time of arrival (TOA), time
difference of arrival (TDoA), and two-way ranging (TWR). In our system, we use
TWR, which measures the distances between two transceivers by sending a packet
back and forth. Although the number of nodes supported is limited because of
the shared UWB communication medium, TWR can be used without device
synchronization, which makes the protocol widely used. Since we are not
considering hundreds of robot communicating simultaneously, we choose TWR to
avoid synchronization, which can be difficult to implement in distributed
multi-robot applications.
We model the ranging measurement of UWB modules as:
\[\label{uwb_model}
{\hat{d}} = {d} + {b}_{d} + {e}
\]
where ${\hat{d}}$ is the UWB measurement, ${d}$ is true distance, ${b}_{d}$ is
distance based bias, and ${e}$ is the error following a Gaussian distribution
${N}(0,\,\sigma^{2})$. Note that the ${b}_{d}$ can be calibrated with a Gaussian
process model beforehand by collecting data with ground truth. Then the model
can be simplified as:
\[\label{uwb_model1}
{\hat{d}} = {d} + {e}
\]
With this simplified UWB model, we define the UWB factor in
Equ.~\ref{equ:optimization} as:
\begin{align}
\mathbf{r}_{\mathcal{U}}(\hat{\mathbf{z}}_t,\mathcal{X}) =
\underbrace{
\gamma_r\cdot\rho( \|\mathbf{p}_{b_t}^{iw}-\mathbf{P}_A^{iw}\|-{\hat{d}}_t)}_{UWB\; ranging \; residual}
\nonumber\\
+
\underbrace{
\gamma_s\cdot(
\sum_{j\in(t,t+s]}
\{\mathbf{p}_{b_j}^{iw}-\mathbf{p}_{b_t}^{iw}\}-\widetilde{\mathbf{z}}_{b_{t}}^{b_{j}})
}_{Relative \; transformation \; residual}
\end{align}
The UWB factor above includes two residuals: a ranging measurement residual
and a virtual relative transformation measurement residual. $\gamma_r$ and
$\gamma_s$ are the weights for these two residuals. ${\hat{d}}_t$ are
the UWB ranging measurements, which are compared with the predicted ranging
from the robot body frame $t$ to the anchor $\mathbf{P}_A^{iw}$ in the world frame. To
avoid the ranging factor excessively affecting the optimizer and breaking the
relative pose property from visual-inertial estimation, we introduce a virtual
relative transformation measurement $\widetilde{\mathbf{z}}_{b_{t}}^{b_{j}}$
between frames $t$ and $j\in(t,t+s]$, which is extracted from the short sliding
window estimation result. We select $s=3$ in our experiments
to create two consecutive links between poses, as can be seen for example with $x_{p7}$ in
Fig.~\ref{fig:factorgraph}.  $\rho()$ is a pseudo-Huber loss function
defined as $\rho(q)=\delta^{2}(\sqrt{1+(q / \delta)^{2}}-1)$.

\subsubsection{IMU factor}

IMU measurements are critical for monocular visual odometry. As the frequency
of the IMU is usually higher than the camera image frame rate, the IMU
measurements are preintegrated between two consecutive image
frames~\cite{lupton_preintegration_2012}. By referring to the last body frame
motion, this technique avoid repeated IMU reintegration and reduces
computation during optimization. Forster et al.~\cite{forster_manifold_2017}
extend this approach to manifold structures of the rotation group
$\mathfrak So3$ for higher accuracy and robustness. We follow the same method
as~\cite{qin_vinsmono_2018} in quaternion form.

The preintegrated IMU measurements between two consecutive frames of $b_k$ and
$b_{k+1}$ referring to frame $b_k$ can be expressed as:
\begin{align*}
\boldsymbol{\alpha}_{b_{k+1}}^{b_{k}}&=\iint_{t \in\left[t_{k}, t_{k+1}\right]} \mathbf{R}_{t}^{b_{k}}\left(\hat{\mathbf{a}}_{t}-\mathbf{b}_{a_{t}}\right) d t^{2}\\
\boldsymbol{\beta}_{b_{k+1}}^{b_{k}}&=\int_{t \in\left[t_{k}, t_{k+1}\right]} \mathbf{R}_{t}^{b_{k}}\left(\hat{\mathbf{a}}_{t}-\mathbf{b}_{a_{t}}\right) d t \\
\boldsymbol{\gamma}_{b_{k+1}}^{b_{k}}&=\int_{t \in\left[t_{k}, t_{k+1}\right]} \frac{1}{2} \mathbf{\Omega}\left(\hat{\boldsymbol{\omega}}_{t}-\mathbf{b}_{w_{t}}\right) \gamma_{t}^{b_{k}} d t
\end{align*}
where
\[
\mathbf{\Omega}(\boldsymbol{\omega})=\left[\begin{array}{cc}
{-\lfloor\boldsymbol{\omega}\rfloor_{\times}} & {\boldsymbol{\omega}} \\
{-\boldsymbol{\omega}^{T}} & {0}
\end{array}\right],\lfloor\boldsymbol{\omega}\rfloor_{\times}=\left[\begin{array}{ccc}
{0} & {-\omega_{z}} & {\omega_{y}} \\
{\omega_{z}} & {0} & {-\omega_{x}} \\
{-\omega_{y}} & {\omega_{x}} & {0}
\end{array}\right]
\]
$\hat{\mathbf{a}}_t$ and $\hat{\boldsymbol{\omega}}_t$ are the accelerometer
and gyroscope measurement vectors, respectively. These three formulas
correspond to relative the motion changes of position, velocity and orientation
to the local body frame of $b_k$.

The IMU factor is the residual between predicted motion and the preintegrated
results referring to the body frame:
\[
\mathbf{r}_{\mathcal{B}}\left(\hat{\mathbf{z}}_{b_{k+1}}^{b_{k}}, \mathcal{X}\right)=\left[\begin{array}{c}{\delta \boldsymbol{\alpha}_{b_{k+1}}^{b_{k}}} \\ {\delta \boldsymbol{\beta}_{b_{k+1}}^{b_{k}}} \\ {\delta \boldsymbol{\theta}_{b_{k+1}}^{b_{k}}} \\ {\delta \mathbf{b}_{a}} \\ {\delta \mathbf{b}_{g}}\end{array}\right]
=\left[\begin{array}{c}
{
\mathbf{p}^{b_k} - \hat{\boldsymbol{\alpha}}_{b_{k+1}}^{b_{k}}}\\
\mathbf{v}^{b_k} - \hat{\boldsymbol{\beta}}_{b_{k+1}}^{b_{k}}\\
\boldsymbol{\theta}^{b_k} \otimes(\hat{\boldsymbol{\gamma}}_{b_{k+1}}^{b_{k}})^{-1}\\
{\mathbf{b}_w^{b_{k+1}}-\mathbf{b}_w^{b_{k}}}\\
{\mathbf{b}_a^{b_{k+1}}-\mathbf{b}_a^{b_{k}}}
\end{array} \right]
\]
where
$ \mathbf{p}^{b_k} =
{\mathbf{R}_{w}^{b_{k}}\left(\mathbf{p}_{b_{k+1}}^{w}-\mathbf{p}_{b_{k}}^{w}+\frac{1}{2}
    \mathbf{g}^{w} \Delta t_{k}^{2}-\mathbf{v}_{b_{k}}^{w} \Delta
    t_{k}\right)}$ ,
$ \mathbf{v}^{b_k}
=\mathbf{R}_{w}^{b_{k}}\left(\mathbf{v}_{b_{k+1}}^{w}+\mathbf{g}^{w} \Delta
  t_{k}-\mathbf{v}_{b_{k}}^{w}\right) $ and
$\boldsymbol{\theta}^{b_k} = \mathbf{q}^{b_{k}}_{w} \otimes
\mathbf{q}_{b_{k+1}}^{w} $ are the estimated position, velocity and
orientation referred to the local body frame of $b_k$
(see~\cite{qin_vinsmono_2018} for details).

\subsubsection{Vision Factor}

The vision factor consists of the reprojection error for the tracked
features. We use a strategy similar to~\cite{qin_vinsmono_2018}, comparing the
reprojection of all features in the current frame with their first
observations. We define the visual residual as
\begin{align*}
\mathbf{r}_{\mathcal{C}}\left(\hat{\mathbf{z}}_{l}^{c_{j}}, \mathcal{X}\right)&= \| \mathbf{u}_{l_k}^{c_j} - \pi(\mathbf{R}_{c_i}^{c_j},\mathbf{T}_{c_i}^{c_j},\mathbf{P}_{l_k}^{c_i}) \|
\end{align*}
where $\mathbf{u}_{l_k}^{c_j}$ is the coordinate of feature $l_k$ in the image
of the camera frame $j$, $\pi()$ is the projection that converts homogeneous
coordinates into image coordinates,
$\mathbf{R}_{c_i}^{c_j},\mathbf{T}_{c_i}^{c_j}$ represent the frame
transformations (rotation and translation) from the camera frame $i$ to $j$,
which are inferred from state poses, and $\mathbf{P}_{l_k}^{c_i}$ is the 3D
position of the ${k}$th feature in the first observation frame $i$. The vision factor
iterates through all the frames and all the tracked features in the estimated
state.

\subsubsection{Anchor position estimation}

In the above discussion, we assume the anchor coordinates are available for
the optimizer. As the anchor position is initially unknown, it needs to be
estimated. Therefore, the state vector to estimate at the start becomes
$ \mathcal{X} =
[\mathbf{P}_A^{iw},\mathbf{w}_0,\mathbf{w}_1,\dots,\mathbf{w}_s,\mathbf{x}_0,\mathbf{x}_1,\dots,\mathbf{x}_n,l_0,
l_1, \dots, l_m] $. The cost function and factors are kept unchanged. The
optimization result of $\mathbf{P}_A^{iw} $ after the initialization stage is
saved as a fixed value. We fixed the anchor position with two considerations:
a) The anchor is static in practice, and b) usually, the initialization phase
can be controlled and the robot moves in proximity of the anchor. Although the
distance measurement error is not correlated with the distance value, the
estimation of the anchor position depends on the distance. In other words, the
ratio of trajectory length in the initialization with the distance affects the
estimation. So we treat the initial estimate as fixed value.

\subsection{Distributed Collaborative SLAM}

Another significant benefit of our ranging-aided system is that, with a common
anchor, robots can directly estimate inter-robot transformations when they
rendezvous. Robots simply need to send their current position and anchor
position while ranging their neighbors. After receiving this
information twice, a robot can calculate the transformation matrix between itself
and the sender. Once the transformation matrix is correctly estimated, all information
received from neighbors can be correctly placed in the robot's frame.

Estimating the transformation between robots is a critical requirement for
multi-robot systems. We mark the transformation of coordinate systems from
robot $i$ to $j$ as $\mathbf{T}_i^j = [\mathbf{R}_i^j, \mathbf{t}_i^j]$, where
$\mathbf{R}_i^j$ is $3\times3$ matrix representing rotation and
$\mathbf{t}_i^j$ is $3\times1$ vector of translation. With the help of
accelerometers and gyroscopes, we can establish the direction of gravity and
define the same $z$ axis for all robots. VINS-Mono~\cite{qin_vinsmono_2018}
uses the same strategy: the $z$ axis is aligned with the opposite of gravity when
creating the coordinate system. Therefore, only the yaw angle $\theta$ and 3D
offset $\mathbf{t}_i^j$ between two coordinate systems need to be
estimated. The transformation $\mathbf{T}_i^j$ consists of:

\[
\mathbf{R}_i^j=
\left[{\begin{array}{ccc}
{cos(\theta)} & {-sin(\theta)} & {0} \\
{sin(\theta)} & {cos(\theta)} & {0} \\
{0} & {0} & {1}
\end{array}}
\right],
\mathbf{t}_i^j=
\left[{\begin{array}{c}
t_x\\
t_y\\
t_z
\end{array}}
\right]
\]
Using the estimation of the anchor position for two robots, we can easily
get $t_z = ({\mathbf{P}_{A}^{jw}}- \mathbf{P}_{A}^{iw})_z$, which is the
projection of the difference vector on $z$ axis. This leaves three parameters
($\theta, t_x, t_z$) to be estimated.

\begin{figure}[h]
		\includegraphics[width=0.75\columnwidth,center]{figures/uwbCoSlam.pdf}

		\caption{Transformation matrix estimation for multiple robots scenario.}
		\label{fig:uwbCoSlam}
\end{figure}

Fig.\ref{fig:uwbCoSlam} shows how the remaining parameters are estimated.  Let
us assume two robots $i$ and $j$ moving independently in 2D for simplicity
(without loss of generality, as we already know the $z$ axis offset
$t_z$). Both robots have their own coordinate systems, $o_ix_iy_i$ and
$o_jx_jy_j$. They also have the anchor $A$ position after initialization, and
have their own trajectory tracked in their respective coordinate systems. When
the robot $i$ passes point $B$ and robot $j$ passes point $C$, they
enter in communication range and they can both obtain a reciprocal distance
measurement $d_1$. Simultaneously, they transmit their current
position and $A$'s position (which are in their own coordinate
system) to each other.

We take the view of robot $i$ to illustrate our solution. When robot $i$
receives the position of the anchor and the current position of robot $j$
(point $C$) expressed in $j$'s frame, $\mathbf{P}_{b_A}^{jw}$ and
$\mathbf{P}_{b_C}^{jw}$, respectively. Robot $i$ then knows the origin of
$o_jx_jy_j$ must be on the gray circle around the anchor with radius $|Ao_j|$
(known from $\mathbf{P}_A^{jw}$). In addition, robot $i$ calculates $|AC|$ from
$\mathbf{P}_A^{jw}$ and $\mathbf{P}_{b_C}^{jw}$ to find robot $j$'s position $C$ must lie on a green circle around A with radius
$|AC|$. As we know, the distance between point $B$ and $C$ is the range
measurement $d_1$, and point C also must lie on the orange circle around its
current position $B$ with radius $d_1$.

Therefore, the current position lies at one of the intersections between the
green and orange circles, $C$ and $C'$. To find which intersection if the
correct one, we take an additional measurement $d_2$ between two following points
$D$ and $E$. Following the same procedure, we can find the candidates
of $E$. For clarity, we did not draw these circles for $D$ and $E$. By
comparing the relation between $E$, $E'$, $C$ and $C'$ with the true motion
from $C$ to $E$, we can find $C$ and determine the transformation
$\mathbf{T}_j^i$. This is the same as solving:
\begin{align}
\left\{
\begin{array}{rc}
\mathbf{P}_{b_A}^{jw} =& \mathbf{T}_i^j \cdot \mathbf{P}_{b_A}^{iw} \\
d_1 =& \|\mathbf{P}_{b_B}^{jw} - \mathbf{T}_i^j \cdot \mathbf{P}_{b_C}^{iw}\|\\
d_2 =& \|\mathbf{P}_{b_D}^{jw} - \mathbf{T}_i^j \cdot  \mathbf{P}_{b_E}^{iw}\|
\end{array}
\right.
\end{align}
where  $\mathbf{P}_{b_Q}^{rw}$ represent the 3D position vector of points $Q$ in world coordinate frame of robot $r$.

\section{EXPERIMENTS}

We validate our algorithms using public datasets and real hardware
experiments. We choose
VINS-Mono\footnote{https://github.com/HKUST-Aerial-Robotics/VINS-Mono} and
compare with it using the TUM evaluation
tool\footnote{https://vision.in.tum.de/data/datasets/rgbd-dataset/tools}.  We
compute the absolute trajectory error (ATE) when ground truth is
available. For our large area experiments we do not have ground truth, and we
start and end the experiment in the same location and then calculate the
start-to-end error.

\subsection{EuRoC Dataset Experiments}

We test our single robot tracking system on the EuRoC~\cite{burri_euroc_2016}
dataset. We simulate the UWB ranging measurements from ground truth
data. The static anchor is assumed in the origin of the frame created during
robot initialization. We add Gaussian white noise $\mathcal{N}(0,\,0.05)$ to model the
error of our UWB sensor. The sliding window size of VINS-Mono is set to
10. For our system, we tested with a short window size of 10 and a long window
size of 100.

Table~\ref{table:ATE} shows our VIR-SLAM outperform VINS-Mono in terms of
ATE. As an example, we show the trajectory of the
comparison for the EuRoC MH-05 sequence in~Fig.\ref{fig:euroc05}. The green
trajectory of our method is closer to the red ground truth. From the
ellipse indicator, we can see our estimation can correct the error even when drifting.

\begin{figure}[tbp]
\begin{center}
\includegraphics[width=0.85\columnwidth,center]{figures/euroc05.pdf}
\caption{VIR results in EuRoC MH05 Dataset. ATE error of our method is 0.291m, compared to VINS-Mono MONO (0.388m). We set our method is closer to the ground truth in most sections, which testify the capability to correct the drift error.}
\label{fig:euroc05}
\end{center}
\end{figure}

\begin{table}[tbp]
\caption{Error comparison between VINS-Mono and our VIR SLAM.}
\begin{center}
\begin{tabular}{|c||c|c|c|}
\hline
ATE Error (m)  & VINS-Mono & \textbf{VIR} SLAM & Improvement\\
\hline
\textbf EuRoC MH\_01 &  0.186 & 0.178 & 4.33 \% \\
\textbf EuRoC MH\_02 &  0.240 &  0.188 & 21.76 \%  \\
\textbf EuRoC MH\_03 &  0.271 &   0.260 &4.04 \% \\
\textbf EuRoC MH\_04 &  0.402 &   0.366 & 9.0 \% \\
\textbf EuRoC MH\_05 &  0.388 &   0.291 &24.84 \% \\
\textbf Lab Seq1 &  0.266 &   0.193 & 27.81 \% \\
\textbf Lab Seq2 &  0.195 &   0.169 &15.08 \% \\
\hline
\end{tabular}
\end{center}
\label{table:ATE}
\end{table}

\subsection{Single Robot experiments}

\begin{figure}[tbp]

		\includegraphics[width=0.8\columnwidth,center]{figures/robot.jpg}
		\caption{For single robot experiments, we use the Spiri robot
                  (w/ Pixracer and NVIDIA TX1). We add a Realsense D435 camera
                  (although we only use RGB) and UWB sensor module. The IMU
                  measurements are obtained from the Pixracer. The
                  static is in the middle, while the Realsense T265 on the right
                  simulates a second robot in our multi-robot experiment.}
		\label{fig:robot}
\end{figure}

We also test our system with a Spiri robot with real UWB sensors, shown in
Fig.~\ref{fig:robot}. The system has a D435 Realsense camera but we use it as
a monocular camera. The IMU measurements come from the Pixracer flight
controller, and the robot carries an Nvidia TX1 as an on-board computer. We
test the system in our lab with an OptiTrack motion capture system as ground
truth.

We manually control the robot and collect two sequences: the results are
listed in Table~\ref{table:ATE}. To clearly see the difference, we show the
trajectories from same origin. This is different from aligning the two
trajectory to compute the ATE. As Fig.~\ref{fig:indoorExp} shows, our
estimator has less accumulated error than VINS-Mono.

\begin{figure}[tbp]
\includegraphics[width=0.9\columnwidth,center]{figures/indoorExp.jpg}
\caption{VIR indoor experiments with OptiTrack ground truth. The left and
  right figures are two sequences. All trajectories start at the origin and
  are not aligned. Our estimator does not present excessive drift.}
\label{fig:indoorExp}
\end{figure}

We also test our system performance in large atrium. The environment in the
atrium is quite challenging: featureless walls, low light conditions, glass
walls with reflections, etc.  We move the robot around the atrium and make
sure the robot ends at the same point as it starts. Then we compare the
start-to-end error. As Fig.~\ref{fig:atriumExp} and
Table~\ref{table:Start-to-end Error} shows, the VINS-Mono estimation has
significant drift, more than 5.4m. Although the loop closure version can
correct the drift as the loop closure is detected, there is still a clear
error in the trajectory. However, our VIR SLAM works correctly without any
loop closure. The start and end point have a small translation error (0.148m)
in 2D, but our system introduces a bigger accumulated error on the $z$
axis. We believe this is due to the anchor being close to the horizontal plane
of the robot, and the small difference in measurement does not help correct
the $z$ coordinate. We manually checked the UWB ranging information along the
top and bottom edges and we can confirm that our estimation is at the right
position on the boundaries.
\begin{table}[htbp]
	\caption{Start-to-end Error Comparison}
		\begin{tabular}{|c||c|c|c|}
			\hline
			   & End point & 2D Error(m) & 3D Error(m)\\
			\hline
			\textbf VINS-Mono &  (4.29,	3.35, 0.52) & 5.439 & 5.465 \\
			\textbf VINS-LC SLAM  & (0.18, 0.43, -0.38) &  0.464 & \textbf{0.602}\\
			\textbf  VIR-SLAM &  (-0.04, 0.14, 0.84) & \textbf{0.148} &0.853\\
			\hline
		\end{tabular}
	\label{table:Start-to-end Error}
\end{table}

\begin{figure}[tpb]
\includegraphics[trim=0cm 0cm 1.0cm 1.7cm,clip, width=0.65\columnwidth,center]{figures/atriumExp.pdf}
\caption{VIR results in the atrium, which is very visually challenging. The
  robot starts and ends at the same point and we compare the start-to-end
  error. As the figure shows, the start and end point of VIR-SLAM are
  overlapped. Although the VINS-Mono with loop closure (VINS\_LC) can close
  the loop, it does not eliminate the accumulated error from the VIO.}
\label{fig:atriumExp}
\end{figure}

\subsection{Multi-Robot Experiments}

We also test our multi-robot technique, as shown in
Fig.~\ref{fig:multirobotExp}. We manually and independently control two robots
to make a trajectory similar to the "MIST", the name of our lab.
We place one static UWB anchor in the environment. The first
robot is imply a Realsense T265 and an UWB module, show in
Fig.~\ref{fig:robot} (right). We move it to form an "M" shape. The other
robot, Spiri, moves along a "IST" and it controlled independently. Their
trajectories in each robot's frame are shown at the bottom of
Fig.~\ref{fig:multirobotExp}. With simply two inter-robot measurements (with data exchange), robot
1 can estimate the transformation of robot 2 and map robot 2's
trajectory in its own frame as shown at the top of Fig.~\ref{fig:multirobotExp}.

\section{CONCLUSIONS AND DISCUSSIONS}

In this paper, we propose VIR-SLAM, a novel SLAM paradigm combining vision,
inertial, and UWB sensors. By arbitrarily setting up a static UWB anchor in
the environment, robots can have drift-free state estimation and collaboration
on SLAM. Our solution combines the accurate relative pose estimation from VIO
and enhances it using ranging to correct the accumulated error. As our
experiments show, the introduced static anchor can help correct the drift
effectively to improve localization accuracy. We also show an example with two
independent robots mapping each other's
trajectory to their own frame after obtaining two range measurements. This
technique allows the robots to find the inter-robot transformation, which is
extremely useful for multi-robot SLAM.

\bibliographystyle{IEEEtran}

redpajama_set_name: RedPajamaArXiv


text:
Sydney, Australia Telugu Panchangam for January 2023
Sydney Panchangam - January 2023
Sydney, Australia Telugu Panchangam for January 2023 - Telugu Panchangam Calendars for all major cities in USA, Brazil, UK, Australia, United Arab Emirates, Singapore, Malaysia, Saudi Arabia, Kuwait etc.

redpajama_set_name: RedPajamaCommonCrawl


And spell in this day of integer image manipulation that might not be as true as it once was, these photographs are considered by many to be the real batch - photographic manifest of ghosts. Faking ghost photos done double exposure and in-the-lab misrepresentation has been around as long as picturing itself; and today, electronic computer graphics programs can easily and convincingly create ghost images. But these photos are more often than not thought to be untouched, honourable portraits of the unexplained.
Framed reprints, back issues, mugs, and past collectibles showcasing showcasing section insurance coverage of historic events in urban centre sports from The city of brotherly love asker and metropolis Daily News.


text:
Q: Clean datastore for GoogleAppEngine How to clear datastore in GoogleAppEngine.
I want to clear my development data to do a test again, but I can found a way to do that

A: dev_appserver.py --clear_datastore myapp

assuming by "development data", you mean the data in the dev server.

A: If you are running from the commandline, use the --clear_datastore flag, e.g.,
dev_appserver.py --clear_datastore=yes app

Otherwise, if you're running it off the included GAE launcher, go into the settings of your app (double click it), and there should be a little checkbox that says "clear datastore on launch" under Launch Settings.
reference:
https://cloud.google.com/appengine/docs/python/tools/devserver#Python_Using_the_Datastore

A: Simply use Administering Your Datastore (Experimental)
Some Other ways
App Engine: How to "reset" the datastore?
Delete all data for a kind in Google App Engine
Interactive console is also a great way.

A: For Java, the following information can be seen in Using the Datastore - Clearing the Datastore at the end of the page (as of 2013/05/10):

The development web server uses a local version of the Datastore for testing your application, using local files. The data persists as long as the temporary files exist, and the web server does not reset these files unless you ask it to do so.
The file is named local_db.bin, and it is created in your application's WAR directory, in the WEB-INF/appengine-generated/ directory. To clear the Datastore, delete this file.

So, stop your server, delete the file, and restart it up.

A: On your local machine you can go to : http://localhost:8080/_ah/admin/datastore

redpajama_set_name: RedPajamaStackExchange


text:
Satire?
America's Ashley Madison "Christianity": How we escort people to hell by "protecting" them from conviction under the true Gospel.
"Life's short."
"Have an affair."
I mean, really, why not?!
If the Gospel is only about personal salvation and not linked directly to repentance and obedience to Christ as King in practice and in detail in every realm of life in accordance with His Nature as revealed in His Word, then why shouldn't American "Christians" be having extra-marital affairs by the millions? Why shouldn't American "Christians" have tens of millions of accounts at Ashley Madison?
If the crystal clear words of Christ the King are openly dismissed and trampled when it comes to children's education, economics, and law, then why not on marital fidelity, too? (See: Presuppositional Law: Where we begin with law determines where we end.)
Why not?!
If we want a good whiff of the rotten fruit of modern American "Christianity", we need only take a deep, painful breath of the unfolding Ashley Madison saga and savor the deep, thick, pungent aroma of what passes for "the gospel" in America. (See: Beware the "Gospel in a Bottle" and Limp Wristed Gospels Make Limp Wristed Cultures.)
American culture, believe it or not, is a product and consequence of American "Christianity", or, better put, the American religion that often masquerades as Christianity.
This counterfeit Christianity serves to provide the illusion of truth while openly repudiating the Gospel command to repent and opposing the Gospel-fueled Great Commission in practice. In this, American "Christianity" serves as something of an escort service; an institution comprised of spiritual prostitutes being led by their favorite pimp or purveyor of man-centered religion…with their favorite flavor of "Jesus lingo" sprinked around the edges, of course.
Lest we get the idea that this perversion is confined to the more flamboyantly flakey left-leaning "progressive" churches now scattered all across the fruited plane, let's be clear that some of the most "conservative", "Bible-based", and even supposedly Reformed churches are very much into the "Gospel in a Bottle" approach to escorting people to hell.
While each Gospel-in-a-bottle Church has its own individual spin on any number of secondary and peripheral points, they tend to operate as effective escorts to oblivion in the following ways:
These churches preach Jesus and talk about the beauty and power of the Gospel. This approach is usually quite beautiful and good in and of itself, but in context here it is actually a feint. Jesus will be fawned over, Bibles will be read and preached from (often in context, even), and the Gospel will be spoken of, sometimes even in detail. But when it comes to application…
These churches steadfastly refuse to vigorously pursue, much less directly apply, any clear passages that might address (and therefore inherently confront) the active sin of its members. This is done in the name of "love", of course. It is done for the sake of "preserving unity" (meaning: preserving church membership rolls).
In order to facilitate Point #2, these churches present and adamantly defend an intentionally vague, purposefully imprecise notion of sin when it comes to addressing sins openly embraced by members of the church. The sins of other people are fair game, however, and are clearly repudiated and warned against from the pulpit, of course. But are the clear, open, ongoing sins of church members confronted and corrected in a similar manner in accordance with the Gospel and Great Commission command to be and make obedient disciples of Christ (see: Matthew 28:18-20)? Not so much.
In order to facilitate Point #3, which enables Point #2, the whole Gospel must be fundamentally altered, if not abandoned outright, and those who would faithfully proclaim and seek application of the whole Gospel in a manner that makes other church members uncomfortable must be silenced or, failing that, driven out of the church. Thus, "love" and "unity" centered on a counterfeit gospel and phony Christianity is preserved. Thus people and the culture that they comprise is "lovingly" escorted to hell.
This is how the American "Christian" church has led us to the happy land of, among other things: "gay marriage", mass child sacrifice for convenience, and Ashley Madison as a "legal" business openly allowed to operate in "the land of the free" and the home of "the brave".
It all begins with the nature of God, the nature of man, the nature of sin, and the necessity of the Gospel…the whole and true Gospel, which drives the Great Commission. (See: The Awesome Gospel.)
After all, if Americans have the "right" ("God-given", even) to openly worship false gods, then why don't they have the "right" to have an affair? Why don't they have the "right" to cheat on their husband or wife? (See: Note to 'Merica: There is no "God-given right" to worship false gods. Repent accordingly.)
If American Christians have the "right" to disregard the Word of the Lord whom they claim with their lips when it comes to children's education, law, and art, then why on earth would they ever expect to hold "those other people" accountable to the Word of God when it comes to the sanctity of life, sexuality, and marriage?
Talk about hypocrisy!
So the ongoing Ashley Madison scandal isn't evidence of America's rejection of religion. It's evidence of our embrace of American-style "Christianity".
When we "protect" people from conviction under the whole Gospel, we "protect" them from potential repentance.
When we "protect" people from Scripture's clear descriptions of sinful activity when it hits too close to home, we "protect" them from potential restoration.
When we "protect" people from repentance and restoration, we are "protecting" them from true life and consigning them to darkness and death.
When we "protect" people and culture from these things – even when we claim to be doing so in the name of "love" and niceness – we are actually really and truly escorting them to hell.
May God grace His people with a supernatural zeal for repentance, the pursuit of personal holiness, and faithful application Gospel-fueled Great Commission…while there is yet time…and before we reap any more fruit of American "Christianity".
If you know of anyone who might appreciate this post, please share it. If you'd like to see articles like this continue, please click here to help.
Please also "like" us on Facebook, "+" us on Google+, follow us on Twitter and feel free to sign up for new articles by email using the buttons in the upper right corner of the FBC home page.
Also feel free to check out the latest designs at Fire Breathing Tees and the latest memes at Fire Breathing Memes. Thank you for your support!
© 2015 Scott Alan Buss – All Rights Reserved.
Tagged American ChristianityAshley MadisonConvictionGospelInfidelityRepentanceSin
escorts in London says:
Extremely well said Scott, It's not America's dismissal of religion by any stretch of the imagination, it's our grip of American-style Christianity. So genuine. It helps me to remember a TV show back in the 60's before your time, it was called "Love American Style" Very comparative idea. It was Hollywood's adaptation of affection which was entirely plain damnation motivated desire. What's more, our cutting edge places of worship have gone with the same pattern. I would love to see the look on John and Charles Wesley's countenances in the event that they get a look of todays places of worship. Thanks!!!
dennis gagne says:
Very well said Scott, It's not America's rejection of religion at all, it's our embrace of American-style Christianity. So very true. It reminds me of a TV show back in the 60's before your time, it was called "Love American Style" Very similar concept. It was Hollywood's version of love which was actually just plain hell inspired lust. And our modern day churches have followed suit. I would love to see the look on John and Charles Wesley's faces if they get a glimpse of todays churches.
© 2021 Scott Alan Buss. All rights reserved.


The interiors of the new Intesa Sanpaolo Innovation Centre are the fruit of a collaboration between Pokerbeb and the major banking group's designers. The Innovation Centre is in Turin, on the 31st floor of the new skyscraper designed by Renzo Piano, the group's main headquarters. The interiors were designed to be flexible and reconfigurable, as well as to create space for the numerous workshops, training sessions, collaborations and presentations expected to take place there. Through the design, the centre, which includes the administrative offices, is filled with all of the positive feelings that the domestic environment generates in us all, creating a home-like feeling in a place typically dedicated to business.


text:
Az Aprónép (eredeti címén: The Minikins) 12 részes kanadai-német filmsorozat, melyet 1981-ben forgattak. Magyarországon 1989-90-ben sugározta a Magyar Televízió, Németországban a ZDF vetítette le 1982-ben. Rendezője Michael Berry.

Ismertető

Paul Herman építész turistaparadicsommá készül alakítani egy Bilbo nevű érintetlen trópusi szigetet Smith és Dick Foster nevű társaival. Paul feleségével, Annával, és lányával Trudy-val feltérképezi a szigetet. A szigeten él egy csapatnyi kisméretű ember, az ún. Aprónép, magasságuk kb. egytizede az átlagemberének. Eleinte szeretettel üdvözlik az idetévedt építészt, azonban amikor kiderül, hogy mik az elképzelései, Magnus, a törzs vezetője csapdát állít számára. Paul Hermant az ő nagyságukra zsugorítja egy növény nedvének segítségével. Azt ígérik, hogy újra felnagyítják őt, amennyiben feladja terveit, hogy átalakítsa Bilbo szigetét. Hermanékat kanadai visszaútjukon elkíséri az Aprónépből Albi, Dido és Pinkus is. A repülőút során Anna Herman egy kis üvegből véletlenül beleiszik a varázsnövény nedvébe, ezért ő is összezsugorodik (ezt Magnus vészhelyzet esetére adta az Aprónépnek). Megérkezve Foster és Smith megneszelik ezt a balesetet és gátlástalanságukat kihasználva Foster megpróbál anyagi hasznot húzni az Aprónépből, valamint továbbra is fenntartja Bilbo turistaparadicsommá való alakításának terveit. Amikor újra visszatér a szigetre, az Aprónép csapdát állít számára.

Szereposztás

 Cathryn Balk - Anna Herman
 Fiona Body - Trudy Herman
 Ty Haller - Paul Herman
 Tom Heaton - Dick Foster
 Ian Tracey - Albi
 Jan Riddell - Dido
 Ted Stidder - Pincus

Források

 Everipedia
 second.wiki
 Fernsehserien.de
 IMDb

Kanadai televíziós sorozatok

redpajama_set_name: RedPajamaWikipedia


New show reviews and galleries are in! Check out Organic by John Patrick, Frame Denim, and Ann Yee.
DJ, model, actress, music label owner, restaurateur, and style It Girl Hannah Bronfman has a new slash. And it's not the slash of midriff she exhibited in a very cute twin set crop top at Organic by John Patrick's show two weeks ago, where she also served as the designer's unofficial muse.


text:
Home > WSU Press > Human Biology > Vol. 77 (2005) > Iss. 4
Beta 1 Adrenergic Receptor Polymorphisms Arg389Gly and Ser49Gly in the Amerindian and Mestizo Populations of Mexico
Jose Manuel Fragoso, Instituto Nacional de Cardiología Ignacio ChávezFollow
Jose Manuel Rodriguez-Perez, Instituto Nacional de Cardiología Ignacio Chávez
Nadia Perez-Vielma, Instituto Nacional de Cardiología Ignacio Chávez
Nancy Martinez-Rodriguez, Instituto Nacional de Cardiología Ignacio Chávez
The 1 adrenergic receptor genotypes (Ser49Gly and Arg389- Gly) were determined in 190 individuals from 3 Mexican populations. Mestizos and Teenek present the highest frequencies for the *Arg allele and the lowest frequencies for the *Gly allele (Arg389Gly) compared to European, Asian, and African populations. Mayos present the highest frequency for the *Gly allele. The knowledge of the distribution of these alleles could help define the significance of these polymorphisms as genetic susceptibility markers in Amerindian populations.
Fragoso, Jose Manuel; Rodriguez-Perez, Jose Manuel; Perez-Vielma, Nadia; and Martinez-Rodriguez, Nancy (2005) " Beta 1 Adrenergic Receptor Polymorphisms Arg389Gly and Ser49Gly in the Amerindian and Mestizo Populations of Mexico," Human Biology: Vol. 77: Iss. 4, Article 9.
Available at: https://digitalcommons.wayne.edu/humbiol/vol77/iss4/9
Purchase single articles on JSTOR
Purchase single articles on Project MUSE
Purchase single articles on BioOne
Human Biology Pre-Prints
Changing the Landscape of Identity in Forensic Anthropology, Part II
Changing the Landscape of Identity in Forensic Anthropology, Part I
Race, Racism, and the Genetic Structure of Human Populations
Indigenous Science
All Issues Vol. 93, Iss. 2 Vol. 93, Iss. 1 Vol. 92, Iss. 4 Vol. 92, Iss. 3 Vol. 92, Iss. 2 Vol. 92, Iss. 1 Vol. 91, Iss. 4 Vol. 91, Iss. 3 Vol. 91, Iss. 2 Vol. 91, Iss. 1 Vol. 90, Iss. 4 Vol. 90, Iss. 3 Vol. 90, Iss. 2 Vol. 90, Iss. 1 Vol. 89, Iss. 4 Vol. 89, Iss. 3 Vol. 89, Iss. 2 Vol. 89, Iss. 1 Vol. 88, Iss. 4 Vol. 88, Iss. 3 Vol. 88, Iss. 2 Vol. 88, Iss. 1 Vol. 87, Iss. 4 Vol. 87, Iss. 3 Vol. 87, Iss. 2 Vol. 87, Iss. 1 Vol. 86, Iss. 4 Vol. 86, Iss. 3 Vol. 86, Iss. 2 Vol. 86, Iss. 1 Vol. 85, Iss. 6 Vol. 85, Iss. 5 Vol. 85, Iss. 4 Vol. 85, Iss. 1 Vol. 84, Iss. 6 Vol. 84, Iss. 5 Vol. 84, Iss. 4 Vol. 84, Iss. 3 Vol. 84, Iss. 2 Vol. 84, Iss. 1 Vol. 83, Iss. 6 Vol. 83, Iss. 5 Vol. 83, Iss. 4 Vol. 83, Iss. 3 Vol. 83, Iss. 2 Vol. 83, Iss. 1 Vol. 82, Iss. 5 Vol. 82, Iss. 4 Vol. 82, Iss. 3 Vol. 82, Iss. 2 Vol. 82, Iss. 1 Vol. 81, Iss. 5 Vol. 81, Iss. 4 Vol. 81, Iss. 2 Vol. 81, Iss. 1 Vol. 80, Iss. 6 Vol. 80, Iss. 5 Vol. 80, Iss. 4 Vol. 80, Iss. 3 Vol. 80, Iss. 2 Vol. 80, Iss. 1 Vol. 79, Iss. 6 Vol. 79, Iss. 5 Vol. 79, Iss. 4 Vol. 79, Iss. 3 Vol. 79, Iss. 2 Vol. 79, Iss. 1 Vol. 78, Iss. 6 Vol. 78, Iss. 5 Vol. 78, Iss. 4 Vol. 78, Iss. 3 Vol. 78, Iss. 2 Vol. 78, Iss. 1 Vol. 77, Iss. 6 Vol. 77, Iss. 5 Vol. 77, Iss. 4 Vol. 77, Iss. 3 Vol. 77, Iss. 2 Vol. 77, Iss. 1 Vol. 76, Iss. 6 Vol. 76, Iss. 5 Vol. 76, Iss. 4 Vol. 76, Iss. 3 Vol. 76, Iss. 2 Vol. 76, Iss. 1 Vol. 75, Iss. 6 Vol. 75, Iss. 5 Vol. 75, Iss. 4 Vol. 75, Iss. 3 Vol. 75, Iss. 2 Vol. 75, Iss. 1 Vol. 74, Iss. 6 Vol. 74, Iss. 5 Vol. 74, Iss. 4 Vol. 74, Iss. 3 Vol. 74, Iss. 2 Vol. 74, Iss. 1 Vol. 73, Iss. 6 Vol. 73, Iss. 5 Vol. 73, Iss. 4 Vol. 73, Iss. 3 Vol. 73, Iss. 2 Vol. 73, Iss. 1 Vol. 71, Iss. 6 Vol. 71, Iss. 5 Vol. 71, Iss. 4 Vol. 71, Iss. 3 Vol. 71, Iss. 2 Vol. 71, Iss. 1 Vol. 70, Iss. 6 Vol. 70, Iss. 5 Vol. 70, Iss. 4 Vol. 70, Iss. 3 Vol. 70, Iss. 2 Vol. 70, Iss. 1 Vol. 69, Iss. 6 Vol. 69, Iss. 5 Vol. 69, Iss. 4 Vol. 69, Iss. 3 Vol. 69, Iss. 2 Vol. 69, Iss. 1 Vol. 66, Iss. 2 Vol. 66, Iss. 1 Vol. 65, Iss. 6 Vol. 65, Iss. 5 Vol. 65, Iss. 4 Vol. 65, Iss. 3 Vol. 65, Iss. 2 Vol. 65, Iss. 1 Vol. 64, Iss. 6 Vol. 64, Iss. 5 Vol. 64, Iss. 4 Vol. 64, Iss. 3 Vol. 64, Iss. 2 Vol. 64, Iss. 1 Vol. 63, Iss. 6 Vol. 63, Iss. 5 Vol. 63, Iss. 4 Vol. 63, Iss. 3 Vol. 63, Iss. 2 Vol. 63, Iss. 1 Vol. 62, Iss. 6 Vol. 62, Iss. 5 Vol. 62, Iss. 4 Vol. 62, Iss. 3 Vol. 62, Iss. 2 Vol. 62, Iss. 1 Vol. 61, Iss. 5 Vol. 61, Iss. 4 Vol. 61, Iss. 3 Vol. 61, Iss. 2 Vol. 61, Iss. 1 Vol. 60, Iss. 6 Vol. 60, Iss. 5 Vol. 60, Iss. 4 Vol. 60, Iss. 3 Vol. 60, Iss. 2 Vol. 60, Iss. 1 Vol. 59, Iss. 6 Vol. 59, Iss. 5 Vol. 59, Iss. 4 Vol. 59, Iss. 3 Vol. 59, Iss. 2 Vol. 59, Iss. 1 Vol. 58, Iss. 6 Vol. 58, Iss. 5 Vol. 58, Iss. 4 Vol. 58, Iss. 3 Vol. 58, Iss. 2 Vol. 58, Iss. 1 Vol. 57, Iss. 4 Vol. 57, Iss. 3 Vol. 57, Iss. 2 Vol. 57, Iss. 1 Vol. 56, Iss. 4 Vol. 56, Iss. 3 Vol. 56, Iss. 2 Vol. 56, Iss. 1 Vol. 55, Iss. 4 Vol. 55, Iss. 3 Vol. 55, Iss. 2 Vol. 55, Iss. 1 Vol. 54, Iss. 4 Vol. 54, Iss. 3 Vol. 54, Iss. 2 Vol. 54, Iss. 1 Vol. 53, Iss. 4 Vol. 53, Iss. 3 Vol. 53, Iss. 2 Vol. 53, Iss. 1 Vol. 52, Iss. 4 Vol. 52, Iss. 3 Vol. 52, Iss. 2 Vol. 52, Iss. 1 Vol. 51, Iss. 4 Vol. 51, Iss. 3 Vol. 51, Iss. 2 Vol. 51, Iss. 1 Vol. 50, Iss. 4 Vol. 50, Iss. 3 Vol. 50, Iss. 2 Vol. 50, Iss. 1 Vol. 49, Iss. 4 Vol. 49, Iss. 3 Vol. 49, Iss. 2 Vol. 49, Iss. 1 Vol. 48, Iss. 4 Vol. 48, Iss. 3 Vol. 48, Iss. 2 Vol. 48, Iss. 1 Vol. 47, Iss. 4 Vol. 47, Iss. 3 Vol. 47, Iss. 2 Vol. 47, Iss. 1 Vol. 46, Iss. 4 Vol. 46, Iss. 3 Vol. 46, Iss. 2 Vol. 46, Iss. 1 Vol. 45, Iss. 4 Vol. 45, Iss. 3 Vol. 45, Iss. 2 Vol. 45, Iss. 1


Exioms creates great work culture for the employees, perform better.
The world is making progress towards great workplaces for all. The best are getting better around the globe, and the number of great, high-trusted workplaces is increasing. Indeed, the better days at work at a growing number of organizations around the world have a ripple effect. Employees at these workplaces come home to be better parents, better friends, better community members, better citizens of their countries, better members of human race. The great place to work for all movement is advancing across the globe. And that's great news for everyone.
The CEO Magazine is ready to list its annual compendium of the 'Best Places to Work', an award listing based on reviews from company employees. After a research of The CEO Magazine, we were curious to know the reason of earning such high praise from the teams of few companies and finally we decide to bring their stories for our readers. One of the companies of the list'Exioms®' has set a new benchmark for its staffs which is a Business Innovation company. The company provides a wonderful work culture for its employees.
A brainchild of Mrityunjaya Prajapati and Dileep Seinberg, Exioms optimizes innovations and technologies through multiple products and services to name few Blockchain, IoT and Payments. Since its inception, the company has been on forefront by providing its remarkable offerings. For its expertise and dedication, Exioms was awarded as Top 10 Blockchain Technology Solution Provider in Asia along with over 10 Awards in last five years.
Implementing technology solutions in different domain under one roof for various industries, is a challenge on account of various factors, which Exioms has successfully achieved by adopting innovation centric approach for customers. Thoroughly analyzing your needs, industry and product requirements, the company delivers tailor-made, cost-competitive, scalable and robust technology solutions. Exioms' experience across various industries translates into a differentiated value proposition and stimulates time-to-market for clients. The company delivers comprehensive services to five hundred businesses with creating success stories with global companies like TATA, Wuerth, Zain Bank, United Motors (UM) to name a few. Exioms' transparent, efficient and flexible world class technologies development process zero down risks of any kind of failure and creates productive solutions that meet present as well future demands.
Exioms' success can be attributed to the work culture at the company. The company has people who love to face new challenges and curious to implement innovations in every new products and services.
Spearheading the company's rapid growth at the current stage are founders of Exioms, Mrityunjaya Prajapati and Dileep Seinberg. With extensive global experience across domains, they are successful versatile leaders. In the lounge with Abhishek Dubey – Senior Editor, The CEO Magazine, they shares their vision of creating a transformation in the world of emerging work culture for employees and making a difference to the lives of people globally.
We are in the Pursuit of New Innovations to bring a positive impact. We promote new ideas, ownership and innovation at work. We believe that best minds not necessarily come from best institutes, and we are always looking for best talents.
We have several Recognition Achievements Programs at Exioms. Best Performer in a Quarter & Person of the year. We are Goal & Results driven company, we believe small and bigger perks come along when you do good.
Exioms workspace is like a Family, where team strongly believes in collaborative spirit. We do not have any hierarchy system in place, and anybody is reachable to anyone be it Management or Founders of the company.
We are in Pursuit of new innovations, and there is always new to learn at Exioms. We work on latest technologies and we chose our projects accordingly. We work on new ideas and exciting projects.
Company Management style is Mentoring people, building something big with new ideas and technology at place.
Our team gets extensive on job training and learning opportunity. Every week we organize team building activities. We believe it's a continuous journey wherein we both Exioms and employee grow collectively.
Failure is a part of any business. After going through such situation, we came to know what not to do. We practice innovative ideas where experiment required which may succeed or fail. But it doesn't stop us practicing innovation.
We have a fair assessment structure in system like R&R, Wall of Fame, and Early recognition which motivates team to perform better in every aspect of career and also helps top talent to retain and keep team engaged.
In today's competitive world business demands more and quality output. To ensure employees are able to meet their personal commitments – we have flexi hours, work from home, open door and employee friendly policies where everyone has freedom to choose their choice of dressing. To make our work environment more interesting and stress-free Festivals, birthdays, annual function, events are celebrated at the office with the same enthusiasm and high spirit. It not only improves in the quality work but we also use it as a part of strategy for team building.
We have a very interactive employee engagement strategy which includes social outings, get-together with the top management team. Weekly we have fun at floor activity and monthly a major event to break the monotonous of daily routine life.
What personality traits do you look for in your ideal team members?
We have a result and goal oriented approach. Having a performance driven culture, we have developed effective performance assessment which leads to encourage employee involvement.
On regular basis inter department team building activities and events are conducted. People who are professional, honest and smart towards their work succeed in the organization.
Exioms is growing fast with New Innovation and building larger team. Exioms has 10X Expansion goals every year for next 10 years. We would like to see our self as a Global Technology company.
Exioms' plan is to expand a business into 4 Different countries by the end of March 2019. The other motive is to be among the 'Top 10 Market Leaders' in Blockchain Solutions by 2022.