Sie sind hier:




The Symbolic Robot Modeling Toolbox is a collection of Matlab functions for symbolic rather than purely numeric robot modeling. Based on the Mathworks Symbolic Toolbox it provides the tools to derive the symbolic expressions for robot kinematics as well as dynamics models.

The toolbox functions have been written during research over the last couple of years. The collection of functions has been shaped into this toolbox with the hope that it will be useful to others as well.

The motivation for the Symbolic Robot Modeling Toolbox was the need for the symbolic expressions for robot kinematics and dynamics for controller design. It was further intended to run the derived models on an embedded real-time operating system for control of the self-developed robot arm TUDOR. The derivation of robot specific symbolic models can be implemented in a generic algorithm, which leads to the idea of writing the code now collected in this toolbox.

What the Toolbox Does

Suppose we intend to control a robot to solve a manipulation task as sketched in Fig. 1.

Fig 1: A given control task: the robot shall manipulate objects

Before we apply our ideas for a suitable control concept to the actual robot, we usually implement a simulation to avoid risky robot motions and perform a ground truth evaluation. In addition the solution to the robot control task itself may involve an analytic plant model during identification, controller design or stability and robustness analyses.

Therefore we first have to describe the robot in a mathematical form. The Symbolic Robot Modeling Toolbox helps minimizing the number of modeling steps, which have to be done manually. All we have to do is to collect the robot kinematic and dynamic parameters in a short robot specific definition m-file (Fig. 2, left). Without the Symbolic Robot Modeling Toolbox, we would then derive the model equations on our own by using a general purpose symbolic manipulation software or the traditional pen and paper alternative (Fig. 2, right). How to do this is in principle well covered in many text books.

Fig. 2: Manual steps during robot modeling: with (left) and additionally without (right) the Symbolic Robot Modeling Toolbox

However, practically deriving the kinematics and dynamics equations is time consuming and error prone. The derived equations have to be checked carefully. Next, before we can simulate the robot, we would have to export or even manually implement the obtained robot model in our preferred programming language (Fig. 3, right).

Based on our robot definition m-file we can leave the derivation and implementation to the Symbolic Robot Modeling Toolbox. We just invoke a single toolbox function (Fig. 3, left) with our robot definition as input argument. The toolbox creates a new directory on our hard disk. The directory has the same name as we gave to the robot. It contains the symbolic model expressions stored in .mat files, ready to use robot specific function m-files as well as Simulink blocks for the simulation of both the robot kinematics and dynamics.

Fig. 3: Generate model code for simulation: with (left) and without (right) the Symbolic Robot Modeling Toolbox

After successfull evaluation of our control concept in simulation, the final step to complete the robot control task is to deploy our implemented control concept on the real robot. The transfer of the simulated code to the hardware is quite often tricky and error prone as well (Fig. 4, right). Here the Simulink blocks generated by the Symbolic Robot Modeling Toolbox can be directly used for embedded real-time control for example in connection with Mathworks xPC-Target or dSpace systems (Fig. 4, left).

Fig. 4: Transfer of the developed model based control concept to the control hardware: with (left) and without (right) the Symbolic Robot Modeling Toolbox

This way the Symbolic Robot Modeling Toolbox reduces the necessary amount of manual coding and debugging. We can focus on developing actual control concepts for the robot task.

Fig. 5: Robot fulfills the desired task.

Download and Installation

The Symbolic Robot Modeling Toolbox has been integrated in the CodeGenerator module of the Robotics Toolbox for MATLAB release 9.8 by Peter Corke. During this integration the code generation functionality significantly improved. However, in order to avoid maintenance of equivalent source code in two distinct toolboxes the Symbolic Robot Modeling Toolbox is no longer available for download as a stand alone package.

If you wish to use the functionality of the Symbolic Robot Modeling Toolbox please download the latest release of the Robotics Toolbox for MATLAB or get a snapshot from the svn. You may also wish to take a look into the Toolbox Google Group for news and discussions.

The idea behind the CodeGenerator module is that the provided code will hopefully be useful to other roboticists as well. Constructive feedback and bug reports will be considered and appreciated.



The toolbox emerged during the work on a project founded by the German Research Foundation (DFG,BE 1569/7-1). The founding is greatly acknowledged.