Skip to content

Wrote all filter-based mobile robot localization algorithms from scratch and put them under one roof i.e. here, I have (also) developed an ecosystem to bind any localization filter based python script with a customized robot motion framework in ROS.

Notifications You must be signed in to change notification settings

DhyeyR-007/Mobile-Robot-Localization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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()

About

Wrote all filter-based mobile robot localization algorithms from scratch and put them under one roof i.e. here, I have (also) developed an ecosystem to bind any localization filter based python script with a customized robot motion framework in ROS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages