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