University of Missouri-Columbia

Department of Electrical and Computer Engineering

ECE 7330  Introduction to Mechatronics and Robotic Vision

Fall, 2010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PROJECT #2

GENERIC ROBOT SIMULATOR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                                                                  Luis Alberto Rivera Estrada

                                                                                                                        ID # 14103824

                                                                                                             December 17th, 2010

Abstract

 

            The objective of this project is to develop a generic robot simulator. Several simulators of specific robots have been implemented. The program developed creates robots according to the well known D-H representations. It has several predefined robots available for the user to try. New robots are easily created by inputting the correspondent D-H parameters. To evaluate the performance of the proposed simulator, a comparison is made against Peter Corke’s Matlab Robotic Simulator.

 

 

Introduction

 

            Having a simulator can be very helpful when designing a system. In the particular case of a robot, a simulation can help, for instance, in determining a suitable workspace for it.

 

            There are some robot simulators available. [1] is a nice Matlab Toolbox that allows forward and inverse kinematics analysis, among others. It also allows simulating some robots. For instance, the Puma 560. [2] is another simulator that offers a nice user interface and a more detailed “CAD like” visualization of the robot. But it is restricted to one robot, the Puma 762 from the WWU Robotics Lab.

 

            A simulator for a particular robot may include more details, like actual link dimensions and shapes, physical limitations of the robot or the workspace, special functions or tasks that the robot is programmed to do, etc. A generic robot simulator, on the other hand, is probably limited in terms of specific details, but it allows simulating important aspects like joint movements, position and orientation of end effectors, etc. of a virtually unlimited number of different robots.

 

            The proposed simulator is based on the standard D-H representation. It allows the user to create his/her own robot by inputting the D-H parameters. The different features and limitations of the simulator will be explained throughout the report, which includes sections on technical background, description of the simulator and methods, results, conclusions and future work.

 

 

Problem Statement and Technical Background

 

            The Denavit-Hartenberg (D-H) model of representation is a simple way of modeling robot links and joints. It is assumed that a robot is made of a sequence of joints and links. The joints can be either prismatic (linear) or revolute (rotational). They can be in any order and in any plane. The links may be of any length (including zero), may be twisted or bent, and may be in any plane. So, any general set of joints and links may create a robot. [3]

 

            To model the robot a reference frame is assigned to each joint. Matrices are defined to transform from one joint to the next. A total transformation matrix is obtained combining all the transformations from the base of the robot to the last joint (and/or possibly the end effector). [3]

 

[3]

 

 

            The necessary motions to transform from one reference frame  to the next  are the following:

1.     Rotation of an angle  about the  axis, which will make  and  parallel to each other.

2.     Translation of a distance  along the  axis to make  and  collinear.

3.     Translation of a distance  along the  axis to bring the origins  and  together.

4.     Rotation of the  axis an angle  about the  axis to align  with  axis to finally make frames  and  be exactly the same.    [3]

 

            The matrix representing the four movements is obtained by postmultiplying the four matrices representing the four movements, as follows:

Where  and .

The total transformation between the base (frame 0) and the last frame (frame n, usually the hand or end effector) is  .

 

            A table of joint and link parameters (D-H table) summarizes the characteristics of a robot. The values are determined from a schematic drawing of the robot after assigning proper frames for each of the joints that constitute the robot. In essence, such a D-H table describes a robot. This is the main idea behind the generic simulator developed for this project assignment. All it takes to create and simulate a robot is to have a D-H table. In the next section I describe the actual simulator.

 

Description of the Simulator

 

            The Puma3D simulator [2] was used as a base for creating the simulator for this project. The graphical interface is illustrated next:

It has the following features:

 

·           D-H table for defining the robot.

            Robots with up to six joints (degrees of freedom) can be defined. The joints can be revolute or prismatic. Additional to the four parameters for each joint (q, d, a, a) it is possible to set the minimum and maximum value for the correspondent variable (q for revolute joints and d for prismatic joints). After the parameters are input, by clicking on the Set button the robot is created. The position determined by the D-H parameters (in particular, determined by the values of variables) becomes the “Home” position of the robot.

            There are various pre-defined robots for the user to try. Clicking on the “Default”, “Puma 560”, “Example 1”, “Example 2” and “Example 3” will put D-H parameters in the correspondent boxes. Clicking on the set button will create the correspondent robot.

 

·           Building the Robot.

 

            The robot consists of joints and links. Generic shapes are used for the joints. Cylinders are used for the revolute joints and prisms are used for the prismatic joints. Since there is no detailed description of the links (shape, width, etc.), thick line segments are used. Those lines connect consecutive frame origins. A simple end effector is placed at the last frame of the robot. The first origin (frame 0, corresponding to the base) is placed at the world’s origin. For visualization purposes, a (green) conical base completes the structure of the robot.

·           Robot’s Workspace

 

            The scales of the axes adjust to the dimensions of the robot to have a good visualization of the robot. The last origin (shown in red) is projected to the ground and to the background walls. This helps in the visual localization of the end effector.

 

·           Moving the Robot: Kinematics control.

            The individual joints can be manipulated in order to move the robot. A slider bar and an edit box allow changing the corresponding variables. The maximum and minimum values specified in the D-H table are reflected in the kinematics control panel. The “Random” button will produce a random movement of the robot, and the “Home” button will bring the robot to the home position.

 

·           Position and Orientation of the End Effector

 

            The Homogeneous transformation matrix representing the pose of the last coordinate frame is displayed in the table shown above (with the exception of the last row). Vectors n, o and a are the direction vectors of the frame, and vector P is the position vector of the frame’s origin.

 

 

Results

 

            Next I show some of the example robots predefined. Moreover, I show a comparison between my proposed simulator and the simulator proposed in [1] for the Puma 560 robot.

 

 

 

 

Example 1: 3 – joint robot (revolute, prismatic, revolute).

[4]

Example 2: 4 – joint robot (revolute, prismatic, prismatic, revolute).

[4]

Example 3: 6 – joint robot (all revolute joints).

  [4]

Puma 560: comparison between simulators.

            The D-H table for the Puma 560 robot according to the toolbox proposed in [1] is the following (all joints are revolute):

Shown above is the home position. Note the x, y and z coordinates of the last frame and its a direction vector. The home position according to my simulator is next:

            Note that both the position vector and the direction vector coincide with the correspondent vectors in Corke’s simulator. Now, consider some other configuration of the joint variables.

Comparison configuration 1:

 

 

Note how the positions and orientations coincide.

Comparison configuration 2:

 

 

Note again how both simulators give the same position and orientation.

Conclusions and Future Work

 

            The proposed simulator allows creating and simulating a large variety of robots, with up to six degrees of freedom. Its user friendly interface and simple D-H parameters and control panels make it easy to define and build robots, and then to move them. It offers several features that enhance the visualization of the robot and the position of the end effector. This simulator may be a useful tool for designing real robots or for academic purposes.

 

            Future versions of the simulator may include some of the following features:

·           Allow the user to save D-H parameters and to load previously saved ones.

·           Allow interacting with the workspace (e.g. zooming, rotating, manipulating the axes, etc.).

·           Option to place the base of the robot in different locations with respect to the world.

·           Include more details of the joints and links.

·           Constrain the joint variables to take physical limitations into account.

·           Others.

 

 

References

 

1.     P.I Corke “A Robotics Toolbox for MATLAB”. IEEE Robotics and Automation Magazine. No. 1, Vol. 3, March, 1996. Pp. 24 – 36.

2.     PUMA3D Simulator of the Puma robot located in the Robotics Lab of Walla Walla University.

3.     S. B. Niku. “Introduction to Robotics: Analysis, Systems, Applications”. Prentice Hall. United States of America, 2001.

4.     G. DeSouza. Lecture notes from the course “Introduction to Mechatronics and Robotic Vision”. University of Missouri – Columbia. Fall, 2010.