RobotMath: Introduction and Motivation

From Tekkotsu Wiki

Jump to: navigation, search

A robot gets into an elevator, intending to travel to the third floor. It can see the elevator button marked "3". It has an arm with a hand that can reach the button. But it stands there, helpless, because it doesn't know how to move its arm so as to push the button it sees. Solving this problem requires a series of coordinate transformations, from camera coordinates to body coordinates to arm coordinates, that can be accomplished using trigonometry and linear algebra.

Coordinate transformations are the organizing theme of this curriculum module, which is called From Robotics to Linear Algebra. The module actually has two purposes:

  • To teach you to solve many common robotics problems that require trigonometry and/or linear algebra. If you want to make your robot do cool things, you will need these mathematical tools.
  • To teach you the basics of linear algebra because linear algebra is used in many other areas of computer science, including computer graphics, computer vision, machine learning, artificial neural networks, and quantum computing. It's also widely used in other quantitative disciplines, from engineering to operations research.

Linear algebra courses are usually offered by math departments, and are therefore designed for students who are primarily concerned with the beauty of abstract mathematical objects. But computer scientists are more like engineers than mathematicians. What motivates most computer scientists is the opportunity to master powerful tools with important applications. Therefore, every step of this module will highlight the robotics applications of the concepts you are learning. But as a side effect of mastering this material, you may come to appreciate the beauty of linear algebra as a topic in its own right, and get a glimpse of how mathematicians see the subject. That will be the icing on the cake.

Computation is our ultimate goal. After each new mathematical idea is introduced, you will learn how it is implemented in the Tekkotsu programming framework. As you know, Tekkotsu is based on C++. But Tekkotsu includes additional classes for angular arithmetic, vectors, and matrices useful for robotics. Thus you will be learning both mathematics and how to turn these mathematical ideas into running code to power your robot.

Next: RobotMath: Angular Arithmetic