Here, we will use ROS and Python3 to execute the robot localization task.
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 Linuxto 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
Bootcampto 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.
- You can use
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.
These packages are required. You can install them by typing pip install $package name$.
We provide a dummy filter which you can run to test if you have set up your environment correctly.
- Open a terminal, run
roscore. - Check
config/settings.yaml, ensure thefilter_nameis set totest. - Open a new terminal, run
rviz. - We open a visualization config file. In your rviz, click
file->open config, chooserviz/default.rvizin the homework folder. - Open a new terminal, run
python3 run.py. - 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.
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, andtest.Lie2Cart: Set toTrueif you finish implementing the extra points question 2.E.
- All the filters are as follows:
filter/EKF.pyfilter/UKF.pyfilter/PF.pyfilter/InEKF.py
- In
utils/util.py, we havefunc()lieToCartesian()mahalanobis()




