Description
1.1 OS Platform
While GTSAM is supported on Mac OS, Windows, and Linux. We will only support Linux
officially. However, you are free to use any OS that best suits you.
2 Task
You will be given a set of noisy observation measurements of landmarks and odometry data.
All the given data will be in HW1.mat file. You will use this GTSLAM pipeline to compute
an optimized estimate of the landmarks and odometry poses.
You will write a function SLAMusingGTSAM(Odom, ObservedLandMarks, StartingPose)
where the input will be:
• Odom, which is a N ×3 matrix where N is the number of odometry measurements made
• ObservedLandMarks, which is a list of structures with each structure which has Locations (a list of noisy observations of each landmark) and Idx (ID of each corresponding
landmark)
• StartingPose, which is pose (X, Y, Th) of the assumed starting pose, where X, Y are
the location and Th is the orientation. The Th is the angle with respect to the x-axis.
Your expected output will be:
• LandmarksComputed, which will be a N x 3 matrix where N is the number of rows and
each row denoting ID, X, Y values where ID is each landmark ID and X and Y are
their corresponding X and Y coordinates. Please make sure this matrix is sorted in
ascending order by ID number.
• AllPosesComputed, which will be M x 3 matrix where M is number of steps taken plus
the origin and each row is X, Y, and Theta where X and Y are the coordinates and
the Theta is the orientation.
2.1 Additional Given
You are also given AllPoseIdeal and StartingPose for you to be able to write and debug
your code. For evaluation, we will be using different starting pose.
2.2 Assumptions
• All values are axis aligned
• Robot poses are defined with respect to the X-axis (horizontal, to the right in images)
• We have bearing and range information for measurements
• We have full odometry for measurements
2
• The robot and landmarks are on a grid, moving 2 meters each step
• Landmarks visible to the robot are in a 2 meter radius from the robot
3 Grading
We will be using some new landmarks and odometry data with your function. Your grade
will be determined by the total error in your computed pose.
3.1 Submission
Please submit your code via CMSC 828T submit section. You should create a folder called
code and copy SLAMusingGTSAM.m into it, zip it, and submit code.zip. Please note the zip
file needs to be .zip format. Any other format is not valid.
Please note:
• Do NOT add or submit any sub-folders.
• Do NOT submit any visualization code. If you have any either remove them or comment them out.
• Do NOT print out any outputs. If you have any debug code printing outputs to the
console, please remove them or comment them out.
• Only include the files that are listed below and any new dependent m-files you might
have created.
• Do NOT submit any other files that are not necessary and was created only for your
testing/ debugging.
Your submission should contain:
• A README.txt detailing anything we should be aware of.
• A LateDays.txt with just the number of late days you would like to exercise for this
submission.
• All necessary files inside one folder code such that we can just run the automated
testing script to see your results. The expected files for this assignments are:
– SLAMusingGTSAM.m
– And any other new m-files you might have created that is necessary for running
your code.
3
4 Collaboration Policy
You can discuss with any number of people. But the solution you turn in MUST be your
own. Plagiarism is strictly prohibited. Plagiarism checker will be used to check your submission. Please make sure to cite any references from papers, websites, or any other student’s
work you might have referred.
4