Training
Exercises |
|
Although a working
knowledge of C++ and a fundamental knowledge of the operation of robots
are ideal, these exercises can also be used as a vehicle to learn C++
and gain a better understanding of manipulator control. Any data file referred to in these experiments is located in
the appendix of this document. RoboWorks
files are located in the Samples directory of the application.
These
10 exercises cover a large portion of OSCAR’s functionality and the use
of applications necessary to demonstrate it.
They do cover all the necessary components to simulate a
manipulator. For example, the
Information Class that maintains criteria for Multi-Criteria Redundancy
Resolution is skipped as well as the real-time interface classes.
Also much of the functionality used when developing robust,
demonstration-ready applications is also ignored in order to spend more
time on the fundamental components of OSCAR.
|
Lesson
1- Introduction
to Vector, Matrix, and Tensor Support Classes |
|
Write a program that creates two 2x2 matrices and
multiplies them together. Transpose
the result and find the inverse of the matrix.
Create a matrix using the RRMatrixData Class from a data file
(which you write). Also
create a tensor object, and populate its elements such that each element
contains the product of its row, column, and layer.
Finally, create a vector and populate it with the row of a matrix
taken from the tensor that was just created.
solution
|
Lesson
2 - 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
|
Lesson
3 - Transformations with OSCAR |
Create
a transformation matrix (and demonstrate how to access the individual
elements. Create a
transformation matrix for when a rotation matrix (RRRot3by3) is given as
well as translation point (RRVector3). Have the transformed frame be rotated around the z-axis by 30°
and translated {10, 5, 2}. Convert
this transformation matrix into RRHandPoses for both ‘Fixed XYZ’ and
‘Euler ZYZ’ angles respectively.
Finally, given the transformation matrices for frames
T01 and T12, determine the pose of point 2 in the global frame.
solution
|
Lesson
4 - Introduction To RoboWorks |
|
Use RoboWorks to
create a rendition of 6 DOF Schilling Titan III.
This robot will be used in later experiments so be sure to use the
DH parameters in the appendix. Be
sure to name each joint with an appropriate tag that can later be used for
remote operation. (below data was found on the Schilling website)


|
Lesson
5 - Forward Kinematics |
Create
a RRFKPosition object for the Schilling Titan III.
Compute the hand position based on a set of initial joint angles.
Change the tool point, and determine how this changes the hand
position. Access the local
transformation matrices and global transformation matrices for each link
and output them to a file. Demonstrate
the local transformation matrices may be used to generate the global
transformations.
solution
|
Lesson
6 - Input, TCP/IP Communications and OSCAR
Portability |
Use
the RRGeneralKeyboard to move the Titan III joints in RoboWorks with
TCP/IP protocol of RoboTalk. Output
the hand pose to the console window at every command.
Now
change your RRFKPosition object to use the DH parameters for the 7DOF
Robotics Research Arm. Determine
what other portions of your program need to change in order to run the
RoboWorks 7DOF Robotics Research Arm found in the Samples Directory of the
RoboWorks application and make the necessary adjustments.
solution
|
Lesson
7 - Other OSCAR Forward Functionality |
Create
RRFKJacobian, RRFKVelocity and RRFKAcceleration objects for the RR’s 7
DOF Arm and demonstrate how to output the Jacobian, G-influence
coefficients, and H function tensor array.
See Thomas & Tesar [1982] for details of these model
components.
solution
|
Lesson
8 - Solving the Inverse Problem with OSCAR |
Create
a program that calculates the inverse for Titan III.
Notice that there are different inverse objects within OSCAR for
manipulators and classifications of manipulators (planar, 6DOF, redundant,
Puma, etc.) Add Control for the EEF Position and some error checking to
ensure that manipulator will work for a reasonable amount of time, and
demonstrate your application on the RoboWorks Model.
solution
|
Lesson
9 - Solving the Redundant Inverse Problem with OSCAR |
Write
a program that calculates the inverse for the 7 DOF Robotics Research Arm.
You may resolve the redundancy in any of the ways that OSCAR allows
you to (InfoBasedCriteria, RRIKJPartial, RRIKJAvoidLimits, RRIKGradProj,
etc.) Familiarize yourself
with the differences between these inverses.
Add Control for the EEF Position and some error checking to ensure
that manipulator will work for a reasonable amount of time, and
demonstrate your application on the RoboWorks Model.
solution
|
Lesson
10 - Advanced OSCAR functionality |
|
Expand the previous
program in the following ways.
a)
Include the computation of the joint torques by using the
Newton-Euler Dynamics. Familiarize
yourself with the functionality and differences between RRIDNewtonEuler
and RRIDLagrange.
b)
Implement Spaceball control for defining the hand position.solution
|