A simulation code for the paper "Robust Cooperative Localization with Failed Communication and Biased Measurements",
published in IEEE Robotics and Automation Letters with a supplemental video that is also in bilibili
View Demo
·
Report Bug OR Request Feature
Table of Contents
Cooperative Localization (CL) plays a crucial role in achieving precise localization without relying on localization sensors. However, the performance of CL can be significantly affected by failed communication and biased measurements. This code shows a robust decentralized CL method that addresses these challenges effectively.
Please cite this work when referencing:
@ARTICLE{RobustCL_RAL,
author={He, Ronghai and Shan, Yunxiao and Huang, Kai},
journal={IEEE Robotics and Automation Letters},
title={Robust Cooperative Localization With Failed Communication and Biased Measurements},
year={2024},
volume={9},
number={3},
pages={2997-3004}
}
About this paper: there are a few mistakes shown in the Errata part.
- Since this is a Python program, you will need Python3. Please Make sure you have it installed.
- Simply clone the repo
git clone https://github.com/RonghaiHe/RobustCL.git
- Install the Python libraries that this program depends on through
requirements.txt:pip install -r requirements.txt
-
If runinng the program with specific failed communication probability(e.g. 0.5):
python3 main_fix.py --comm_fail_prob 0.5
-
If runinng the program with multiple failed communication probability simultaneously:
bash shell_main_fix.sh
-
If runinng the mission(e.g. 1) with multiple failed communication probability simultaneously:
bash shell_main.sh 1
Details of missions are:
0Draw the sample trajectory, for Response;1ARMSE over time, for Fig. 1 & Fig. 2 in the paper;2weight of M-estimation over time, for Fig. 3 in the paper;3ARMSE over tau, for Fig. 4 in the paper;4animation about ARMSE over time, for videos about the paper;5animation about ARMSE over tau, for videos about the paper -
If runinng the mission(e.g. 1) with multiple failed communication probability simultaneously in the original terminal, try using tmuxp after installing tmux:
MISSION=1 tmuxp load robust_cl.yaml
Repository contains:
algorithms, a directory containing all algorithms used et al,off the record temporarilyup to date.BDA.py: "BDA" algorithm in the paper;CI.py: "CI" algorithm in the paper;CU.py: "BDA-CU", "CI+CU" algorithms in the paper;DCL_GS.py: Our proposed method in the paper;DMV.py: "DMV" algorithm in the paper;DR.py: "DR" method in the paper;func_detect_fault.py: multiple functions about detecting the fault measurement;
others, a directory containing other calculation in the paperKL_calc.py: calulate the numerical KL-divergence;video_output.py: multiple figures -> video;
draw.py: draw the final figures;main_fix.py: main function. Set the fix running parameters here;parameters.py: sets the system parameters;requirements.txt, a file containing all Python libraries needed;shell_main.fix.sh: a shell file to run the program simultaneously;utils.py: execute the whole simulation
- Whole codes uploaded
- Formatted with pep8
- Complete Python project structure
See Changelog.md for the change at each version
The conclusion of the paper isn't wrong, whereas there are a few mistakes in this paper. Sorry about that and declare here:
- In formulas (17) and (20), the dimension of
$\boldsymbol{I}$ should be$3N\times 3N$ rather than$N\times N$ (By Chang Liu) - Formula (26) is wrong,
$\boldsymbol{S}_ {t+1} \to \boldsymbol{M}_{t+1}$ (By Chang Liu) - (Confusion Part)In the formula (23), the variable
$\hat{\boldsymbol{X}}_ {t+1 \mid t}^i$ is shown for explanation. During the iteration, it is replaced by the result after$n$ -th iterations. Specifically, we use the latest iteration result,X_all, to calculate the residual item in this code (By Chang Liu) - The serial numbers of references used for comparison in Fig. 1, Fig. 2, Fig. 4 and TABLE II haven't been updated. The right serial numbers can be seen in the last paragraph of section V-A:
DMV [13], BDA [12], BDA-CU [4] and CI+CU [17](By a professor).
Still updating ...
Distributed under the MIT License. See LICENSE for more information.
RonghaiHe - E-mail
Project Link: RobustCL
- All authors of this paper;
- Readers pointing out errors or improvements about the paper: professors, Chang liu;
- Inspired by this repository;
- A recommended template. This README.md is modified from that.