robot visualization system for windows (rvs4w) user’s...

38
Robot Visualization System for Windows (RVS4W) User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for Intelligent Machines (CIM) Department of Mechanical Engineering McGill University, Montr´ eal, Qu´ ebec, Canada June 11, 2007 Abstract Visualization plays an important role in the design of new robots or work environments. Robot Visualization System for Windows (RVS4W) is an up- dated cross-platform version of its predecessor, the Robot Visualization System (RVS). RVS was developed at the Centre for Intelligent Machines, McGill Uni- versity, in the 1990s. It was developed on IRIX, the UNIX dialect of Silicon Graphics Inc. (SGI). Since IRIX is native to SGI workstations, RVS does not run on Intel-based PCs. Therefore, the source code of RVS had to be modified in order to use this tool on an Intel-based PC. Based on the two important attributes of RVS4W, i.e., open source and platform-independent, the proper development tools were chosen. RVS4W is an updated version of RVS. The user interface was rewritten from scratch. We have made an effort to keep the user interface consistent and user-friendly. The existing kinematics engine was also debugged and improved. RVS4W incorporates many new features including routines to evaluate the char- acteristic length, maximum reach, optimum posture—for minimum condition number—and robot conditioning. This manual introduces the user to the window-driven environment of RVS4W. Acknowledgements John Darcovich, the author of RVS, is the brain behind this project. RVS4W, like RVS, was made possible thanks to the sustained support of NSERC to the 1

Upload: others

Post on 20-Aug-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Robot Visualization System for Windows (RVS4W)

User’s Manual

W. Khan, H. Zhuang and J. Angeles

Centre for Intelligent Machines (CIM)Department of Mechanical Engineering

McGill University, Montreal, Quebec, Canada

June 11, 2007

Abstract

Visualization plays an important role in the design of new robots or workenvironments. Robot Visualization System for Windows (RVS4W) is an up-dated cross-platform version of its predecessor, the Robot Visualization System(RVS).

RVS was developed at the Centre for Intelligent Machines, McGill Uni-versity, in the 1990s. It was developed on IRIX, the UNIX dialect of SiliconGraphics Inc. (SGI). Since IRIX is native to SGI workstations, RVS does notrun on Intel-based PCs. Therefore, the source code of RVS had to be modifiedin order to use this tool on an Intel-based PC. Based on the two importantattributes of RVS4W, i.e., open source and platform-independent, the properdevelopment tools were chosen.

RVS4W is an updated version of RVS. The user interface was rewrittenfrom scratch. We have made an effort to keep the user interface consistent anduser-friendly. The existing kinematics engine was also debugged and improved.RVS4W incorporates many new features including routines to evaluate the char-acteristic length, maximum reach, optimum posture—for minimum conditionnumber—and robot conditioning.

This manual introduces the user to the window-driven environment of RVS4W.

Acknowledgements

John Darcovich, the author of RVS, is the brain behind this project. RVS4W,like RVS, was made possible thanks to the sustained support of NSERC to the

1

Page 2: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

third author’s research.

Disclaimers

RVS4W and RVS are intended for research and education use only. Theauthors cannot be held responsible for any errors or damage caused by the useof this software packages.

2

Page 3: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Contents

1 Introduction 51.1 RVS4W Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 RVS4W Basics 62.1 Starting RVS4W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Mouse Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 The Robot Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4.1 New Robot: Creating a robot . . . . . . . . . . . . . . . . . . 72.4.2 Load Robot: Loading an existing robot . . . . . . . . . . . . . 92.4.3 Edit Robot: Editing the robot . . . . . . . . . . . . . . . . . 102.4.4 The Link Settings dialog . . . . . . . . . . . . . . . . . . . . 102.4.5 Displaying the DH parameters of the current robot . . . . . . 112.4.6 End-Effector: Selecting an end-effector . . . . . . . . . . . . 112.4.7 Save: Saving a robot . . . . . . . . . . . . . . . . . . . . . . . 112.4.8 Save As: Saving a robot with another name . . . . . . . . . . 132.4.9 Exit: Exiting RVS4W . . . . . . . . . . . . . . . . . . . . . . 13

2.5 The Posture Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.5.1 Joint Limits: Setting joint limits . . . . . . . . . . . . . . . 132.5.2 Select Configuration: Moving the robot to a saved posture 142.5.3 Forward Kinematics . . . . . . . . . . . . . . . . . . . . . . . 152.5.4 Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . 16

2.6 The Trajectory Menu . . . . . . . . . . . . . . . . . . . . . . . . . . 172.6.1 Joint Trajectory: Making the robot follow a joint trajectory 172.6.2 Cartesian Trajectory: Making the robot follow a Cartesian

trajectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.6.3 Transform Trajectory: Transform a displayed trajectory . . 212.6.4 Converting joint trajectories to Cartesian trajectories . . . . . 22

2.7 Conditioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.8 The Environment Menu . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.8.1 Set Work Environment: Creating and editing the work envi-ronment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.8.2 Load Work Environment: Loading a work environment . . . . 262.8.3 Obstacle: Creating and editing obstacles . . . . . . . . . . . . 262.8.4 Payload: Creating and editing payloads . . . . . . . . . . . . 26

2.9 Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.10 Export: Exporting a scene . . . . . . . . . . . . . . . . . . . . . . . . 292.11 About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3 Joint Configuration 32

3

Page 4: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

4 Trajectories 324.1 Cartesian Trajectories . . . . . . . . . . . . . . . . . . . . . . . . . . 324.2 Joint Trajectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Bibliography 34

Appendices 34

4

Page 5: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

1 Introduction

RVS4W is a 3D visualization tool to be used to determine the feasibility of a newrobot or of a new path plan. This tool is an updated version of its IRIX predecessor,RVS (Darcovich, Angeles, Montagnier and Wu, 1999). In the skeleton mode, theDenavit-Hartenberg (DH) parameters of the robot at hand are read from a datafile and rendered as a kinematic chain using a standard set of skeleton primitives.This set includes an L-shaped link with dimensions in proportion dictated by thecorresponding DH parameters, a revolute joint, a prismatic joint and an end effector(EE). No geometric details on the actual shape of the links is provided in the skeletonmode.

Full rendering of the actual robot can also be made. Of course, this requires, thata database with the details of the robot-link geometry be supplied by the user.

1.1 RVS4W Features

Currently, RVS4W supports the following main features:

• Forward kinematics

• Inverse kinematics

• Individual joint limits

• Posture pre-storing

• Trajectory-tracking in joint space

• Trajectory-tracking in Cartesian space

• Maximum-reach, characteristic length, optimum-posture evaluation for a givenrobot

• Robot-Jacobian evaluation at a given posture

• Robot-conditioning evaluation at a given posture

• A snapshot of the scene to be saved in Encapsulated PostScript (EPS), PortableDocument Format (PDF) or Scalable Vector Graphics (SVG) formats

• Display of reference frame, the moving frames and the EE frame

• Creation and visualization of work environments

5

Page 6: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 1: RVS4W Main Window

1.2 Document Conventions

Conventions used throughout the manual:

• Typewriter fonts are used to represent RVS4W commands, shell commands,directory paths, and code (C++ scripts).

• Uppercase ITALICS fonts are used to represent file names.

2 RVS4W Basics

This section introduces the user into the basic features of RVS4W. After reading thissection, the user should be able to load RVS4W and use its main functions.

2.1 Starting RVS4W

To start RVS4W, go to 〈install directory〉\rs and double-click RVS4W.EXE.The RVS4W main window will appear as shown in Fig. 1. RVS4W commands aregrouped in the main menu displayed at the top of the RVS4W window. To activate acommand, navigate through the menu system and select the required menu item. Thecorresponding dialog is invoked and displayed on the screen. Notice that, to activatesome commands, the user must load a robot in RVS4W.

6

Page 7: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

2.2 Mouse Controls

Once a robot is loaded, the user can rotate, zoom and translate the rendering.

• Press and hold the left-mouse-button and drag the mouse to rotate the workspacewith respect to the viewer.

• Press and hold the middle-mouse-button and drag the mouse upwards (down-wards) to zoom-in (zoom-out).

• Press and hold the right-mouse-button and drag the mouse to translate theworkspace in the corresponding direction.

2.3 Units

With regards to the geometric dimensions of the robot and the work environment,RVS4W does not incorporate a unit manager. The user is free to decide on the unitsof length while interacting with RVS4W. Whenever units of length are needed in thisdocument, the legend usu, for user-specified-units, is included. The user is encouragedto indicate the selected units in the corresponding Description text box (Sec. 4) asan aide-memoire. All angles must be specified in degrees.

2.4 The Robot Menu

2.4.1 New Robot: Creating a robot

Select Robot > New Robot (Fig. 2) to invoke the Create Robot dialog (Fig. 3). Next,input the desired number of links for the new robot and press OK. The Create Robot

- Parameters dialog (Fig. 4) is displayed. This dialog has four main groups:

1. Filename: Input the name of the new robot.

2. DH Parameters: Input the corresponding robot dimentions using the DH con-vention described in (Angeles, 2007), i.e., a, b, al (α) and th (θ). By default, ajoint is taken as revolute. To specify a prismatic joint check the correspondingPrismatic check box. Notice that RVS4W does not support the conditioningevaluation for robots with prismatic joints.

3. Joint limits: To specify the physical limits of a joint, check the correspondingLimits check box and input the minimum and maximum values in the min andmax text boxes. The limits must be specified in degrees for the revolute joint,in agreement with the DH convention adopted at the outset. For a prismaticjoint, the limit must be specified in usu.

4. Description: Input the description of the robot in this text box.

Click Save to save the robot and render its skeleton on the screen. Click close

to exit the dialog.

7

Page 8: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 2: Menu: Robot

Figure 3: The Create Robot dialog

8

Page 9: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 4: The Robot Parameter dialog

2.4.2 Load Robot: Loading an existing robot

Select Robot > Load Robot from the main menu (Fig. 2) to display the Load Robot

dialog (Fig. 5). In this dialog a list box displays the list of existing robots. The userhas several options:

• Select a robot to view its description

• To load a robot, choose the desired robot and click Load

• To delete a robot, select the robot to be deleted and click Delete. The con-firmation dialog appears. Click OK to delete the robot or Cancel to keep it.Notice that when a robot is deleted, all the relevant data are erased from thesystem. This includes the architecture, configuration and trajectory files of theselected robot. This means that, if the user is to try a given trajectory on var-ious robots, then the user must save the trajectory in a separate data file, thencopy-and-paste it on the data file of every robot to be assigned this trajectoryfor tracking.

9

Page 10: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 5: The Load Robot dialog

2.4.3 Edit Robot: Editing the robot

Selecting Robot > Edit Robot (Fig. 2) brings up the Edit Robot dialog on thescreen (Fig. 6).

• To change the display geometry, click the appropriate radio button: Up, Down orFull. The full-geometry option is available only for those robots whose detailedlink-geometry has been previously input.

• To modify the robot parameters, click the appropriate link button. This bringsup the corresponding Link Settings dialog. The reader is referred to Subsec-tion 2.4.4 for details on the Link Settings dialog.

Click close to exit the Edit Robot dialog.

2.4.4 The Link Settings dialog

The Link Settings dialog (Fig. 7) can be accessed through the Edit Robot dialog.There is a separate Link Settings dialog associated with each link of the robot. Thelink number is displayed at the top of the dialog. The dialog displays a set of optionsorganized in three groups.

10

Page 11: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 6: The Edit Robot dialog

• Joint: To select the required joint-type, revolute or prismatic, check the corre-sponding check box.

• DH Parameters: The DH parameters of a link that can be edited depend onthe selected joint-type. To change the DH parameters of the link, input thedesired value or use the arrow buttons to increase or decrease the value of thecorresponding parameter. The robot is updated dynamically, i.e., as soon asthe new value is input in the spinner.

• Joint Limits: To specify joint limits, check the Limits check box and enter themaximum and the minimum joint values.

Click close to exit the Link Settings dialog.

2.4.5 Displaying the DH parameters of the current robot

To display the DH parameters, select Robot > DH Parameter (Fig. 2). The DH

Parameters dialog will appear on the screen (Fig. 8) showing the relevant parametersof the loaded robot. Click close to exit the dialog.

2.4.6 End-Effector: Selecting an end-effector

To select the required end-effector choose Robot > End-Effector (Fig. 2). Thisactivates the End Effector dialog (Fig. 9). The available end-effectors for the loadedrobot are displayed in a list box. Select the desired end-effector and click close tohide the dialog.

2.4.7 Save: Saving a robot

Select Robot > Save to save the current robot. Notice that the current posture ofthe robot is saved as the default posture. The default posture of a robot is one thatis used to render the robot when the robot is loaded.

11

Page 12: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 7: The Link Settings dialog

Figure 8: The DH Parameters dialog

12

Page 13: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 9: The End-Effector dialog

Figure 10: The Robot Save As dialog

2.4.8 Save As: Saving a robot with another name

To save the robot with a different name, select Robot > Save As (Fig. 2). The RobotSave As dialog will appear on the screen (Fig. 10). Input the new filename and clickSave. The robot will be saved under the new filename.

2.4.9 Exit: Exiting RVS4W

To exit RVS4W, select Robot > Exit.

2.5 The Posture Menu

2.5.1 Joint Limits: Setting joint limits

RVS4W allows the user to set joint limits. When active, the joint limits are consideredin the forward and inverse kinematics of the robot. Select Posture > Joint Limits

(Fig. 11) to activate the Joint Limits dialog (Fig. 12).

• To activate joint limits, check the Joint Limits On check box.

13

Page 14: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 11: Menu: Posture

• To deactivate joint limits, check the Joint Limits Off check box.

• To specify joint limits, input the maximum and minimum values in the corre-sponding joint-limit spinner.

• To exit the dialog, click close.

2.5.2 Select Configuration: Moving the robot to a saved posture

The robot can be moved to previously saved postures. RVS4W provides two posturesautomatically:

1. <robotname>.Characteristic: The characteristic posture is that with thebest conditioning. See Subsection 2.7 for further details.

2. <robotname>.Maxreach: A posture at the maximum reach of the robot.

It is also possible to save a robot posture. Please refer to Subsection 2.5.3 belowto find how this can be done.

To move to a previously saved posture, select Posture > Select Configuration

from the menu (Fig. 11). The Select Configuration dialog will popup on the screen

14

Page 15: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 12: The Joint Limits dialog

(Fig. 13). All the saved postures of the loaded robot are displayed in a list box. TheSelect Configuration dialog offers three functions:

• To move the robot to a saved configuration, select the desired configurationfrom the list box.

• Spline: When this option is selected, the robot translates from the currentposture to the selected posture.

• Jump: Select this option if you want the robot to jump to the selected configu-ration.

Click close to hide the Select Configuration window.

2.5.3 Forward Kinematics

To change the posture of the robot by changing the value of the joint coordinates (for-ward kinematics) or to save the current joint configuration, click Posture > Forward

Kinematics (Fig. 11). This brings forth the Forward Kinematics dialog (Fig. 14).The symbol thi represents the joint number. Next to the joint number is the respectivejoint-coordinate value.

• To change the value of the joint coordinate, do one of three actions:

1. Input the new value of the joint coordinate in the appropriate text box.

2. Use the arrow buttons to increase or decrease the joint-coordinate value.

3. Drag the horizonal scroll bar of the corresponding joint.

• To save the joint-coordinate values of the current posture, input the desiredfilename in the File text box and click Save.

15

Page 16: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 13: The Select Configuration dialog

• To exit the dialog, click close.

2.5.4 Inverse Kinematics

To change the pose of the end effector and hence change the posture of the robot (in-verse kinematics), select Posture > Inverse Kinematics from the menu (Fig. 11).The Inverse Kinematics dialog will popup on the screen (Fig. 15).

• Position: To change the position of the end-effector, input the desired valuein the x, y, and z text boxes or use the arrow keys to increase or decrease thevalue.

• Orientation: To change the orientation of the end-effector, input the desiredvalue in the Rx, Ry, and Rz text boxes or use the arrow keys to increase ordecrease the value.

• To view the orientation matrix, click on the Q button.

• To view the robot Jacobian, click on the J button.

• Click close to exit dialog.

An outline of the inverse kinematics algorithm is available in the Appendix.

16

Page 17: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 14: Dialog: Forward Kinematic

2.6 The Trajectory Menu

2.6.1 Joint Trajectory: Making the robot follow a joint trajectory

The Joint Trajectory command allows the robot to follow a pre-stored joint trajec-tory. To activate the Joint Trajectory command, select Joint Trajectory fromthe Trajectory menu (Fig. 16). The Joint Trajectory dialog will popup on thescreen (Fig. 17). In this dialog a list box displays the stored joint trajectories for theloaded robot.

• Click on the desired trajectory to load it. The corresponding Cartesian trajec-tory is evaluated and displayed in the main RVS4W window in blue.

• Points: Click once to display the corresponding Cartesian-position points ofthe trajectory. Click again to switch the option off.

• Frames: Click once to display the Cartesian frames of the trajectory. Clickagain to switch the option off.

• Cont: To make the robot follow the trajectory continuously, check the Cont

text box.

• Step: To make the robot follow the trajectory step-by-step, check the Step textbox.

17

Page 18: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 15: The Inverse Kinematics dialog

• Reset: Click to move the end-effector to the initial position.

• Clear: Click to unload the selected trajectory, clear the trajectory display fromthe workspace and reset the dialog.

• Forward: Click the forward button I to start the animation in the forwarddirection.

– If the Cont option is selected, the end-effector will move to the initial pointof the trajectory and follow the trajectory to the end. Click the forwardbutton I again to stop the animation in-between.

– If the Step option is selected, the end-effector will move to the next stepin the trajectory.

• Backward: Click the backward button J to start the animation in the backwarddirection.

• Use the scroll bar to drag the robot along the trajectory manually.

• Click close to exit the dialog.

18

Page 19: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 16: Menu: Trajectory

2.6.2 Cartesian Trajectory: Making the robot follow a Cartesian trajec-tory

The Cartesian Trajectory command allows the robot to follow a pre-stored end-effector trajectory that is described in the Cartesian coordinates. In order to activatethe Cartesian Trajectory command, select Trajectory > Joint Trajectory fromthe menu (Fig. 16). This brings up the Cartesian Trajectory dialog (Fig. 18). Thelist box in this dialog displays the Cartesian trajectories available for the loaded robot.

• Click on the desired trajectory to load it. The Cartesian trajectory is displayedin the main RVS4W window in pink.

• Points: Click once to display the corresponding Cartesian position points ofthe trajectory. Click again to switch the option off.

• Frames: Click once to display the Cartesian frames of the trajectory. Clickagain to switch the option off.

• Cont: To make the robot follow the trajectory continuously, check the Cont

text box.

• Step: To make the robot follow the trajectory step-by-step, check the Step textbox.

19

Page 20: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 17: The Joint Trajectory dialog

• Reset: Click to move the end-effector to the initial position.

• Clear: Click to unload the selected trajectory, clear the trajectory display fromthe workspace and reset the dialog.

• Forward: Click the forward button I to start the animation in the forwarddirection.

– If the Cont option is selected, the end-effector will move to the initial pointof the trajectory and follow the trajectory to the end. Click the forwardbutton I again to stop the animation in-between.

– If the Step option is selected, the end-effector will move to the next stepin the trajectory.

• Backward: Click the backward button J to start the animation in the backwarddirection.

• Use the scroll bar to drag the robot along the trajectory manually.

• RVS4W can save the corresponding joint trajectory to a file. This is done byfollowing the steps below:

1. Load the desired Cartesian trajectory and check the Cont check box.

2. Make the robot follow the complete trajectory by clicking the forward but-ton I and letting it run to the end. This step evaluates the correspondingjoint angle trajectory of the Cartesian trajectory at hand.

20

Page 21: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 18: The Cartesian Trajectory dialog

3. Specify a filename for the corresponding joint trajectory in the Joint Traj

File text box and click Save.

• Click close to exit the dialog.

2.6.3 Transform Trajectory: Transform a displayed trajectory

The Transform Trajectory command allows the user to transform a pre-stored tra-jectory in the workspace. Notice that the user must load a trajectory, joint or Carte-sian, into the system before activating the Transform Trajectory command. Toactivate the Transform Trajectory command, select Transform Trajectory fromthe Trajectory menu (Fig. 16), the Transform Trajectory dialog then popping upon the screen (Fig. 19).

• Position: To translate the trajectory, input the x, y and z translation compo-nents in the corresponding text boxes.

• Orientation: To rotate the trajectory about the origin of the base frame, inputthe relevant Rx, Ry and Rz components.

• Scale: To scale the trajectory with respect to the origin of the base frame,input the required scaling in the Scale text box.

21

Page 22: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

• Traj File: To save the trajectory, type-in the filename in the Traj File textbox press Save.

• Click close to hide the dialog window.

2.6.4 Converting joint trajectories to Cartesian trajectories

The Transform Trajectory command can also be used to convert a joint trajectoryto its corresponding end-effector Cartesian trajectory. This is done by following thesteps below:

1. Load the desired joint trajectory (Sec. 2.6.1).

2. Activate the Transform Trajectory dialog.

3. Input the filename for the corresponding Cartesian trajectory in Traj File andclick save.

2.7 Conditioning

For a detailed account of the theoretical issues pertaining to this subsection, thereader is referred to (Khan and Angeles, 2006). The Conditioning dialog providesuseful information to the user, namely, the conditioning, the characteristic length andthe maximum reach of the robot at hand. Select Conditioning from the main menuto activate the Conditioning command. The Conditioning dialog will popup onthe screen (Fig. 20).

In RVS4W the robot conditioning is computed as the reciprocal of the minimumcondition number κF of the dimensionless (also termed homogeneous) Jacobian H,defined as

κF ≡ 1

m

√||H||F ||H−1||F (1)

where || · ||F is the Frobenius norm of the matrix argument, m is 3 for planar andspherical robots, 6 for spatial; moreover, we assume n joints, with n ≥ m. The factor1/m in the right-hand side of eq.(1) stems from the use of the weighted Frobeniusnorm of H, namely,

||H||F ≡√

tr(HWHT ), W =1

m1 (2)

Hence, the weighted Frobenius norm of a m× n matrix, with n ≥ m, yields the rmsvalue of the set of m singular values of H (Strang, 1986). The conditioning lies in theinterval [0, 1], with 1 being best and 0 worst.

22

Page 23: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 19: The Transform Trajectory dialog

If the robot at hand is redundant, with n > m joints, then H is a m× n matrix,formula (1) still applying, but with H−1 replaced by the right Moore-Penrose gener-alized inverse of H, namely HT (HHT )−1 (Strang, 1986). It is not difficult to provethat the Frobenius norm of the foregoing generalized inverse reduces to

||HT (HHT )−1||F =

√1

mtr[(HHT )−1] (3)

In order to avoid dimensional inhomogeneity1, RVS4W evaluates the characteristiclength of the robot. The numerical value of the characteristic length is shown in theCharacteristic length display box in the Conditioning window, in usu. Furtherdetails on conditioning, characteristic length and the optimum posture can be foundin (Angeles, 2007; Khan and Angeles, 2006).

The evaluation of the characteristic length, given the DH parameters of a robot,

1That is, a Jacobian with entries bearing disparate physical units

23

Page 24: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 20: The Conditioning dialog

is known as the forward problem (Khan and Angeles, 2006), the inverse problem con-sisting in the computation of all DH parameters of an optimum robot with maximumconditioning, under user-specified constraints. RVS4W attempts to solve the above-mentioned problem using the Nelder-Mead simplex method. This is done when therobot is loaded. RVS4W displays a ‘+’ besides the robot name upon convergence. Thecharacteristic length is displayed in the Characteristic length text box. Shouldthe Nelder-Mead method fail to converge, a ‘−’ sign is displayed besides the filenameand a value of −1 is put in the Characteristic length text box. For cases whereevaluation of the characteristic length is either irrelevant or undefined, e.g., in thecase of spherical robots, RVS4W displays 0 in the Characteristic length text box.

2.8 The Environment Menu

2.8.1 Set Work Environment: Creating and editing the work environment

The Set Work Environment command allows the user to set the work environment.Click Environment > Set Work Environment from the menu (Fig. 21). This bringsup the Set Work Environment dialog (Fig. 22) to select and place objects in thework environment, follow the steps below:

1. Input the required number of objects in the Total text box.

2. Select the first object by choosing ‘1’ from the ID list.

24

Page 25: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 21: Menu: Environment

3. Turn on the Visible button.

4. Select the type of object from the Object drop-down list.

5. Enter the dimensions of the selected object in the Length, Height, and Width

text boxes.

6. Enter the position of the selected object in the Position x, Position y, andPosition z text boxes.

7. Orient the object by selecting an axis of rotation and inputting the desired angleof rotation by using the Rotation text box.

8. From the Color list, select the color of the object.

9. Select the next ID from the ID list and repeat steps 3 to 8.

To save the environment, input the filename in the File text box and click Save.Click close to exit the dialog.

25

Page 26: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 22: The Set Work Environment dialog

2.8.2 Load Work Environment: Loading a work environment

To load the work environment of a robot, select Load Work Environment from theEnvironment menu (Fig. 21). The Load Work Environment dialog will popup on thescreen (Fig. 23). The types of Work environment available are displayed in a list box.Select the desired work environment to load and display it in the main window.

2.8.3 Obstacle: Creating and editing obstacles

RVS4W allows the user to place obstacles in the workspace to detect collisions visually.Select Obstacle from the Environment menu (Fig. 21). The Obstacle dialog willpop up on the screen (Fig. 24). The position and velocity of the obstacle can bespecified from the Obstacle Data group. The position of the obstacle is defined withrespect to the base frame. Currently the obstacle velocity option is not operational.The shape of the obstacle is spherical. Its radius can be modified by dragging theRadius scroll bar or by entering the new values, in usu, in the corresponding textfields. To display the obstacle, click the Visible push button. When the obstacle isvisible, the user will see a grey sphere inside the workspace. Click close to exit thedialog.

2.8.4 Payload: Creating and editing payloads

RVS4W allows the user to mount a payload at the tip of the end-effector. SelectPayload from from the Environment menu (Fig. 21). The Payload dialog will appearon the screen (Fig. 25). The user can position the payload with respect to the end-effector frame. The default position is the origin of the end-effector frame. To modify,type-in the new value in the appropriate text box. The shape of the payload is

26

Page 27: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 23: The Load Work Environment dialog

spherical by default2. Its radius is modified by using the scroll bar or typing in thenew value in the Radius text field. To visualize the payload, click on the Visible

button. When the payload is visible, the user will see a green sphere inside theworkspace. Click on the close button to exit the dialog.

2.9 Setting

Use the Set System dialog to change various global settings in RVS4W. These includethe background color, projection, axis-display and settings related to the inversekinematics engine. Select Setting > Set System from the menu (Fig. 26). The Set

System dialog will appear on the screen (Fig. 27). The dialog is divided into fourgroups.

• Background Color: the R, G or B slider to change the color of the background.A palette of three colors is also provided.

• View: Use the radio buttons to select the type of projection: perspective ororthogonal.

• Axes: There three options in this group, i.e., Reference, Joint and End-Effector

which allow the user to display or hide the coordinate axes.

2The user who wants to develop a feature allowing for user-defined payload shapes is invited torequest the source code by writing to the address provided in the RVS4W Web site.

27

Page 28: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 24: The Obstacle dialog

Figure 25: The Payload dialog

28

Page 29: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 26: Menu: Setting

• Inverse Kinematics: This group allows the user to fine-tune the inverse kine-matics engine. Please refer to the Appendix for further details.

To exit the dialog, click close.

2.10 Export: Exporting a scene

RVS4W can export the current scene to various file formats. To export a scene:

1. Select Export > Export (Fig. 28). The Export dialog will popup on the screen(Fig. 29).

2. Input the filename in the Filename text box.

3. Select the desired file format from the drop-down list and click Save

2.11 About

The About command provides some information about RVS4W. Select About > About

(Fig. 30) to display the About dialog on the screen (Fig. 31).Configurations

29

Page 30: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 27: The Set System dialog

Figure 28: Menu: Export

30

Page 31: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 29: The Export dialog

Figure 30: Menu: about

31

Page 32: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Figure 31: The About dialog

3 Joint Configuration

RVS allows the user to move the robot to pre-stored postures (configurations). Thepre-stored configurations must be described in terms of the joint coordinates. Thefilename must be in the form:

<Robot name>.Configuration name

The joint configuration file must be provided in text format with the structure,

th = [ θ1 , θ2 , θ3 , ... ]

where θi is the variable of the ith joint, given in degree (or in usu for prismatic joints).The file must be stored in the RVS/JConfig/ directory.

4 Trajectories

4.1 Cartesian Trajectories

RVS4W allows the end-effector to follow pre-stored Cartesian trajectories. In thisvein, the trajectory is discretized to the desired resolution, thereby obtaining a set offrames F . Each frame F(i) then represents the desired end-effector pose with respectto the base frame, at sample time i.

32

Page 33: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

The Cartesian trajectory file must be provided in text format with the structure

x(1) y(1) z(1)Q11(1) Q12(1) Q13(1)Q21(1) Q22(1) Q23(1)Q31(1) Q32(1) Q33(1)x(2) y(2) z(2)

Q11(2) Q12(2) Q13(2)Q21(2) Q22(2) Q23(2)Q31(2) Q32(2) Q33(2)

......

...

where x(i), y(i) and z(i) are the position coordinates of the origin of the frame F(i),and Qmn(i) are the nine entries of the 3 × 3 rotation matrix Q(i) expressed in thebase frame.

For positioning robots, the structure of the text file must be

x(1) y(1) z(1)x(2) y(2) z(2)

......

...

For orienting robots, only nine entries of the orientation matrix Q are required,i.e.,

Q11(1) Q12(1) Q13(1)Q21(1) Q22(1) Q23(1)Q31(1) Q32(1) Q33(1)Q11(2) Q12(2) Q13(2)Q21(2) Q22(2) Q23(2)Q31(2) Q32(2) Q33(2)

......

...

The trajectory file must be stored in the /RVS/CTraj directory. The filenamemust be in the form

<Robot name>.Cartesian trajectory name

4.2 Joint Trajectory

RVS4W allows the robot to follow a pre-stored joint trajectory. The trajectory filemust be stored in the /RVS/JTraj directory. The filename must be in the form

<Robot name>.Joint trajectory name

33

Page 34: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

The joint trajectory file must be provided in text format with the structure

θ1(1) θ2(1) θ3(1) . . .θ1(2) θ2(2) θ3(2) . . .θ1(3) θ2(3) θ3(3) . . .

......

.... . .

where θi(j) is the variable of the ith joint, given in degree (or usu) at sample time j.An example of the joint trajectory file is shown below, as applicable to a redundant,seven-revolute robot. Note that the text file contains correspondingly seven columns.

−101.7014 −17.6766 98.9590 88.8606 −25.0257 119.4901 −113.3444−101.6753 −17.6985 98.8462 88.9656 −25.2299 119.6729 −113.5423−101.6438 −17.7185 98.7321 89.0719 −25.4328 119.8611 −113.7414−101.6070 −17.7365 98.6165 89.1794 −25.6346 120.0545 −113.9415

......

......

......

...

References

Angeles, J., 1985, “On the numerical solution of the inverse kinematic problem,” TheInternational Journal of Robotics Research, Vol. 4, No. 2, pp. 21–37.

Angeles, J., 2007, Fundamentals of Robotic Mechancal Systems: Theory, Methods,and Algorithms, Third edition, Springer, New York.

Darcovich, J., Angeles, J., Montagnier, P. and Wu, C.-J., 1999, “RVS: A robot visual-isation software package,” in Batoz, J.-L., Chedmail, P., Cognet, G. and Fortin, C.(editors), Integrated Design and Manufacturing in Mechanical Engineering, KluwerAcademic Publisher, Dordrecht, pp. 265–272.

Strang, G., 1986, Introduction to Applied Mathematics, Wellesley-Cambridge Press,Wellesley.

Khan, W. A. and Angeles, J., 2006, “The kinetostatic optimization of robotic ma-nipulators: the inverse and the direct problems,” ASME Journal of MechanicalDesign, No. 128, pp. 168–178.

Appendix

Here, we provide a brief account of the numerical procedure that RVS4W uses to solvethe inverse kinematics (displacement) problem. For details, the reader is referred to

34

Page 35: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Angeles (1985), as a basic reference. We have fine-tuned the numerics behind thealgorithm therein.

We set the task as a nonlinear least-square problem in the six joint variables θ as

minθ

1

2φT φ (4)

where

φ =

vect(∆Q)tr(∆Q)

∆r

; ∆Q = QQT

C − 1; ∆r = r− rc (5)

Furthermore, 1 is the 3× 3 identity matrix, Q is the rotation matrix that representsthe current orientation of the end-effector with respect to that of the base-frame,QC being the target counterpart of Q—i.e., the representation of the desired EEorientation—while r is the homogenized position vector of the end-effector. That is, ris a dimensionless position vector, obtained upon dividing the current position vector,in usu, by the robot characteristic length, in usu as well. Notice that the characteristiclength is calculated by RVS4W upon loading a given robot. The iterative procedureinvolved can be either successful or unsuccessful in reaching convergence. If successful,the computed value is transferred to the inverse-kinematics routine; otherwise, thisroutine uses the mean value of the link lengths in lieu of the characteristic length.As well,, rC is the target position vector of the operation point. Both Q and r aredefined in the base frame. Finally, vect(·) and tr(·) are, correspondingly, the vectorand the trace (Angeles, 2007) of the argument matrix—a 3× 3 rotation matrix.

RVS4W uses the Newton-Gauss method to solve problem (4) iteratively: Givenan initial guess θ0, a sequence θ1, θ2, . . . , θk, θk+1, . . . is generated, which produces amonotonically decreasing sequence of values z1, z2, . . . , zk, zk+1, . . . , with zk definedas

zk =1

2[φ(θk)T φ(θk)] (6)

The sequence is generated in the form:

θk+1 = θk + ∆θk (7)

with the correction ∆θk computed as the least-square approximation of an over-determined linear system of seven equations in six unknowns, namely,

Φ∆θk = −φ(θk) (8)

where

Φ(θk) =∂φ(θ)

∂θ|θ=θk

(9)

is the 7× 6 Jacobian matrix of the nonlinear system (5). Notice that problem (8) isa linear system of seven equations in six unknowns. At each iteration, the correction∆θk is computed using Householder reflections.

35

Page 36: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

The process terminates when the termination criterion ||φ(θk)|| ≤ ε is met, for agiven tolerance ε. Notice that ε is dimensionless.

Actually, the convergence criterion for a nonlinear least-square problem is ||∆θk|| ≤εθ, for a prescribed tolerance εθ. The criterion adopted in RVS4W is stricter, in thatit imposes the vanishing of φ(θk), which is possible in our case because the four scalarorientation equations are not independent; they obey a quadratic constraint (Angeles,2007).

The Set System (Subsection 2.9) dialog provides access to the above-mentionedtolerance via the Error Tolerance text box. In this dialog the maximum number ofiterations can also be set .

36

Page 37: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

Index

Cartesian trajectoryconvert to joint trajectory, 20follow, 19

characteristic length, 5, 22, 23condition number, 23conditioning, 5, 22

DH parametersdisplay, 11edit, 11input, 7

dialogAbout, 29Cartesian Trajectory, 19Conditioning, 22Create Robot - Parameters, 7Create Robot, 7DH Parameters, 11Edit Robot, 10End Effector, 11Export, 29Forward Kinematics, 15Inverse Kinematics, 16Joint Limits, 13Joint Trajectory, 17Link Settings, 10Load Robot, 9Load Work Environment, 26Obstacle, 26Payload, 26Robot Save As, 13Select Configuration, 15Set System, 27Set Work Environment, 24Transform Trajectory, 21

display geometrydown, 10full, 5, 10skeleton, 5up, 10

end-effector, 11exiting RVS4W, 13

filesCartesian trajectory, 32joint configuration, 32joint trajectory, 33

forward kinematics, 15

inverse kinematics, 16iterations, 36settings, 29tolerance, 36

Jacobian, 5joint limits, 7

deactivate, 14activate, 13input, 13maximum, 7minimum, 7

joint trajectoryconvert to Cartesian trajectory, 22follow, 17

joint-typeprismatic, 7revolute, 7

mouse controls, 7

Nelder-Mead method, 24

obstablecreate, 26edit, 26

payloadcreate, 26edit, 26

posturecharacteristic, 14maximum reach, 5, 14, 22

37

Page 38: Robot Visualization System for Windows (RVS4W) User’s Manualrmsl/Index/Documents/RVS4WManual.pdf · 2012. 11. 5. · User’s Manual W. Khan, H. Zhuang and J. Angeles Centre for

optimum, 5, 23pre-stored, 14

robotconditioning, 22create, 7delete, 9description, 7edit, 10

DH parameters, 11joint limits, 11joint-type, 11

load, 9save, 11save as, 13

savejoint configurations, 15

sceneexport, 29rotate, 7snapshot, 5translate, 7zoom in/out, 7

spline, 15starting RVS4W, 6system settings, 27

background color, 27projection, 27

trajectoryrotate, 21scale, 21transform, 21translate, 21

units, 7angular, 7user-specified-units, 7

work environmentcreate, 24edit, 24load, 26

38