Code Monkey home page Code Monkey logo

iros-2021-learn-sdsmm-artificial-real-data's Introduction

Learning State-Dependent Sensor Measurement Models with Limited Sensor Measurements


System Requirements

This repository was developed and tested on systems with the following specifications:

  • Ubuntu 20.04 LTS or MacOS Catalina (version 10.15.7)
  • Python3 (version 3.7.2 up to 3.8.5)

Download and Environment Setup

Note: Python3 was used for this project.

Run the following commands to download and set up an environment for this project. It is recommended that you run the commands one-by-one.

# Create a repo directory for this project, and then clone the repo.
mkdir -p $HOME/repos && cd $HOME/repos
git clone https://github.com/troiwill/iros-2021-learn-sdsmm-artificial-real-data.git iros-2021-sdsmm

# Setup a virtual environment for this project.
cd iros-2021-sdsmm/scripts/env
source setup.sh
bash install_packages.sh

You only need to perform this setup once. Each time you open a new terminal environment, run source setup.sh to start the Python virtual environment.

The rest of this document assumes that the Python virutal environment is active.


Quick run

First, unpack the data for this project. (Use the terminal commands in the section titled "Data"). Then run the following commands to test the localizer script for the Extended Kalman Particle Filter.

# Change to the localizer directory.
cd $IROS21_SDSMM/scripts/localize

# Run the localizer using Course 1, Robot 1, and the A Priori sensor measurement model.
python run_localizer.py 1 1 apriori

# Compute the localization results and graph robot trajectory.
python calc_localize_result.py $IROS21_SDSMM/exps/localize/apriori/robot-1/apriori/ekpf/data-1/results.h5

The output graph (from calc_localize_result.py) shows the predicted robot positions from the EKPF and the true robot positions.

Predicted trajectory for Robot 1 on Course 1


Data

The data directory contains the learning and localization data used for this project. The data was derived from the MR.CLAM dataset from the University of Toronton. Run the terminal command below to unpack all the ZIP files. The ZIP files will unpack into directories called clean and learn.

cd $IROS21_SDSMM/data/mrclam
for p in $(ls *.zip); do unzip $p; done

Learning Data

The following ZIP files contain training data for the Mixture Density Network (MDN). Please refer to the paper to determine the MDNs were trained.

  • mrclam_learn_indiv_data.zip - Used to train RDO models.
  • artificial_learn_data.zip - Artificial data used to pre-train an MDN. MDN is later fine-tuned.
  • bootstrapped_mrclam_learn_data_robot*.zip - Bootstrapped training data for robot*. This dataset has two purposes.
    1. Used to fine-tune the pre-trained MDN (FLRD models).
    2. Used to train an MDN without pre-training (LRDO models).

Localization Data

The courses_data_assoc.zip file contains data for localization. Compared to the original MR.CLAM dataset, some measurement data was removed due to possible landmark mismatches.


Performing Training

Relevant files and data:

To determine how to run the training script, run python train.py -h in the terminal.

If you have questions regarding the training parameters for the networks, please send me an email.


Performining Localization

Relevant files and data:

To determine how to run the localizer, run python run_localizer.py -h in the terminal.

Once you ran the localization script, you can check yuor results using calc_localize_result.py. To determine how to run this script, run python calc_localize_result.py -h in the terminal.

iros-2021-learn-sdsmm-artificial-real-data's People

Contributors

troiwill avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.