100% Guaranteed Results


Introduction to Robotics: Homework 4 Solved
$ 20.99
Category:

Description

5/5 – (1 vote)

The goal of homework 4 is to practice and implement what you have learned in the recent courses. In the following exercises, you will implement your own Monte Carlo Localization algorithm step by step and test on a real map visualized as following.

The overall algorithm is shown as below.

Exercise 0
Let’s take a look at what we have now. In the scripts folder, you will get:
1. main.py : this file is the main program for the Monte Carlo Localization algorithm. By calling other functions you write in this homework, you will be able to help a robot localize itself. You should run this file after you finished implementing all the other modules. DO NOT MODIFY!!!
2. MapReader.py : this file reads the map for you. DO NOT MODIFY!!!
3. MotionModel.py : this file is the motion model for the robot. You need to fill in the MotionModel.update function, which will be described in detail below.
4. Resampling.py : this file is for resampling particles. You need to fill in the
Resampling.low_variance_sampler function, which will be described in detail below.
5. SensorModel.py : this file is the sensor model for the robot. You need to fill in the
SensorModel.beam_range_finder_model function, which will be described in detail below.
You can add any other functions in the files for your convenience.
Then you need to install the dependencies. Python version 3.7 or 3.8 is recommended. It is recommended to use conda and virtual environment to configure the programming environment. Please run

to install the dependencies for this homework.
Exercise 1: Motion Model 【30% score】
You need to implement the MotionModel.update function. Please follow the notes below when implementing your algorithm.

NOTE1: This exercise asks you to implement the sample odometry motion model, which can be found in the slides.
Here are the definitions of the variables you are going to be used in your implementation:
1. u_t0 : input, vector in the odometry motion model algorithm.
2. u_t1 : input, vector in the odometry motion model algorithm.
3. x_t0 : input, vector in the odometry motion model algorithm.
4. x_t1 : output, vector in the odometry motion model algorithm.
5. del_rot1 : intermediate variable, in the odometry motion model algorithm.
6. del_trans : intermediate variable, in the odometry motion model algorithm.
7. del_rot2 : intermediate variable, in the odometry motion model algorithm.
8. del_rot1_h : intermediate variable, in the odometry motion model algorithm.
9. del_trans_h : intermediate variable, in the odometry motion model algorithm.
10. del_rot2_h : intermediate variable, in the odometry motion model algorithm.
11. self.alpha_1 , self.alpha_2 , self.alpha_3 , self.alpha_4 : hyper-parameters correlating with , , , in the odometry motion model algorithm.
Hint: Make sure that the output lies in .
Exercise 2: Resampling 【30% score】
You need to implement the Resampling.low_variance_sampler function. Please follow the notes below when implementing your algorithm.

NOTE1: This exercise asks you to implement the low variance sampling algorithm, which can be found in the slides.
NOTE2: For sampling , use the np.random.uniform function instead of other
NOTE3: Strictly follow the low variance sampling algorithm in the slides or you might not pass the autotest program and might affect the grading.
Here are the definitions of the variables you are going to be used in your implementation:
1. X_bar : input, the set in the low variance sampling algorithm. In the implementation, X_bar is an shaped array.
2. X_bar_resampled : output, the set in the low variance sampling algorithm. In the implementation, X_bar_resampled is an shaped array.
Exercise 3: Sensor Model 【40% score】
You need to implement the SensorModel.beam_range_finder_model function. Please follow the notes below when implementing your algorithm.

NOTE1: This exercise asks you to implement the beam range finder model. The algorithm can be found in the slides.
NOTE2: The SensorModel.rayCast module is given. Please DO NOT MODIFY and do not implement your own ray cast algorithm even though the given one might be suboptimal.
NOTE3: The lidar is 25cm to the center of the agent, while the sensor data is centered at the location of the lidar. Therefore, in the sensor model, you need to calculate the coordinates of the laser based on the agent’s coordinates and orientations and then calculate the related weights.
Here are the definitions of the variables you are going to be used in your implementation:
1. self.map : the map given by the main program. Please refer to instruct.txt for more information. DO NOT MODIFY.
2. self.Z_MAX : the parameter for the four distributions.
3. self.P_HIT_SIGMA : the parameter for the Gaussian distribution
4. self.P_SHORT_LAMBDA : the parameter for the exponential distribution
5. self.Z_PHIT , self.Z_PSHORT , self.PMAX , self.Z_PRAND : the weights , for the four distributions.
6. z_t1_arr : laser range readings at time , correlates with in the algorithm.
7. x_t1 : particle state belief at time , correlates with in the algorithm.
8. q : probability of at time , correlates with in the algorithm.
Hint1: maybe you can use to replace the original for implementation convenience.
Hint2: when calculating the probabilities, make sure you filter out all the s.
Exercise 4: Run the entire program
After finishing all the modules required for the localization task, you need to run the program main.py to generate the final result. Here are the steps for finishing the whole homework.
Step 1: make sure that you are in the …/hw4/code/scripts directory before you run your entire program.
Step 2: set the save_flag to 1 and clear the CONTENTS of …/hw4/code/scripts/results directory if any exists. DO NOT DELETE THE DIRECTORY ITSELF!!!
Step 3: run python main.py . The main.py program will first read a series of data from
…/hw3/code/data/log/ . Then it will try to localize the robot using the modules you have implemented.
Step 4: after running main.py , there will be a number of photos generated into the
…/hw4/code/scripts/results folder. Run python make_video.py to generate video according to the photos generated. You can check the generated video with the given one to see if everything went right.
Tip1: there is a visualization of the sensor data in …/hw4/code/data/robotmovie1.gif , it might help you verify whether your implementation goes right.
Tip2: DO NOT MODIFY ANY SEED OR PARAMETER.
How to submit your homework
Compress the entire hw4 directory to a ZIP file named 20xxxxxxxx(your student ID).zip and submit it to Web Learning (网络学堂).
If you have any problems/bugs on the homework, please contact us via WeChat group or email: chen-xy21@mails.tsinghua.edu.cn or zy-jiang21@mails.tsinghua.edu.cn or leave a message
on Web Learning (网络学堂).

Reviews

There are no reviews yet.

Be the first to review “Introduction to Robotics: Homework 4 Solved”

Your email address will not be published. Required fields are marked *

Related products