推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

Ice Rover,CS 7638:用于机器人的人工智能

更新时间:2019-12-07 13:18:18 大小:111K 上传用户:nobugme查看TA发布的资源 标签:机器人人工智能 下载积分:2分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

Assignment description for CS7638, project 5: Ice Rover

部分文件列表

文件名 大小
cs7638-ice-rover.pdf 111K

部分页面预览

(完整内容请下载后查看)
CS 7638: Artificial Intelligence for Robotics  
Ice Rover Project  
Fall 2019 - Deadline: Monday December 2nd, Midnight AOE  
Project Description  
The goal of this project is to give you practice implementing a SLAM module  
and a robot control system that uses it to navigate through a world.  
Part A (worth 33%) asks you to build a SLAM system that can keep track of  
where your robot is located after a series of movements (using measurements  
to landmark beacons). Complete the SLAM class in the ice_rover.py file. The  
movements and measurements will have noise.  
Your robot will drop via parachute onto the ice sheet. To help it navigate, a set  
of solar powered beacons have also been dropped onto the ice (they are flat, and  
the rover can roll over them). These beacons are scattered randomly, but will  
melt themselves into the ice upon placement, so do not move around.  
Your robot should make it’s own map of the environment, using it’s starting  
location as the origin (0,0), and taking advantage of the signals from the beacons  
to maintain a good estimate of its own position relative to the initial (0,0) origin  
as it slips around on the ice. (The ice may introduce movement noise, in that  
your robot may not turn or move the exact distances you command.)  
In part A, your robot will receive a set of measurements as it follows a pre-  
scripted set of movements, and your SLAM module will need to calculate and  
report your robot’s position after each movement and measurement (relative to  
the arbitrary (0,0) staring point). [You do not guide the robot in part A, this  
part is only to test your SLAM module.]  
Part B (worth 67%) asks you to navigate your robot around the environment to  
take a sample at each of a list of sample sites. Complete the WayPointPlanner  
class in the ice_rover.py file.  
The science team has manually planted a set of special beacons (called “sites”)  
in specific locations which your robot must navigate to and sample.  
Note: There is a time penalty for attempting to sample an invalid site. Your  
robot has a maximum turning angle and distance that it can move each turn.  
Movement commands that exceed these values will be ignored and cause the  
robot to not move.  
Your robot will not have a map of the environment, but (in part B) it will receive  
a list of the absolute locations of these sample points. Your robot will have to  
discover the mapping between it’s own “relative” map that places the origin  
(0,0) at the point where the robot landed and the “absolute” locations where  
1
sample sites are located. Hint: Once you sample a site, it will remove itself from  
the “todo_sample” list, so as soon as you sample your first site, you should have  
a very good idea of where you are in “absolute” coordinates.  
Note that your robot will never have access to the map of where the randomly  
scattered beacons are located, only a list of the absolute locations of the manually  
planted sample sites. (Each sample site is marked with a beacon that behaves  
in exactly the same way as the scattered beacons, but is called a “site” instead  
of a “beacon” to indicate that it was manually placed and marks a sample site.)  
Submitting your Assignment  
Your submission will consist of the ice_rover.py file (only) which will be uploaded  
to Canvas. Do not archive (zip,tar,etc) it. Your code must be valid python  
version 2.7 code, and you may use external modules such as numpy, scipy, etc  
that are present in the Udacity Runaway Robot auto-grader. [Try to ensure  
that your code is backwards compatible with numpy version ‘1.13.3’ and scipy  
version ‘0.19.1’]  
Your python file must execute NO code when imported. We encourage you to  
keep any testing code in a separate file that you do not submit. Your code  
should also NOT display a GUI or Visualization when we import or call your  
function under test. If we have to manually edit your code to comment out your  
own testing harness or visualization you will receive a -20 point penalty.  
Testing Your Code  
We have provided testing suites similar to the one we’ll be using for grading  
the project, which you can use to ensure your code is working correctly. These  
testing suites are NOT complete, and you will need to develop other, more  
complicated, test cases to fully validate your code. We encourage you to share  
your test cases (only) with other students on Piazza.  
You should ensure that your code consistently succeeds on each of the given test  
cases as well as on a wide range of other test cases of your own design, as we  
will only run your code once per graded test case. For each test case, your code  
must complete execution within the proscribed time limit (5 seconds) or it will  
receive no credit. Note that the grading machine is relatively low powered, so  
you may want to set your local time limit to 2.5 seconds to ensure that you don’t  
go past the CPU limit.  
We are using the bonnie autograder system which allows you to upload and  
grade your assignment with a remote / online autograder. See the submit.py file  
posted as part of the assignment on Canvas for details. You are not required to  
use this online/autograder feature, but if you do, it will give you more assurance  
that your code will work correctly with our autograder when we grade the files  
2

全部评论(0)

暂无评论