Download Latest Version rtss-1.0.0b1-win32.zip (2.4 MB)
Email in envelope

Get an email when there's a new version of the Robotics Toolbox for Scilab/Scicos

Home / OldFiles
Name Modified Size InfoDownloads / Week
Parent folder
README_Win.txt 2007-10-04 18.6 kB
README_Unix 2007-10-04 17.6 kB
Totals: 2 Items   36.2 kB 0
                RTSS - The Robotics Toolbox for Scilab/Scicos
                =============================================
                                version 0.1.0
                                =============

Matteo Morelli, May 2007.
$LastChangedDate: 2007-10-04 12:23:28 +0200 (Thu, 04 Oct 2007) $.

********************************************************************************

0 - COPYRIGHT NOTICE
====================

  RTSS, the Robotics Toolbox for Scilab/Scicos, is free software released under
  the terms of the GNU General Public License.

  See the included license: "license.txt" in English.

********************************************************************************

I - INSTALL THE ROBOTICS TOOLBOX FOR SCILAB/SCICOS
==================================================

  A - INSTALL THE SOURCE VERSION
  ------------------------------

    The requirements for installing RTSS from source code are the following:

      a - Scilab.

        RTSS runs with the Scilab 4.x family. Your Scilab can be whether a
        stable version (source, binary file) or a development version (SVN).

      b - C Compiler.

        The source version of RTSS contains several .c files that must be
        compiled (see the section: "V - TOOLBOX COMPOSITION", below) as a shared
        library.

        A typically adopted compiler is Microsoft Visual C++ 2005 Express
        Edition, which is downloadable for free -- for non-commercial use -- at
        this web page:
        <http://msdn2.microsoft.com/en-us/express/aa700735.aspx>

        However, note that it must be integrated with Microsoft Windows Server
        2003 R2 Platform SDK in order to get a workable compilation environment.
        The Platform SDK can be downloaded at this web address:
        <http://msdn2.microsoft.com/en-us/express/aa700755.aspx>

        Others widely adopted compilers are Microsoft Visual C++ .NET 2003,
        Microsoft Visual C++ 6.0 and lcc-win32.

    The 3 steps that follow must be performed when you only have to install the
    toolbox (i.e. one time only). If you already have installed the toolbox,
    skip to the next section:"II - LOAD THE ROBOTICS TOOLBOX FOR SCILAB/SCICOS".

      1 - Unpack file rtss-0.1.0-src.zip in your SCI directory.

        SCI denotes the location where your Scilab is installed. If you don't
        know where your Scilab is installed, just type SCI at Scilab prompt. For
        example, in my Windows Xp PC, SCI is C:\Program Files\scilab-4.1\.

        You will get a folder called robot, but you can give the folder any name
        provided that it does not contain any spaces. Indeed, from now on the
        path SCI\robot\ will be referred to as <PATH>.

      2 - Change the options that will be used to compile RTSS.

        Open files <PATH>\src\buildsrc.sce and
        <PATH>\sci_gateway\buildsci_gateway.sce and change the value of their
        cflags variable to use platform-specific compilation options.

      3 - Build RTSS.

        Open the Scilab prompt and type the following command:

                        exec <PATH>\builder.sce;

        This will build RTSS and will create html help pages for its Scilab
        functions and Scicos Blocks.

  B - INSTALL THE PREBUILT VERSION
  --------------------------------

    The prebuilt distribution is for 32-bit systems only. The DLL files were
    compiled with Microsoft Visual C++ 2005 Express Edition.

    The only requirement for installing the prebuilt version of RTSS is to have
    Scilab installed. RTSS runs with the Scilab 4.x family. Your Scilab can be
    whether a stable version (source, binary file) or a development version
    (SVN).

    The 2 steps that follow must be performed when you only have to install the
    toolbox (i.e. one time only). If you already have installed the toolbox,
    skip to the next section:"II - LOAD THE ROBOTICS TOOLBOX FOR SCILAB/SCICOS".

      1 - Unpack file rtss-0.1.0-win32.zip in your SCI directory.

        SCI denotes the location where your Scilab is installed. If you don't
        know where your Scilab is installed, just type SCI at Scilab prompt. For
        example, in my Windows Xp PC, SCI is C:\Program Files\scilab-4.1\.

        You will get a folder called robot, but you can give the folder any name
        provided that it does not contain any spaces. Indeed, from now on the
        path SCI\robot\ will be referred to as <PATH>.

      2 - Build the Scilab macros in RTSS.

        Open the Scilab prompt and type the following command:

                        exec <PATH>\builder.sce;

        This will build the Scilab macros in RTSS (i.e. the functions written in
        Scilab code with the extension .sci) and will create html help pages for
        its Scilab functions and Scicos Blocks.

********************************************************************************

II - LOAD THE ROBOTICS TOOLBOX FOR SCILAB/SCICOS
================================================

  Open the Scilab prompt and type the following command:

                        exec <PATH>\loader.sce;

  This will load the toolbox into Scilab. You must type this command in every
  Scilab session that you want to use the toolbox.

  Note that, as the final user, you may want RTSS to be loaded automatically. To
  do this just put the above command in your SCI\scilab.star startup file for
  automatic loading.

  An additional caveat: if somewhere in your scilab session you run the clear
  command, you will have to reload the toolbox. To avoid that, you can add the
  command predef('all') in your SCI\scilab.star file after your
  exec <PATH>\loader.sce command.

  As an example, below is the sequence you could do on your own machine for
  automatic loading:

    1 - open SCI\scilab.star file with your favorite text editor.

    2 - Add the following line at the end of SCI\scilab.star:

                        exec <PATH>\loader.sce;

    3 - Add the following line after your exec command:

                        predef('all');

    4 - save the SCI\scilab.star file.

  That's it! Every time you enter scilab it already loads RTSS and even if you
  run the clear command you won't have to reload the toolbox anymore.

********************************************************************************
III - REMARKS
=============

  The purpose of this first release of the Robotics Toolbox for Scilab/Scicos
  was to make a port to Scilab/Scicos of the original Robotics Toolbox for
  MATLAB written by Professor Peter I. Corke. Though I've tried to maintain the
  compatibility between the two toolboxes (in terms of functions Calling
  Sequences and in terms of functions behaviour) as more as possible, some
  differences have arisen anyway and you will have to keep them in mind when you
  will use this toolbox (particular attention should be paid to the item 5 in
  the list of differences, below).

    1 - Names of functions.

      All functions in the MATLAB toolbox which have an *overloadable* Scilab
      counterpart (i.e. display, double, inv and norm) have maintained their
      name. This means that, with RTSS, if q is a quaternion object it can be
      displayed by

                                -->disp(q),

      and its norm and its inverse can be computed by

                                -->norm(q),
                                -->inv(q),

      respectively. On the contrary, *all the other function names* are preceded
      by "rt_" (where rt stands for Robotics Toolbox). This means that

                 MATLAB-name                  Scilab-name

                    link        has become     rt_link
                    robot       has become     rt_robot
                    fkine       has become     rt_fkine
                    plot        has become     rt_plot
                    fdyn        has become     rt_fdyn

      and so on.

      This is due to the fact that functions such as link and plot do already
      exist in Scilab and are unoverloadable functions. Thus, rather than rename
      these two functions only (for istance with exotic names such as createlink
      and plotobject), I've choose to rename all in this simple way: just add
      the "rt_" prefix to the name of the function you would use in MATLAB.

    2 - Names of variables.

      When you create a Puma robot (either based on SDH and MDH notation) with
      the MATLAB toolbox you also define the joint coordinate vectors qz, qr and
      qstretch corresponding to the zero-angle, ready and fully extended poses.

      With RTSS qr becomes qready.

    3 - The link parameter of a robot object.

      With the MATLAB toolbox you can reference the link field of a robot
      object, r, either by command

                                    >>r.link,

      and by

                                    >>r.links,

      With RTSS you can only use the latter form, that is

                                    -->r.links,

    4 - The handle parameter of a robot object.

      With the MATLAB toolbox you can reference the handle field of a robot
      object, r, either by command

                                    >>r.handle,

      and by

                                    >>r.handles,

      With RTSS you can only use the latter form, that is

                                    -->r.handles,

    5 - The variable assignment operator (=).

      With the MATLAB toolbox you can quickly clone a quaternion, a link and a
      robot object, respectively q, l and r, by the following commands

                                    >>q2 = q;
                                    >>l2 = l;
                                    >>r2 = r;

      With RTSS you can not.

      This is because constructors call C coded functions to create quaternion
      link and robot objects. These functions (m)allocate memory for Quaternion,
      Link and Robot structures and return *pointers* in the Scilab workspace.
      This means that, for istance, after you give the following command

                                    -->r2 = r;

      r2 points *the same* portion of memory referred by r.

      To correctly use Scilab objects such as quaternions, links and robots, you
      have to take them just like pointers. For a better understanding of this
      aspect, you may consider the following diagram:

        Scilab Prompt            |                 Memory
                                 |
                                 |              /
                                 |  Scilab      \       Heap Memory
                                 |  Workspace   /
                                 |              \   #ROBOT #      #LINKS #
                                 |              /   #DATA  # ---> #DATA  #
        -->r=rt_robot(<PARAMS>); |      r _____ \___#STRUCT#      #STRUCT#
                                 |              /      |           ||...|
        -->r2 = r;               |     r2 ______\______|           ||...|
                                 |              /                  ||...|
        -->L = r2.links;         |    L(1)______\__________________||...|
                                 |    L(2)______/___________________|...|
                                 |              \   .                   |
                                 |              /   .                   |
                                 |              \   .                   |
                                 |    L(n)______/_______________________|
                                 |              \

      Taking a look at the diagram above, it's easy to understand that

        -->r2.base = <VALUE>;    //will change also the value in r.base!
        -->r2.name = <VALUE>;    //will change also the value in r.name!
        -->r.gravity = <VALUE>;  //will change also the value in r2.gravity!

        -->L(1).A = <VALUE>;     //will change length of 1st link in r and r2!

      So, if you want to know, among the other things, how to clone a robot
      object with RTSS, please read the following list of RTSS how-tos.

        a - How to clone a robot object.


                  MATLAB                         Scilab

                  >>r2 = r;                     -->r2 = rt_robot(r);

                      or

                  >>r2 = robot(r);


        b - How to create a robot clone with modified constituent links.


                  MATLAB                         Scilab

                  >>L = r.links;                -->r2 = rt_robot(r);
                  >>L{1}.A = <VALUE>;           -->L = r2.links;
                  >>r2 = robot(r, L);           -->L(1).A = <VALUE>;


        c - How to modify link parameters without create a new robot.


                  MATLAB                         Scilab

                  you can't do it.              -->L = r.links;
                                                -->L(1).A = <VALUE>;

********************************************************************************
IV - DOCUMENTATION
==================

  Detailed XML help documentation, written in English language and in compliance
  with the Scilab Toolbox Guide, is provided for each Scilab function and Scicos
  block in the toolbox. Every help page is enriched with many examples which
  illustrate the usage of the corresponding Scilab function or Scicos block.
  During the RTSS installation process, XML pages are translated to HTML so that
  the user can consult them by using the Scilab Help Browser.

  RTSS comes with several demonstration scripts which show how the toolbox can
  be productively used in studying robotics. Demos on subjects like

    a - Homogeneous Transformations

    b - Cartesian and joint-space Trajectories

    c - Forward and Inverse Kinematics

    d - Differential Motions and Manipulator Jacobians

    e - Forward and Inverse Dynamics

    f - Graphical Animations of Robot Motions,

  can be run individually by choosing "Robotics" in the Scilab demo menu.

  Other demos are provided with RTSS.

    g.1 - Dynamic simulation of Puma 560 robot collapsing under gravity;

    g.2 - Computed torque control of a Puma 560 robot;

    g.3 - Open-loop inverse Jacobian algorithm for a three-DOF (RRR) planar arm;

    g.4 - Closed-loop inverse Jacobian algorithm for a three-DOF (RRR) planar
    arm;

    g.5 - Jacobian pseudo-inverse algorithm for a kinematically redundant RRR
    planar arm;

    g.6 - Jacobian pseudo-inverse algorithm for a kinematically redundant RRR
    planar arm, with mechanical joint limit constraints.

  They give the user an insight into the use of RTSS for constructing robot
  kinematic and dynamic models with Scicos, but currently there is no detailed
  documentation about them available. At the moment, the only documentation I
  can provide is a short pdf file in the <PATH>\etc\ directory. However, a
  detailed RTSS User's Guide is in progress and it will be included in the next
  (major?) release.

  Lastly, the user can run test scripts which permit to compare performances
  between the Scilab and C version of algorithm that computes inverse dynamics
  via recursive Newton-Euler formulation (RNE), for the following robot models:

    a - Puma 560

    b - Stanford Arm

  Again, there is no detailed documentation about them available yet. At the
  moment, the only information provided comes from comments that the scripts
  display on screen.

  Test script for the Puma 560 can be executed by typing the following command
  at Scilab prompt:

                        exec <PATH>\unit-tests\rt_pumacheck.tst;

  Test script for the Stanford Robot Arm can be run with the following command,
  instead:

                        exec <PATH>\unit-tests\rt_stanfcheck.tst;

********************************************************************************
V - TOOLBOX COMPOSITION
=======================

  The root directory contains 10 sub-directories:

    1 - includes

      Headers (all .h files).

    2 - src

      Source code (all .c files), shared libraries (prebuilt distribution only),
      buildsrc script.

    3 - sci_gateway

      Interfaces programs (all .c files), shared libraries (prebuilt
      distribution only), buildsci_gateway script.

    4 - macros

      Scilab macros (all .sci files), buildmacros and loadmacros scripts.

    5 - models

      Scilab scripts (all .sce files) which create models of well known robots.

    6 - scicos_palette

      The Robotics Palette (.cosf file), loadpalette script.

    7 - help

      English help sub-directory named eng which contains all the .xml help
      files, buildhelp and loadhelp scripts.

    8 - unit-tests

      Scilab scripts to test the toolbox (.tst files).

    9 - demos

      Different examples to illustrate the toolbox.

    10 - etc

      Short explanation of the Scicos demos that are provided with the toolbox
      (.pdf file).

  and 4 files:

    1 - builder.sce

      The main builder script.

    2 - loader.sce

      The main loader script.

    3 - README_Win.txt

      This file. Notes about toolbox description and installation.

    4 - license.txt

      Text of the GNU General Public License Version 2, under which the toolbox
      is distributed.

********************************************************************************
VI - AKNOWLEDGEMENTS
====================

  I, the author, wish to thanks Professor Peter I. Corke, who kindly allowed me
  to modify part of his work and redistribute it under the terms of the GNU
  General Public License.

  I want also to thanks my supervisor, Professor Antonio Bicchi, for his endless
  patience, support and guidance.

  Finally, I would like to thanks all the people in the Scilab Newsgroup, who
  generously helped me in all my efforts with helpful suggestions and comments,
  especially Dr. Ramine Nikoukhah, Dr. Serge Steer, Dr. Francois Vogel,
  Dr. Enrico Segre and Dr. Allan Cornet.

********************************************************************************
THAT'S ALL FOLKS
********************************************************************************
Source: README_Win.txt, updated 2007-10-04