This course surveys the development of robotic systems for navigating in an environment from an algorithmic perspective. It will cover basic kinematics, configuration space concepts, motion planning, and localization and mapping. It will describe these concepts in the context of the ROS software system, and will present examples relevant to mobile platforms, manipulation, robotics surgery, and human-machine systems.

Credit Hours: 3

Professor: Simon Leonard

Meetings: Tue, Thu 12h-13h15 Shaffer 101

E-mail: sleonard at jhu dot edu

Office: Hackerman 137B, Homewood Campus

Office hours: Thursday 13h30-15h00

Teaching Assistants: Purnima Rajan (purnima at cs dot jhu dot edu),

Office hours: Wednesday 4h30-5h30 (Hackerman 306), Friday 10-11h (Malone 203)

## Resources:

Wyman 157: 14 desktops with Ubuntu 16.04 and ROS Kinetic

Wyman 140: 6 desktops with Ubuntu 16.04 and ROS Kinetic + 6 Turtlebots

Wyman 170: 6 UR-5 + 9 desktops with Ubuntu 16.04 and ROS Kinetic

(Primary book) Principles of Robot Motion (Choset et. al.), MIT Press, 2005

Additional online resources will be made available for the assignments.

**Other resources**

Probabilistic Robotics, Thrun, Burgard, Fox, MIT Press, 2006.

Planning Algorithms, Steve Lavalle, Cambridge University Press, 2006. book

## Course Preparation

This course is intended for advanced undergraduates and first year graduate students. I assume students have a rudimentary understanding of linear algebra, calculus, and are able to program in C++ and Matlab.

## Goals and Evaluation

There will be five assignments and two exams. Grading will be 50% on the assignments and 25% for each exam. All students will need to use real robots by the of the term to earn their final mark.

Assignment due dates:

Assignment 1: Feb 22 2018

Assignment 2: Mar 8 2018

Assignment 3: Mar 29 2018

Assignment 4: Apr 19 2018

Assignment 5: May 4 2018

Midterm: Mar 15 2018

Homeworks are due by 23:59 EST on the day it is due. **10% per day of the grade is deducted for late submission.** If there is ever a situation which prohibits you from turning in your homework on time, you must alert the Office of Student Affairs because I will check with them to verify the claims.

**Turn in assignments on Blackboard.**

Piazza is used for asking questions (public or private) and posting comments. Please consider anonymous public comments/questions instead of private ones.

## Schedule

**Week 1:** Introduction

**Week 2:** Rigid body motion and velocity. Review of linear algebra used to describe relative 3D motion and velocity between rigid bodies. Kinematics: Forward/inverse kinematics of kinematics chains and mobile robots and manipulator Jacobian.

Suggested readings:

- Choset, H., Lynch, K.M.,
*Principles of Robot Motion: Theory, Algorithms, and Implementations*(Chapter C, E). - Murray, R.M., Li, Z., Sastry, S.S.,
*A Mathematical Introduction to Robotic Manipulation*(Chapter 2). - Siciliano. B., Khatib, O.,
*Springer Handbook of Robotics*(Chapter 1).

**Week 3: **Hand-eye calibration.

*F. Park, B. Martin*Robot Sensor Calibration: Solving AX=XB on the Euclidian Group. IEEE Trans. Rob.Aut. 10(5):717-721, October 1994

**Week 4:** Potential fields. Attractive and repulsive potentials. Implementation of sensor constraints as potentials.

Suggested readings:

- Choset, H., Lynch, K.M.,
*Principles of Robot Motion: Theory, Algorithms, and Implementations*(Chapter 4). - Mezouar, Y., Chaumette, F.,
*Path Planning for Robust Image-based Control*, IEEE Tr. on Robotics 2002.

**Week 5:** Graph-based path planning. Visibility maps, generalized Voronoi diagram, cell decompositions and Minkowski sum.

Suggested readings:

- Choset, H., Lynch, K.M.,
*Principles of Robot Motion: Theory, Algorithms, and Implementations*(Chapters 5, 6). - de Berg, M., Cheong, O., van Kreveld, M., Overmars, M.,
*Computational Geometry: Algorithms and Applications*(Chapters 6, 7, 13, 15).

**Week 6:** Sample-based path planning. Probabilistic roadmaps, rapidly-exploring random trees.

Suggested readings:

- Choset, H., Lynch, K.M.,
*Principles of Robot Motion: Theory, Algorithms, and Implementations*(Chapters 7). - LaValle, S.,
*Planning Algorithms*(Chapter 5).

**Week 7:** Review and midterm.

**SPRING BREAK!**

**Week 8, 9:** Kalman filter, dynamic linear systems. Extended Kalman filter, dynamic non-linear systems.

Suggested readings:

- Choset, H., Lynch, K.M.,
*Principles of Robot Motion: Theory, Algorithms, and Implementations*(Chapters 8). - Davison, A.J., Reid, I.D., Molton, N.D., Stasse, O.,
*MonoSLAM: Real-Time Single Camera SLAM*, PAMI 2007. - Harris, C.,
*Geometry from visual motion*. In Active Vision 1993.

**Week 10, 11, 12:** Bayesian filtering and multiple hyphotheses. Particle filtering, Rao-Blackwellized particle filters.

Suggested readings:

- Choset, H., Lynch, K.M.,
*Principles of Robot Motion: Theory, Algorithms, and Implementations*(Chapters 9). - Thrun, S., Fox, D., Burgard, W., Dellaert, F.,
*Robust Monte Carlo localization for mobile robots,*Artificial Intelligence 2000. - Doucet, A., de Freitas, N., Murphy, K., Russel, S.,
*Rao-Blackwellized particle filtering for dynamic Bayesian networks,*Uncertainty in Artificial Intelligence 2000.

Week 13: Review

**Honor Code: **Above all, you must not misrepresent someone else’s work as your own. You can avoid this in several ways:

Teamwork for assignments is * not* allowed. Do not use work from someone else.

Give proper credit if you do use someone else’s work.

Naturally, even if you give appropriate credit, you will only receive credit for your original work, so for this class you should stick with option #1. All cases of confirmed cheating/plagiarism will be reported to the Student Ethics Board.

Please read the Computer Science Academic Integrity Code.