CS 8803 – O01:      Artificial Intelligence for Robotics Project 3 : Ice Rover Solution

50.00 $

Categories: ,

Description

5/5 - (3 votes)

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 it’s 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 prescripted 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).

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

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.

 

Frequently Asked Questions (F.A.Q.)

Q: Measurements to beacons are relative, how do I find my absolute location? A: You have a list of absolute locations for sites. When you successfully sample a site, it will disappear from the list of sites you still need to process. You can use this information to figure out your absolute coordinate (within the sampling size tolerance) once you make a successful sample.

Q: How do I handle landmark beacons that are outside the horizon distance (and not returning measurements)? A: Do not add beacons to your matrix until you see them, and if you stop receiving measurements from them, stop updating the appropriate spots in your matrix until they come back into view.

  • Project-3-ICE-Rover-lrqkdi.zip