Code Monkey home page Code Monkey logo

mobile-robot-localization's Introduction

MOBILE ROBOT LOCALIZATION

Here, we will use ROS and Python3 to execute the robot localization task.

Results (Before dependencies and installation process we first show our results below)

EKF (Extended Kalman Filter) Localization

ekf gif

 

PF (Particle Filter) Localization

PF gif

 

UKF (Unscented Kalman Filter) Localization

UKF gif

 

InEKF (Invariant Extended Kalman Filter) Localization

InEKF gif

   

Dependencies

System

The system dependency preparation depends on your local system. Basically, you need to install Ubuntu to complete this homework. We recommend Ubuntu 20.04.

  • Linux (Ubuntu)
    • There is no preparation needed. Continue to install ROS :)
  • Windows
    • You can set up a dual-boot system with Ubuntu.
    • You can use Windows Subsystem for Linux to install Ubuntu. You can check instructions on the official website or the recitation.
    • You can use virtual machine to install Ubuntu. The VirtualBox is free.
  • Mac
    • You can use Bootcamp to install set dual-boot system with Ubuntu.
    • You can use virtual machine to install Ubuntu. The VirtualBox is free. The Parallels Desktop is also good.
    • Note: If you're unable to visualize the robot in rviz, try disabling 3D acceleration in your virtual machine setting.

ROS

You also need to install ROS (Robot Operating System) after installing Ubuntu. ROS Noetic is matched with the recommended Ubuntu 20.04. You can find the detailed installation instructions on ROS Wiki.

Python Packages

These packages are required. You can install them by typing pip install $package name$.


Test Your Setup

We provide a dummy filter which you can run to test if you have set up your environment correctly.

  1. Open a terminal, run roscore.
  2. Check config/settings.yaml, ensure the filter_name is set to test.
  3. Open a new terminal, run rviz.
  4. We open a visualization config file. In your rviz, click file -> open config, choose rviz/default.rviz in the homework folder.
  5. Open a new terminal, run python3 run.py.
  6. You should be able to see your a robot moving in rviz.

You should expect to see the visualization shown below. In this figure, green path represents command path without action noise, which is the path we want our robot to follow. blue path represents the exact path that the robot moves due to action noise. The red ellipse and the red arrow represent the filter prediction pose for the robot.

setup


Configurations

Parameters can be modified in config/settings.yaml.

You will only need to modify filter_name and Lie2Cart.

  • filter_name: The filter you would like to run. Options include: EKF,UKF, PF, InEKF, and test.
  • Lie2Cart: Set to True if you finish implementing the extra points question 2.E.

Important Files:

  • All the filters are as follows:
    • filter/EKF.py
    • filter/UKF.py
    • filter/PF.py
    • filter/InEKF.py
  • In utils/util.py, we have
    • func()
    • lieToCartesian()
    • mahalanobis()

mobile-robot-localization's People

Contributors

dhyeyr-007 avatar

Watchers

 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.