Robot Simulator v1.0 
README.TK
20.09.2000

This is overview of what can you do with help of
TK client. TK client is a graphical user interface to
robot simulation program, but it has one good thing
not found in many other GUI's - network is transparent
to the client, i.e. you can start it and simulator on
different hosts if you want.
 

###############################################################
#########  starting TK client  ################################
###############################################################

To start it just go to directory robosim/tkclient and type:

	./tk_client

It will wait for a second, trying to connect to default host.


################################################################
#########    Overview of main menu  ############################
################################################################ 

Let's describe the first menu which appears after starting
our client. We will call it main menu.
So, from the top you see 

1) Name of the panel, "TCL/TK client".
2) Separated from other stuff set of labels, tables and button 
   indicators. They include:
	a) at the top - indicator of connectivity, it shows 
	   if the clien can find somebody to connect to with current
           state of settings. Client always checks connectivity before
	   sending a command.
	b) left table - RPY values of the robot tool frame.
	   X,Y,Z - global coordinates of tool frame, in mm. 
	   A,B,C - angles of rotation of the tool frame first about X,
	   then about received Y, then received Z axis, in degrees. 
	c) next to the left table is one which shows current states of
	   joints, in degrees.
	d) button indicators - for displaying which gripper is currently
	    on the robot and for putting necessary gripper on. 
	Note, those values are updated only when a command to simulator
	invoked.
3) Between two grooved areas, in the middle - radio buttons for
   switching control mode into RPY or Joints. This affects what
   you can do with presented below control panel, see next.
4) Control panel, which can be of three different kinds -
   presented as buttons, arrows and slides. You can send command
   with it to move robot. Command can be RPY movement or joint
   movement. Rectangular buttons are for "one click",
   arrows - for "click and wait", slides - "move and wait" modes.
   Appearance is changed by button below "Change Panel". Also
   you can change step of movement by choosing necessary value
   in "Step" menu.
5) "Gripping" button opens menu to handle gripping operation.  
6) "Help" button opens "Help screen", described below.
7) "Quit" closes main menu and all others.




#########################################################################  
##########  Help Screen (press "Help" in main window) ###################
#########################################################################

Believe you or not but "Help" button opens just exactly what you are
reading now. You can choose another help file (README or whichever)
pressing "Other file". "Close" button shuts down current window.




#########################################################################
##########  Gripper Control (press "Gripping in main window)"  ##########
#########################################################################

This menu lets you control gripping operation. You can choose necessary
gripper from main menu. What you see here is slide which controls
opening of currently mounted gripper. Under label "Object" you
can specify if you want to attach object to the gripper or release.
"Close" button shuts down current window.


#########################################################################
#########  Configuration menu (press "Configure" in main window)  #######
#########################################################################

1) Probably you will want to go to it just after you have started GUI.
On the top you will see entries for host name of the computer on which
your simulation is running and port number. Usually port number is said
when you start "robot_server" program. Its value should be one more then
official port number assigned to simulation program. When you entered
your data, click on "Activate" and look at indicator of connectivity
in main menu. It should change its color from red to green and 
label on it will also be changed accordingly. Note however, green
light of the button does not promise you that all will function well,
it means only that process on that host at pointed port number is
running. Checking connectivity is done always when you send any
command to that server. ATTENTION : don't try to connect to unknown 
processes, ports .... you will get your client stuck. If you want to
change some of  default settings look into robosim/tkclient for
"settings.tcl" file - syntax is very simple. With C-code clients
there could be easy improvement against hanging, but this client is just
scriptic code, #:0( .
2) Next to "Activate" button you will see scales to adjust time of delay
of updating scale information (when you move slider it does not perform
any command immediately - after some time) and intervals of time to send
command when using arrow buttons in control panel. Delay of updating 
scales is very nice solution to decrease overhead of network transferring,
also it's very useful for sending robot movement commands 
(it will not be staggering because of you cannot position slider 
from the very first moment :) .
3) "Limits" button let you open two kinds of menus - for modifying limits
of speeds and limits of joints' or grippers' movements, see later.
4) "Objects" button let you input or delete some boxes 
(currently, only boxes) in the robot cell, see later.
5) "Server options" button opens sub menu where you can change two server 
variables, network timeout and CPU timeout. First one tells server 
to sleep specified amount of time if there are no-connections currently 
performed. Second parameter tells to server to free specified amount 
of time between GL window updates so that system is less busy and other 
tasks also will have ability to use CPU more time. Usually that parameter
is not very important for powerful workstations, but on slow computers 
GL server can occupy whole CPU ability if the value of CPU timeout is very
small. So it's up to you, I usually take for GL from computer 
what is possible - set it to "0".

6) "Close" button .... you can guess what it does, cannot you?


###########################################################################
# Joints and grippers limits (press Configure, Limits, Joints&Grippers) ###
########################################################################### 

This menu allows you to set maximum and minimum values of robot joints
and grippers. If you want to change some of values just correct 
corresponding entries and press "Apply". If you don't know values and want
to get up to date information about current settings from simulation server
itself - just press button "Ask server about limits".


###########################################################################
##### Speeds' limits (press Configure, Limits, Speeds) ####################
########################################################################### 

This menu allows you to set maximum speeds of robot joints and grippers.
If you want to change some of values just correct corresponding
entries and press "Apply". If you don't know values and want to get 
up to date information about current settings from simulation server 
itself - just press button "Ask server about speeds".


###########################################################################
########## Object Management (press Configure, Objects) ###################
###########################################################################

This menu helps you to place/delete objects in the GL window. All objects
are numbered from 0 to 9. Really there could be more objects defined by 
user, currently about 20. This limit has the only purpose of defending 
server from spoiling graphic engine by huge number of objects. All objects
are placed in some kind of queue or stack. New objects are placed 
at the end of the queue. You can remove any object in any sequence but 
remember that they change their numbers each time you remove something.
For example, if you have 2 objects, say, N0 and N1 and want to remove N0,
after such an operation you'll get your N1 object as N0 - just like 
in the queue. Menu has two groove separated areas, one to add new object
and one to remove an object. To remove object just press button "Remove"
and choose desired number. To Add object fill up necessary entries - sizes,
center of the local system of coordinates for object (0,0,0 means real 
center of the object), it's frame, RGB color (triple 0-99) and press "Add".
In the future probably more nice features will be added. For now take 
it as is.


################################################################
################################################################
######### T H A T ' S    A L L    F O R   20.09.2000  ##########
################################################################
################################################################


  
