# Intro to Robotics

## Contents

# Class Info

- Author: Carter Schultz and Andrew Adare
- Contact: CarterJSchultz (at) gmail
- Thursdays 5:30 - 7:30
- Meetup
- Dates Given: 11/2/17 - ?

Python examples related to probabalistic robotics are being collected on GitHub.

# Class Slides

- Class 1: Intro to Robotics
- Class 2: Kinematics
- Class 3: Robot Dynamics
- Class 4: Lie and Robot Control
- Google Drive Folder
- Class 5: Intro to Probability
- Class 7: Kalman filters II
- Class 8: Monte Carlo methods, sensing and motion models
- Class 9: Markov localization with particle filters

Edit access for the google drive has been shared with boulderhackerspace@gmail.com, or contact Carter Schultz for info.

# Class Notes

## Section 1: Robot Motion

This section covers a description of how robots move and the mathematics behind motion in 3-D.

### Class 1 11/1/2017

We covered an overview of the field of robotics, and discussed member's goals with the class. The general consensus was interest in more advanced academic robotics concepts. Class 2 will be an introduction to robotic kinematics. We will be working out of "A Mathematical Introduction to Robotic Manipulation" a free PDF of which is available here. Members are encouraged to look at Chapter 2 before next session.

### Class 2 11/8/2017

We covered derivations of rotation matrices and transformation matrices, and introduced the concept of a the manipulator Jacobian and the dexterous work envelope. Significant interest was given to the higher level ideas and application of the tools, less towards the specific mathematics.

### Class 3 11/15/2017

We covered sections of Mathematical Introduction to Robotic Manipulation relevant to motion and dynamics. We introduced the concepts of Robot Spatial and Body Velocities, and how these are twists. We demonstrated the use of the Jacobian in calculating robot forces and torques.

### Class 4 12/6/2017

We covered an overview of Lie Algebra's and Lie Group's and how these are the impetus behind our descriptions of robotic mechanisms. We looked at the principle of least action and used it to describe the general form of a robot arm's dynamics. We covered basic control laws and how they can be applied using our dynamic model of a robot arm.

## Section 2: Probabilistic Robotics

This section will be based out of the book Probabilistic Robotics and cover how probability is heavily used in modern robotics to improve their robustness and performance.

### Class 5 12/14/2017

We began talking about probability at a high level. We defined a random variable, and showed how joint and conditional probabilities work. We looked at Bayes' Therom and showed how it can describe an inference. We introduced the basic descriptions of Belief, Action (U), and Measurement (Z) that our book will use.

### Class 6 12/21/2017

We covered the theoretical framework for recursive state estimation, and how this is realized in Bayesian filters. We focused on the mathematics of linear Kalman filters.

### Class 7 1/4/2018

We went into greater detail on linear Kalman filters: analysis of the prediction and update phases, modeling guidelines, and implementation in python using the filterpy library. We discussed nonlinearity in the state transition and measurement functions, and how the unscented Kalman filter can overcome difficulties arising from nonlinearity.

### Class 8 1/11/2018

We covered the foundations of particle filter based localization methods: motion models, sensor models, and prediction. We discussed the statistics of likelihood functions and Monte Carlo sampling. We went through basic software implementations of motion predictions and sensor updates using python.

### Class 9 1/18/2018

We discussed the Markov localization problem in generality, focusing on the cycle consisting of prediction and update steps. We discussed motion prediction using a probabalistic odometry-based sampling model, we touched on various resampling strategies, and put various components together to demonstrate a basic 2D particle filter in a python simulation. We briefly discussed how we "cheated" in the simulation by solving for localization as a known-correspondence problem.