Welcome
Tuesdays & Thursday 11:00 AM  12:20 PM in CSE 2154


Who is this for?
This is a graduate course that introduces the mathematical tools used in many diverse areas of robotics. The class is inspired by the equivalent class at Carnegie Mellon University by Michael Erdmann  811 Mathemetical Foundations for RoboticsThe goal of the course is to help you accomplish the following:
 Understand the geometry of linear systems of equations, including null spaces, row spaces and column spaces. Understand eigenvalues, diagonalization, singular value decomposition, leastsquares solutions. Apply these skills to infer rigidbody transformations from data.
 Learn how to model data using interpolation, linear regression, and higherorder approximation methods. Consider these skills to recognize objects from pointcloud data.
 Understand different methods for finding roots of equations, in one dimension and higher, including bisection, Newton's method, Müller's method. Develop skills to analyze convergence rates.
 Generalize finitedimensional linear algebra concepts such as orthogonal bases to perform function approximation.
 Develop techniques for solving differential equations numerically.
 Understand optimization techniques such as gradient descent, conjugate gradient, Newton's method. Learn the basics of convex optimization. Consider obstacleavoidance viewed as costminimization.
 Develop methods from the Calculus of Variations for higherorder optimization. Apply these techniques to develop the Lagrangian dynamics of a robot manipulator.
 Learn basic computational geometry techniques, such as Convex Hull and Voronoi diagrams. Implement a geometric robot motion planner.
Prerequisites
Since this is a graduate course we are typically quite loose with prerequisites.Recommendations:
 A good foundation of probability and linear algebra. This class will have more math in it than most Computer Science classes.
 A good working knowledge of Matlab or Python with Numpy. We will be doing things in Matlab as part of the class.
Textbooks
The two texts that we will draw from are: W. H. Press, B. P. Flannery, S. A. Teukolsky, and W. T. Vetterling. Numerical Recipes in C. Cambridge University Press. (Any edition.)
 T. Bewley, Numerical Renaissance: simulation, optimization, & control
We will suggest readings from Numerical Recipes but the Bewley book will also provide a solid reference for most of the material.
Administrative:
 Web site: This site. Will have posted calendar/syllabus with posted lecture notes, other administrative stuff.
 Piazza: You will all receive an invitation to Piazza for CSE291G00. If not, send us email. Rather than emailing questions to the teaching staff (i.e. me), I encourage you to post your questions on Piazza. Find your class page here
 Matlab access: if you don’t know how to get MATLAB access, first ask a friend. Then come see the TAs or me. Python access: We encourage you to use Python / Numpy / SciKitLearn directly or as part of a package such as Anaconda.
Grading
As part of the class we will have 5 homework assignments directly related to the material covered. The assignment should preferably be solved by hand and not using computer code. The assignments will be fairly basic.In addition, there will be a final project related to robotics that you can solve individually or in groups of two. The assignment will require some degree of coding.
 Homework Assignments: 75%
 Final project: 25%
 Class participation: max 5% (i.e. it can only raise your grade)
Late Policy
Don't be late, it’s not fair to the TA. We will not accept late home works for full credit it unless you have (several day) prior approval from the professor for extenuating circumstances. Submit what you have on time.Honesty and Integrity Policy
Projects are to be done individually (or within your group) but you may collaborate at the white board level. You may help each other with algorithms and general computation, but your solutions must be your own.REPEAT: THE CODE MUST BE YOUR OWN. ANYTHING TAKEN FROM THE WEB IS NOT YOUR OWN!!!!
Last modified: 12/23/2017