S

Simulation-Environment-for-Cooperative-Localization

This project is to the create a localization environment for robotic cooperative localization

LEMUR-CoLo-Sim

Synopsis

Cooperative localization is still a challenging task for cooperative robot control. CoLo is a robotic simulation environment for cooperative localization or cooperative simultaneous localization and mapping (SLAM) using real world dataset[1] or simulated data. The goal of this project to let users to create and test their own algorithms with some existing algorithms. Compared with other popular robotic simulation environments[2], it has fewer dependencies and more convenient to add localization algorithms without worry much about the robot settings. Moreover, it is able to use both real world data and simulated data to test the robustness and liabilities of these algorithms, whereas other simulation environments use only simulated data. https://drive.google.com/file/d/1NlUM2QXT_KfZkVOJu3Xsm8_QL8OSy6hz/view?usp=sharing

Features

Real world dataset Flexible control on the real world dataset Easy to add and modify algorithms Preloaded with several existing algorithms Modularized simulation environment Basic statistical analytic tools for algorithms

Installation

  1. Clone this repository:
git clone git@git.uclalemur.com:billyskc/Simulation-Environment-for-Cooperative-Localization.git

How to run the simulation environment

  1. Install all dependencies

  2. Create a python script for the environment(ex: test_simulation.py) a. Create a dataset_manager with proper setting b. Load a localization algorithm in to robots c. Create simulation manager, recorder and analyzer in CoLo d. Put all these part in simulation manager

  3. Run CoLo In MAC terminal:

    python Localization_envir.py
    

    Sample Code for running CoLo

Available Aglorithm:

  1. LS-Cen
  2. LS-CI
  3. LS-BDA
  4. GS-SCI
  5. GS-CI

Dataset:

UTIAS dataset:

  • MRCLAM_Dataset1
  • MRCLAM_Dataset2
  • MRCLAM_Dataset3
  • MRCLAM_Dataset4
  • MRCLAM_Dataset5
  • MRCLAM_Dataset6
  • MRCLAM_Dataset7
  • MRCLAM_Dataset8
  • MRCLAM_Dataset9 details info: UTIAS Dataset.

Authors

Shengkang Chen Cade Mallett Kyle Wong

Analytical Tool:

Plots:

  1. Estimation deviation error vs. time
  2. Trace of state variance vs. time
  3. Landmark observation vs. time
  4. Relative observation vs .time

Values:

  1. Avg. location deviation errors
  2. Avg. trace of state variance

How to add new localization algorithm to the environment

  1. Create the algorithm in the predefined algorithm framework ``` def propagation_update(self, robot_data, sensor_data): [s, orinetations, sigma_s, index] = robot_data ... return [s, orinetations, sigma_s]

def absolute_obser_update(self, robot_data, sensor_data): [s, orinetations, sigma_s, index] = robot_data ... return [s, orinetations, sigma_s]

def relative_obser_update(self, robot_data, sensor_data): [s, orinetations, sigma_s, index] = robot_data ... return [s, orinetations, sigma_s]

def communication(self, robot_data, sensor_data): [s, orinetations, sigma_s, index] = robot_data ... return [s, orinetations, sigma_s]

4. Add it to the algorithm library


## Files and folders includes within the project

### Datasets Folder:
Store the UTIAS datasets which has odometry, measurement and groundtruth data for each robot

### Functions Folder:
Contains all the python scripts
Folders:
simulation process
robots
requests
localization algos
dataset_manager
data_analysis