A Toolbox for Teaching and Researching Robotics
Adam Bienkowski and Krzysztof Kozlowski
Poznan University of Technology
Download talk material:
In this paper we present a package written in Mathematica for teaching and
researching in robotics. Robotics is an interdisciplinary field and involves mechanics,
control theory, and computer science. Many algorithms in robotics are recursive in nature
and involve a lot of calculations both numerical and symbolical. These calculations are
very intensive even for industrial robots that have no more than six degrees of freedom.
More-specific applications, such as space robotics and many cooperating robots, are
associated with massive calculations that cannot be carried out online. We believe that Mathematica
is a very useful tool for these calculations, and we use it intensively in the field of
This paper consists of three parts. The first part describes the theoretical framework,
namely spatial operator algebra, which is very useful in robotics. It allows a concise and
systematic formulation of the kinematical and dynamical equation of multibody systems and
the development of efficient computational algorithms. According to the concept of spatial
quantities such as forces, velocities, and accelerations, 6 x 1 vectors consist of two 3 x
1 vectors representing angular and linear behavior of the robot respectively. Besides
that, the spatial algebra uses spatial inertia matrices and spatial direction cosine
matrices (both have dimensions 6 x 6). The first one characterizes dynamic properties of
an individual link (namely mass, center of mass multiplied by mass, and six elements of
the inertia tensor of the link), while the second one consists of direction cosines
between two successive links assigned according to the modified Denavit-Hartenberg
notation. A spatial distance between two successive links is described in terms of a 6 x 6
matrix which is recognized as a spatial transition matrix. The transition matrix plays the
role of a discrete step in space. The fundamental problems in robotics, namely direct and
inverse kinematics and forward and inverse dynamics, are solved by making use of the above-mentioned spatial quantities. The solutions to these problems are developed for
progressively more complex systems: serial chains, topological trees, and closed-loop
systems. In all algorithms we also include motors, transmission systems, and gears in order
to cover wide industrial applications of the proposed algorithms.
The second part of the paper is devoted to basic data structures in Mathematica
that can be used to code the fundamental algorithms in robotics. Generally the system is
built of two lists: list of links and list of motors. Both lists consist of several
elements that characterize kinematical and dynamical parameters of the links, motors, and
joints. These elements are essentially the spatial quantities defined above. The basic
data structures allow formulation of recursive algorithms that have organized functions.
These functions, when called, result in symbolical or numerical results of serial chains,
topological trees, and closed-loop systems. Two numerical methods were applied to the
inverse kinematics calculations: first-order steepest-descent method and second-order
Newton-Rapson method. They are closely related in terms of the algorithm calculations to
the inverse and forward dynamic calculations respectively. Therefore, the same framework
can be implemented for both types of problems. Dynamics calculations are basically
symbolic in nature, but when applied to the specific robot structure of the robot, they
are performed numerically too.
The third part of the paper illustrates considerations presented in the first two parts.
Several examples were run using the toolbox for two types of robots most popular in
industry: direct-drive robots and gear robots. For these two classes of robots,
fundamental problems in robotics are solved numerically and symbolically. The results are
displayed in numerical, symbolical, and graphical form.