# Algorithms for Robotics

## The point

≺Robotics is hard

• Many subsystems have to come together to make things

work

≺ It’s a hard subject to “dive in” to without getting

stuck or frustrated.

≺ Hence, this course!

## Course Goals

≺ Get you over the “hump” of robot development

• Develop a toolbox of essential algorithms

≺ Use real data as much as possible

• Avoid toy problems

• Experience real-world complications

≺ Prepare you for research in robotics

• And/or building real systems

## Topic Overview

≺ State Estimation

• Vehicle state

• Environment state (mapping)

≺ Perception

• Lots of sensor modalities!

≺ Path Planning

• Obstacle avoidance, kino-dynamic constraints

≺ Additional topics

## State Estimation

## Perception: Sensors

## Robot vision versus computer vision

≺ Caltech 101

## Path Planning

## Un-Topic Overview

≺ Mechanical design

≺ Control systems

## Un-Topics

≺ Control Systems

## Course Basics

≺ Office hours: Thursday 2p-4p in CSE 3737

• Or by appointment

≺ 3 units, qualifies as EECS technical elective credit

• This course is not being run as a seminar, despite the course number

≺ Pre -requisites: Linear algebra , Probability, Programming

## Assignments

≺ Four problem sets

• Programming-based

• You’ll implement algorithms discussed in class

≺ Final project

• Implement a more complicated algorithm

• Implement a system of multiple algorithms

• Develop a new algorithm

## Collaboration Policy

≺ I want you to work together, but it must be organized.

≺ Assignment teams must be formed ahead of time

• I encourage you to vary your teams with each problem set

• All work must be performed with all team members in

attendance

• You’ll have to arrange times to work together.

• I reserve right to modify teams.

## Team Dynamics

≺ You should discuss expectations with your team

before beginning work.

• Making meetings

• Participating actively

• How do you know when someone isn’t pulling their

weight?

• What do you do about it?

≺ If things go bad…

## Original Work Policy

≺ Your assignments must represent original work.

• Can talk with other teams all you want.

• Can NOT share non-trivial code outside your group .

≺ It is critical that your group encounters unexpected

challenges!

• Solving these problems is where you’ll learn the

material!

## Resources

≺ You’re free to use any programming language you’d

like .

≺ … but the official language of the course is Java.

• Sample code will be in Java

• Useful libraries provided in Java

• If you’re new to Java, team up with someone more familiar

with it

≺ Libraries available for you!

• JMat, Vis

## JMat

≺ General linear algebra and geometry

• Basic array-based matrix operations for quick -n-dirty

operations

• Matrix class for fancier operations

• Sparse operations

• Matrix decompositions

≺ Convert between different geometric representations:

• Quaternions, Angle-axis, Euler Angles, Rotation Matrices,

XYTs

## Vis

≺ Easy-to-use OpenGL visualization environment

≺ Basic concepts:

• VisObject

• VisWorld

• VisCanvas

• VisView

• VisData

• VisChain

• VisWorld.Buffer

## Next Time

≺ Introduction to State Estimation

• Reading: Maybeck Ch 1

• Reading (skim): SLAM, Part I

≺ PS1 will be available later today

Prev | Next |