No Title

22C:161 Introduction to Robotics Spring 1995

Homework 2 - Due Monday , February 5

These homework problems are similar to the Programming Exercises at the end of Chapter 2 (p.66-67). See them for clarification. In this class, however, we'll be doing all exercises in three dimensions rather than in two.

In this assignment, you'll write and test routines that will be used during the rest of the course. You should represent rotation matrices as 3x3 arrays of doubles, and 4x4 homogeneous transformations as 4x4 arrays of doubles.

  1. Write procedures to multiply rotation matrices, to multiply 4x4 transformation matrices, to multiply a rotation matrix by a 3-vector, and to transform a 3-vector using a 4x4 transformation (so, arguments will be 4x4 matrix and 3-vector or 4-vector with 1 as last component - your choice).
  2. Write procedures (or functions, if you prefer) to set up rotations matrices Rx(theta), Ry(theta), and Rz(theta) (where theta is specified in degrees).
  3. Write a procedure (or function) to produce the inverse of a rotation matrix.
  4. Write a procedure (or function) to produce a 4x4 transformation given a rotation matrix and an x,y,z translation.
  5. Write a procedure (or function) to produce the inverse of a 4x4 transformation.
  6. Write a small file documenting your routines. E.G. "(double *) InverseTransform(double * T) returns the 4x4 transformation matrix that is the inverse of the input transformation T".
  7. Interpret Programming Exercise 2, Problem 5 on page 67 as a three-dimensional question. Create 4x4 transformations for T(A,U), T(A,B), and T(U,C) (where T(P,Q) means T with presubscript P and presuperscript Q). The use the routines you've written to compute T(C,B). Print out T(A,U), T(A,B), T(U,C), and T(C,B).
  8. Check your work by creating, transforming, and drawing LINKs and COORDINATE FRAMEs using the class graphics package.

class - Jim Cremer
Wed Jan 25 13:14:01 CST 1995