Algorithms for Robotics
≺Robotics is hard
• Many subsystems have to come together to make things
≺ It’s a hard subject to “dive in” to without getting
stuck or frustrated.
≺ Hence, this course!
≺ 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
≺ State Estimation
• Vehicle state
• Environment state (mapping)
• Lots of sensor modalities!
≺ Path Planning
• Obstacle avoidance, kino-dynamic constraints
≺ Additional topics
Robot vision versus computer vision
≺ Caltech 101
≺ Mechanical design
≺ Control systems
≺ Control Systems
≺ 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
≺ Four problem sets
• You’ll implement algorithms discussed in class
≺ Final project
• Implement a more complicated algorithm
• Implement a system of multiple algorithms
• Develop a new algorithm
≺ 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
• You’ll have to arrange times to work together.
• I reserve right to modify teams.
≺ You should discuss expectations with your team
before beginning work.
• Making meetings
• Participating actively
• How do you know when someone isn’t pulling their
• 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
• Solving these problems is where you’ll learn the
≺ You’re free to use any programming language you’d
≺ … 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
≺ Libraries available for you!
• JMat, Vis
≺ General linear algebra and geometry
• Basic array-based matrix operations for quick -n-dirty
• Matrix class for fancier operations
• Sparse operations
• Matrix decompositions
≺ Convert between different geometric representations:
• Quaternions, Angle-axis, Euler Angles, Rotation Matrices,
≺ Easy-to-use OpenGL visualization environment
≺ Basic concepts:
≺ Introduction to State Estimation
• Reading: Maybeck Ch 1
• Reading (skim): SLAM, Part I
≺ PS1 will be available later today