diff --git a/_relative_includes/architecture_o4a.html b/_relative_includes/architecture_o4a.html deleted file mode 100644 index 26c8804..0000000 --- a/_relative_includes/architecture_o4a.html +++ /dev/null @@ -1,16 +0,0 @@ -
-
-
- -
Local backbone and Connectivity head
-
-
- -
Geodesic Regressor
-
-
- -
Forward Dynamics
-
-
-
\ No newline at end of file diff --git a/_relative_includes/architecture_sptm.html b/_relative_includes/architecture_sptm.html deleted file mode 100644 index 8043bbd..0000000 --- a/_relative_includes/architecture_sptm.html +++ /dev/null @@ -1,12 +0,0 @@ -
-
-
- -
SPTM Retrieval
-
-
- -
SPTM Locomotion
-
-
-
\ No newline at end of file diff --git a/_relative_includes/architecture_ving.html b/_relative_includes/architecture_ving.html deleted file mode 100644 index 92badf2..0000000 --- a/_relative_includes/architecture_ving.html +++ /dev/null @@ -1,8 +0,0 @@ -
-
-
- -
ViNG
-
-
-
\ No newline at end of file diff --git a/_relative_includes/augmentations_images.html b/_relative_includes/augmentations_images.html deleted file mode 100644 index 0a60e51..0000000 --- a/_relative_includes/augmentations_images.html +++ /dev/null @@ -1,24 +0,0 @@ -
-
-
- -
{{ include.caption_1 }}
-
-
- -
{{ include.caption_2 }}
-
-
- -
{{ include.caption_3 }}
-
-
- -
{{ include.caption_4 }}
-
-
- -
{{ include.caption_5 }}
-
-
-
\ No newline at end of file diff --git a/_relative_includes/banana_comparison.html b/_relative_includes/banana_comparison.html new file mode 100644 index 0000000..54d39ad --- /dev/null +++ b/_relative_includes/banana_comparison.html @@ -0,0 +1,8 @@ +
+
+
+ +
Comparison of the HEF capturing the banana-shape distribution versus three other well-established filtering approaches.
+
+
+
diff --git a/_relative_includes/banana_gif.html b/_relative_includes/banana_gif.html new file mode 100644 index 0000000..6167423 --- /dev/null +++ b/_relative_includes/banana_gif.html @@ -0,0 +1,8 @@ +
+
+
+ +
The banana-shape distribution after consecutive prediction steps.
+
+
+
\ No newline at end of file diff --git a/_relative_includes/doors_video.html b/_relative_includes/doors_video.html new file mode 100644 index 0000000..5668f64 --- /dev/null +++ b/_relative_includes/doors_video.html @@ -0,0 +1,5 @@ +
+ +
diff --git a/_relative_includes/extended_results.html b/_relative_includes/extended_results.html deleted file mode 100644 index 0ac5292..0000000 --- a/_relative_includes/extended_results.html +++ /dev/null @@ -1,10 +0,0 @@ -
-
-
- - - - -
-
-
\ No newline at end of file diff --git a/_relative_includes/graph_embedding_images_1.html b/_relative_includes/graph_embedding_images_1.html deleted file mode 100644 index 558dea6..0000000 --- a/_relative_includes/graph_embedding_images_1.html +++ /dev/null @@ -1,24 +0,0 @@ -
-
-
- Aloha - - -
-
- Annawan - - -
-
- Cantwell - - -
-
- Dunmor - - -
-
-
\ No newline at end of file diff --git a/_relative_includes/graph_embedding_images_2.html b/_relative_includes/graph_embedding_images_2.html deleted file mode 100644 index b689fdc..0000000 --- a/_relative_includes/graph_embedding_images_2.html +++ /dev/null @@ -1,24 +0,0 @@ -
-
-
- Eastville - - -
-
- Hambleton - - -
-
- Nicut - - -
-
- Sodaville - - -
-
-
\ No newline at end of file diff --git a/_relative_includes/hef_comparison.html b/_relative_includes/hef_comparison.html new file mode 100644 index 0000000..80408e0 --- /dev/null +++ b/_relative_includes/hef_comparison.html @@ -0,0 +1,15 @@ +
+
+
+ +
+
+
+
+ +
+
+ +
+
+
diff --git a/_relative_includes/hyperparam_table.html b/_relative_includes/hyperparam_table.html deleted file mode 100644 index 17065e6..0000000 --- a/_relative_includes/hyperparam_table.html +++ /dev/null @@ -1,6 +0,0 @@ -
-
- -
Hyperparameters
-
-
\ No newline at end of file diff --git a/_relative_includes/jackal_video.html b/_relative_includes/jackal_video.html deleted file mode 100644 index a44a868..0000000 --- a/_relative_includes/jackal_video.html +++ /dev/null @@ -1,5 +0,0 @@ -
- -
\ No newline at end of file diff --git a/_relative_includes/landmarks.html b/_relative_includes/landmarks.html new file mode 100644 index 0000000..697b77c --- /dev/null +++ b/_relative_includes/landmarks.html @@ -0,0 +1,24 @@ +
+
+
+ +
Measurement likelihood of five landmarks
+
+
+ +
Measurement likelihood of four landmarks
+
+
+ +
Measurement likelihood of three landmarks
+
+
+ +
Measurement likelihood of two landmarks
+
+
+ +
Measurement likelihood of one landmark
+
+
+
diff --git a/_relative_includes/main_diagram.html b/_relative_includes/main_diagram.html deleted file mode 100644 index 1d0b1e8..0000000 --- a/_relative_includes/main_diagram.html +++ /dev/null @@ -1,6 +0,0 @@ -
-
- - -
-
\ No newline at end of file diff --git a/_relative_includes/main_table.html b/_relative_includes/main_table.html deleted file mode 100644 index 0417160..0000000 --- a/_relative_includes/main_table.html +++ /dev/null @@ -1,6 +0,0 @@ -
-
- - -
-
\ No newline at end of file diff --git a/_relative_includes/main_video.html b/_relative_includes/main_video.html index 536f738..210df88 100644 --- a/_relative_includes/main_video.html +++ b/_relative_includes/main_video.html @@ -1,5 +1,5 @@
-
\ No newline at end of file diff --git a/_relative_includes/mathjax.html b/_relative_includes/mathjax.html deleted file mode 100644 index e950e7a..0000000 --- a/_relative_includes/mathjax.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - diff --git a/_relative_includes/method_diagram.html b/_relative_includes/method_diagram.html new file mode 100644 index 0000000..f3a1a07 --- /dev/null +++ b/_relative_includes/method_diagram.html @@ -0,0 +1,6 @@ +
+
+ + +
+
\ No newline at end of file diff --git a/_relative_includes/potentials.html b/_relative_includes/potentials.html deleted file mode 100644 index fab9a1b..0000000 --- a/_relative_includes/potentials.html +++ /dev/null @@ -1,6 +0,0 @@ -
-
- - -
-
diff --git a/_relative_includes/row_videos.html b/_relative_includes/row_videos.html deleted file mode 100644 index 85604f0..0000000 --- a/_relative_includes/row_videos.html +++ /dev/null @@ -1,25 +0,0 @@ -
-

{{ include.title }}

-
-
- -
-
- -
-
- -
-
- -
-
-
\ No newline at end of file diff --git a/_relative_includes/row_videos_x2.html b/_relative_includes/row_videos_x2.html new file mode 100644 index 0000000..0520d0b --- /dev/null +++ b/_relative_includes/row_videos_x2.html @@ -0,0 +1,19 @@ +
+

{{ include.title }}

+
+
+

{{ include.title_1 }}

+ +
+
+

{{ include.title_2 }}

+ +
+
+
\ No newline at end of file diff --git a/_relative_includes/jackal_table.html b/_relative_includes/runtime_table.html similarity index 69% rename from _relative_includes/jackal_table.html rename to _relative_includes/runtime_table.html index bc155cd..fb368cd 100644 --- a/_relative_includes/jackal_table.html +++ b/_relative_includes/runtime_table.html @@ -1,6 +1,6 @@
- +
\ No newline at end of file diff --git a/_relative_includes/simulator_table.html b/_relative_includes/simulator_table.html new file mode 100644 index 0000000..34851e9 --- /dev/null +++ b/_relative_includes/simulator_table.html @@ -0,0 +1,6 @@ +
+
+ + +
+
diff --git a/_relative_includes/simulator_video.html b/_relative_includes/simulator_video.html new file mode 100644 index 0000000..1909d76 --- /dev/null +++ b/_relative_includes/simulator_video.html @@ -0,0 +1,5 @@ +
+ +
\ No newline at end of file diff --git a/_relative_includes/uwb_table.html b/_relative_includes/uwb_table.html new file mode 100644 index 0000000..81e67c7 --- /dev/null +++ b/_relative_includes/uwb_table.html @@ -0,0 +1,6 @@ +
+
+ + +
+
\ No newline at end of file diff --git a/img/ADD_PROJECT_IMAGES_HERE b/img/ADD_PROJECT_IMAGES_HERE deleted file mode 100644 index e69de29..0000000 diff --git a/img/banana.png b/img/banana.png new file mode 100644 index 0000000..156fbf3 Binary files /dev/null and b/img/banana.png differ diff --git a/img/comparison/kld_vs_kappa.jpg b/img/comparison/kld_vs_kappa.jpg new file mode 100644 index 0000000..4a2bed6 Binary files /dev/null and b/img/comparison/kld_vs_kappa.jpg differ diff --git a/img/comparison/kld_vs_num_samples.jpg b/img/comparison/kld_vs_num_samples.jpg new file mode 100644 index 0000000..f4cb05f Binary files /dev/null and b/img/comparison/kld_vs_num_samples.jpg differ diff --git a/img/comparison/von_mise_reconstruction.jpg b/img/comparison/von_mise_reconstruction.jpg new file mode 100644 index 0000000..e8809d0 Binary files /dev/null and b/img/comparison/von_mise_reconstruction.jpg differ diff --git a/img/doors/result.mp4 b/img/doors/result.mp4 new file mode 100644 index 0000000..0bf96d8 Binary files /dev/null and b/img/doors/result.mp4 differ diff --git a/img/github.png b/img/github.png new file mode 100644 index 0000000..ea6ff54 Binary files /dev/null and b/img/github.png differ diff --git a/img/hef.mp4 b/img/hef.mp4 new file mode 100644 index 0000000..aa9f082 Binary files /dev/null and b/img/hef.mp4 differ diff --git a/img/moving_banana.gif b/img/moving_banana.gif new file mode 100644 index 0000000..c627e34 Binary files /dev/null and b/img/moving_banana.gif differ diff --git a/img/o4a.mp4 b/img/o4a.mp4 new file mode 100644 index 0000000..7bb9148 Binary files /dev/null and b/img/o4a.mp4 differ diff --git a/img/paper_image.png b/img/paper_image.png new file mode 100644 index 0000000..c2d060e Binary files /dev/null and b/img/paper_image.png differ diff --git a/img/result.mp4 b/img/result.mp4 new file mode 100644 index 0000000..c23f82b Binary files /dev/null and b/img/result.mp4 differ diff --git a/img/runtime_table.png b/img/runtime_table.png new file mode 100644 index 0000000..4b537bd Binary files /dev/null and b/img/runtime_table.png differ diff --git a/img/simulator/table.png b/img/simulator/table.png new file mode 100644 index 0000000..eea9945 Binary files /dev/null and b/img/simulator/table.png differ diff --git a/img/simulator/video.mp4 b/img/simulator/video.mp4 new file mode 100644 index 0000000..9ca38e6 Binary files /dev/null and b/img/simulator/video.mp4 differ diff --git a/img/spaces.svg b/img/spaces.svg new file mode 100644 index 0000000..e0fda1d --- /dev/null +++ b/img/spaces.svg @@ -0,0 +1,1733 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/timelapse.mp4 b/img/timelapse.mp4 new file mode 100644 index 0000000..e012fdc Binary files /dev/null and b/img/timelapse.mp4 differ diff --git a/img/uwb/five_landmarks.png b/img/uwb/five_landmarks.png new file mode 100644 index 0000000..8ff5c88 Binary files /dev/null and b/img/uwb/five_landmarks.png differ diff --git a/img/uwb/four_landmarks.png b/img/uwb/four_landmarks.png new file mode 100644 index 0000000..26b0ed4 Binary files /dev/null and b/img/uwb/four_landmarks.png differ diff --git a/img/uwb/main.png b/img/uwb/main.png new file mode 100644 index 0000000..3e392f3 Binary files /dev/null and b/img/uwb/main.png differ diff --git a/img/uwb/one_landmark.png b/img/uwb/one_landmark.png new file mode 100644 index 0000000..b50da2f Binary files /dev/null and b/img/uwb/one_landmark.png differ diff --git a/img/uwb/result.gif b/img/uwb/result.gif new file mode 100644 index 0000000..02e60dc Binary files /dev/null and b/img/uwb/result.gif differ diff --git a/img/uwb/result.mp4 b/img/uwb/result.mp4 new file mode 100644 index 0000000..c23f82b Binary files /dev/null and b/img/uwb/result.mp4 differ diff --git a/img/uwb/three_landmarks.png b/img/uwb/three_landmarks.png new file mode 100644 index 0000000..1677a20 Binary files /dev/null and b/img/uwb/three_landmarks.png differ diff --git a/img/uwb/two_landmarks.png b/img/uwb/two_landmarks.png new file mode 100644 index 0000000..7ad3841 Binary files /dev/null and b/img/uwb/two_landmarks.png differ diff --git a/img/uwb/uwb_table.png b/img/uwb/uwb_table.png new file mode 100644 index 0000000..0290156 Binary files /dev/null and b/img/uwb/uwb_table.png differ diff --git a/index.html b/index.html deleted file mode 100644 index fd078ab..0000000 --- a/index.html +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: default -title: Project template -permalink: index.html ---- - -Edit this diff --git a/index.md b/index.md new file mode 100644 index 0000000..f1888f5 --- /dev/null +++ b/index.md @@ -0,0 +1,161 @@ +--- +layout: default +title: Project template +permalink: index.html +use_math: True +carousels: + - images: + - image: "img/moving_banana.gif" + - image: "img/banana.png" +--- + +

The Harmonic Exponential Filter for Nonparametric Estimation on Motion Groups

+ + +

Pre-print

+ + +{% include_relative _relative_includes/authors.html %} +
*Authors contributed equally.
+ + +[//]: # (TODO: Fix paper badge) +
+{% include_relative _relative_includes/badges.html %} +
+ + +[//]: # (TODO: Update video once final one is ready) + +{% include_relative _relative_includes/main_video.html %} +
+ + +[//]: # (Abstract) +
+

+ Abstract. Bayesian estimation is a vital tool in robotics as it allows systems to update the belief of the robot state using incomplete information from noisy sensors. To render the state estimation problem tractable, many systems assume that the motion and measurement noise, as well as the state distribution, are all unimodal and Gaussian. However, there are numerous scenarios and systems that do not comply with these assumptions. Existing non-parametric filters that are used to model multimodal distributions have drawbacks that limit their ability to represent a diverse set of distributions. +In this paper, we introduce a novel approach to nonparametric Bayesian filtering to cope with multimodal distributions using harmonic exponential distributions. This approach leverages two key insights of harmonic exponential distributions: a) the product of two distributions can be expressed as the element-wise addition of their log-likelihood Fourier coefficients, and b) the convolution of two distributions can be efficiently computed as the tensor product of their Fourier coefficients. These observations enable the development of an efficient and exact solution to the Bayes filter up to the band limit of a Fourier transform. We demonstrate our filter's superior performance compared with established nonparametric filtering methods across a range of simulated and real-world localization tasks.

+
+ +## About +[//]: # (TODO: update paper link) +

+ In this page we present an intuitive introduction to our Harmonic Exponential filter, as well as additional videos. For further information and a more detailed explanation, please refer to our paper! +

+ +## Task +

+ In this work, we address the problem of non-parametric Bayesian filtering for multimodal distributions. The goal is to estimate the posterior belief $bel(x_t) = p(x_t\vert z_{1:t},u_{1:t})$ over the state $x_t$ of an agent at time $t$, given a sequence of noisy measurements $z_{1:t}$ and controls $u_{1:t}$. We consider the case where the state space is defined on a motion group, such as $SE(2)$, with a focus on tasks involving multimodal localization from range-only and bearing-only sensors. +

+ +## Method +

+ We propose the Harmonic Exponential Filter (HEF), an exact approach to computing the posterior belief $p(x_t\vert z_{1:t},u_{1:t})$ of the Bayes filter on a compact Lie group (such as motion groups), for band limited prior $p(x_{t-1}\vert z_{1:t-1},u_{1:t-1})$, motion $p(x_t \vert u_t, x_{t-1})$, and measurement likelihood $p(z_t \vert x_t)$. The key idea of our filter is to leverage the harmonic exponential distribution, a class of probability distributions supported on groups and homogeneous spaces and whose parameters are the Fourier coefficients of the log-likelihood function. To preserve the structure of motion groups, we use a generalized form of the Fourier transform that allows us to compute the convolution and product of two distributions efficiently. These two insights allow us to compute the prediction and update step as follows. +

+ + +

+ To showcase the effectiveness of our approach capturing real-world distributions, such as the banana-shape distribution. This distribution appears when the uncertainty in the heading of an agent increases due to the accumulation of error during multiple prediction steps. Starting from a rectangular prior and a Gaussian motion likelihood, we take steps in a horizontal straight path to the right. As expected, the banana-shape distribution emerges after few iterations. +

+ +
+{% include_relative _relative_includes/banana_gif.html %} +
+ +

+ We compare the ability of our HEF capturing the banana-shape distribution against three other well established filtering approaches in the literature. The results highlight how only the HEF and particle filter are capable of modelling the banana distribution. +

+ +
+{% include_relative _relative_includes/banana_comparison.html %} +
+ +

+ Lastly, we present a runtime comparison between a histogram-based approach and the HEF for computing the convolution of two functions. Hist (PP) is a direct convolution written in pure python. Hist (Scipy) uses the $\texttt{scipy.signal.convolve()}$ function, and the HEF, implemented in python using the Numpy FFT library. +

+ +
+{% include_relative _relative_includes/runtime_table.html %} +
+ +

+ The results show how the histogram approach quickly becomes intractable while ours scale more gracefully. +

+ +## Experimental setup +

+ All our experiments focus on two main metrics. The first is the root mean squared error (RMSE) of the posterior predictive mean to the ground truth position of the agent, measured in meters. However, as this metric does not entirely encapsulate the non-Gaussian nature of these estimators, we also calculate the negative log-likelihood (NLL) of the ground truth position under the current belief. In these assessments, our proposed HEF is compared against the following filtering approaches: an EKF implementation that assumes unimodal Gaussian state and error, a histogram filter (HistF), and a particle filter (PF). +

+ +## Simulation experiments +

+ The simulation experiments use range-only measurements. This environment includes a series of landmarks arranged in a line. The robot travels in a counterclockwise circle around the landmarks. The landmarks alternate in providing a range measurement at each timestamp, where we assume known correspondence. +

+ +

+ We showcase the performance of HEF in this localization task and show the predicted belief, $\overline{bel}(x_t)$, measurement likelihood, $p(z_t \vert x_t)$, and posterior belief, $bel(x_t)$, at each timestamp alongside its posterior mean estimate (left). Similarly, we show the uncertainty of the HEF and the baselines (right). +

+ +
+{% include_relative _relative_includes/simulator_video.html %} +
+ +

+ The quantitative results of this experiment are presented in the following table, where metrics are computed over 10 different random seeds. Overall, our filter is comparable if not better than the baselines. +

+ +
+{% include_relative _relative_includes/simulator_table.html %} +
+ +## UWB experiments +

+ For the UWB experiments, we used a Clearpath Husky unmanned ground vehicle (UGV). The UGV is equipped with an ultra-wideband (UWB) tag that communicates with stationary UWB beacons in the surrounding room. Using a ranging protocol between the UGV-mounted UWB tag and the stationary UWB beacons, range measurements between each are computed. The experiment consists of two runs, each with a total of five beacons that were premapped prior to the experiment. For each run, we removed beacons one by one by ignoring their range measurements, producing a total of five trials per run. We assume known correspondence. The motion of the robot is estimated from noisy odometry and IMU data. +

+ +
+{% include_relative _relative_includes/landmarks.html %} +
+ +

+ We present the performance of the HEF and the baselines during the two runs, with different landmark configurations. The left column are from the first run and the right one from the second run. +

+ +
+{% include_relative _relative_includes/row_videos_x2.html title_1="Run 1 - Five landmarks" title_2="Run 2 - Five landmarks" src_1="img/uwb/result.mp4" src_2="img/uwb/result.mp4" %} +{% include_relative _relative_includes/row_videos_x2.html title_1="Run 1 - Four landmarks" title_2="Run 2 - Four landmarks" src_1="img/uwb/result.mp4" src_2="img/uwb/result.mp4" %} +{% include_relative _relative_includes/row_videos_x2.html title_1="Run 1 - Three landmarks" title_2="Run 2 - Three landmarks" src_1="img/uwb/result.mp4" src_2="img/uwb/result.mp4" %} +{% include_relative _relative_includes/row_videos_x2.html title_1="Run 1 - Two landmarks" title_2="Run 2 - Two landmarks" src_1="img/uwb/result.mp4" src_2="img/uwb/result.mp4" %} +{% include_relative _relative_includes/row_videos_x2.html title_1="Run 1 - One landmarks" title_2="Run 2 - One landmarks" src_1="img/uwb/result.mp4" src_2="img/uwb/result.mp4" %} +
+ +

+ The quantitative evaluation in this real-world experiments highlights the performance of our filter. +

+ +
+{% include_relative _relative_includes/uwb_table.html %} +
+ +## Doors' experiments +

+ This experiment consists of localizing an agent navigating in an anticlockwise direction in a corridor using doors detected in RGB images as landmarks. All doors share similar semantic features, such as color or handle. Therefore, we do not assume known correspondence on which of the 21 doors generated a given measurement. We premapped the environment using gmapping and assumed a bearing-only measurement model. Bearing measurements are computed using the centroid of the doors. We integrate the IMU and wheel encoders to estimate the motion of a Jackal platform. +

+ +
+{% include_relative _relative_includes/doors_video.html %} +
+ +## Citation +{% include_relative _relative_includes/citation.html %} + +