Skip to content

RonghaiHe/RobustCL

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Robust Cooperative localization simulation

A simulation code for Robust Cooperative Localization with Failed Communication and Biased Measurements,
published in IEEE Robotics and Automation Letters
View Demo · Report Bug OR Request Feature

Table of Contents
  1. Introduction

Introduction

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}
}

Getting Started

  1. Since this is a Python program, you will need Python3. Please Make sure you have it installed.
  2. Simply clone the repo
    git clone https://github.com/RonghaiHe/RobustCL.git
  3. Install the Python libraries that this program depends on through requirements.txt:
    pip install -r requirements.txt

Usage

  • 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:

    0 Draw the sample trajectory, for Response;

    1 ARMSE over time, for Fig. 1 & Fig. 2 in the paper;

    2 weight of M-estimation over time, for Fig. 3 in the paper;

    3 ARMSE over tau, for Fig. 4 in the paper;

    4 animation about ARMSE over time, for videos about the paper;

    5 animation about ARMSE over tau, for videos about the paper

Structure of Repositoy

Repository

  • 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 paper
    • KL_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

Roadmap

  • Whole codes uploaded
  • Formatted with pep8
  • Complete Python project structure

See Changelog.md for the change at each version

License

Distributed under the MIT License. See LICENSE for more information.

Contact

RonghaiHe - E-mail

Project Link: RobustCL

Acknowledgments

  • All authors of this paper;
  • Inspired by this repository;
  • A recommended template. This README.md is modified from that.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published