Robotics Research Group
Research ProjectsOSCAR Version 2.0 : Math Tutorials
Excercises

Tutorial 1 - Vector, Matrix, and Tensor Support Classes (part one)
Write a program that creates two 3x3 matrices and multiplies them together. Transpose the result and find the inverse of the matrix. Also, create a matrix using the RRMatrixData Class from a data file. Next, create an RRVector object by extracting a row from this matrix. Multiply this vector by the matrix and display the result to the screen. Also create a tensor object and populate its elements such that each element contains the product of its row, column, and layer.
MatrixFile
Solution

Tutorial 2 - Vector, Matrix, and Tensor Support Classes (part two)
Use RRFixedSizeArray to create a 4x1 matrix, and RRFixedSizeMatrix to create a 3x4 matrix. Multiply these two objects together and display the result on the screen. Next, create an 8x1 RRJointVector object, and use SetCoordinateStatus() to set the 1st and 3rd elements to inactive. This will tell certain objects to ignore these elements (more on this later). Now, display only the active elements to the screen.
Solution

Tutorial 3 - Extending OSCAR Support Classes
Write a class called RRVector4 that is derived from RRVector class. Develop a few but important methods for use with RRVector4 including the necessary constructor, copy constructor, and destructor. Use the proper header files and follow OSCAR guidelines. Test your methods with a simple application.
Solution

Tutorial 4 - Transformations with OSCAR
Create a 4x4 homogeneous transformation matrix. Next, using the Set() and Get() methods, extract the 3x3 rotation matrix and the translation vector. Next, create a 6x1 handpose vector from these objects (use FixedXYZ angles for the orientation). Now, convert the handpose back into a 4x4 transformation object to make sure it is the same as the original. Finally, create a Spatial Transformation Matrix and a quaternion from the earlier data.
Solution

Tutorial 5 - Advanced Matrix Operations
Create a square matrix and calculate the Infinity and Froebenius norms. Next, calculate the eigenvectors and eigen values and display them on the screen. Now, create an under-constrained (ncol > nrow) matrix and perform a Singular Value Decomposition on it.
Solution