The sources of this software is freely available via anonymous fpt (download for Sun, download for Linux).
This software is provided "as is" without warranty of any kind. In no event shall INRIA be liable for any loss of profits, loss of business, loss of use or data, interruption of business, or for indirect, special, incidental, or consequential damages of any kind, arising from any error in this software.
Window system: X
Type: sources
Language: C
OS:Solaris,linux
Number of lines: 10000
Size of binary: 2.58 Mo (Solaris), 1.3 Mo (linux)
Output: display, graphic output in xjpdraw format
-S [robot type] -R [robot file]robot type is one of the following keyword:
A xjpdraw file of the current robot will be obtained by giving a file name in the window Jpdraw file. To get a drawing from a file toto use the command
xjpdraw -X 6 -Y 6 -F totoThe numbers 6 indicates that you will put your drawing in a 6x6 rectangle.
visu_robot -C [command file]or
visu_robot -CI [command file]In the latter case the command file will be executed without any creation of a window. In the first case you run the command file by clicking on the button Execute.
A command file always begin by the definition of the robot. For example :
robot "-S left_hand -R inria.car"In the command file you can use variable (always beginning by a % followed by a number) and you can perform on this variable any classical arithmetic operations. See the xjpdraw command file manual. The position of the robot is defined by the order pos_data followed by values or variables.
Saving a robot in a drawing is done by using the order save followed by a file name between ". The file name can be indexed with a variable (e.g. "toto".
The command save_art enables to draw also the values of the articular coordinates. The commands face_view, side_view, top_view, perspective_view enable to modify the view point. The xjpdraw file is closed using the command close.
The order interrupt enables to interrupt the execution of the command file. visu_robot will ask if it can continue the execution.
Every lines between /* and */ is considered as a comment. Section Example presents an example of command file.
visu_robot -S main_gauche -R inria.car
x1 y1 x2 y2 x3 y3 xp1 yp1 xp2 yp2 xp3 yp3
x1 y1 x2 y2 x3 y3 xp1 yp1 xp2 yp2 xp3 yp3l11 l12 l21 l31 l32
x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 x5 y5 z5 x6 y6 z6 xp1 yp1 zp1 xp2 yp2 zp2 xp3 yp3 zp3 xp4 yp4 zp4 xp5 yp5 zp5 xp6 yp6 zp6 [L1 L2 L3 L4 L5 L6] [l1 l2 l3 l4 l5 l6]Les valeurs L, l sont les longueurs maximum et minimum des segments et sont optionnelles.
The values of L,l are the maximum and minimum leg lengths and are optional.
x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 x5 y5 z5 x6 y6 z6 xp1 yp1 zp1 xp2 yp2 zp2 xp3 yp3 zp3 xp4 yp4 zp4 xp5 yp5 zp5 xp6 yp6 zp6 l1 l2 l3 l4 l5 l6
x1 y1 z11 z21 l1 x2 y2 z12 z22 l2 x3 y3 z13 z23 l3 xp1 yp1 zp1 xp2 yp2 zp2 xp3 yp3 zp3
x1 y1 z1 xp1 yp1 zp1 x2 y2 z2 xp2 yp2 zp2 x3 y3 z3 xp3 yp3 zp3 Z l1 l2 l3
x1 y1 z1 xp1 yp1 zp1 x2 y2 z2 xp2 yp2 zp2 x3 y3 z3 xp3 yp3 zp3 Z
x1 y1 xp1 yp1
x1 y1 z1 xp1 yp1 zp1 x2 y2 z2 xp2 yp2 zp2 x3 y3 z3 xp3 yp3 zp3 p1 p2 p3 (in degree) l1 l2 l3
L'écriture du robot dans sa position courante dans un fichier xjpdraw se fait dès que l'on donne le nom d'un fichier dans la fenêtre File et que l'on aura tapé sur la touche Return. Pour obtenir un dessin à partir du fichier obtenu (mettons toto) tapez:
xjpdraw -X 6 -Y 6 -F totoLe chiffre 6 indique ici les dimensions en centimètres de votre dessin. La dimension en X et Y doivent être identique.
visu_robot -C essai.cmdou
visu_robot -CI essai.cmdCette dernière manière fait que le fichier de commande est exécuté sans qu'il y ait création de la fenêtre visu_robot. Dans la première syntaxe on fera exécuter le fichier de commande en appuyant sur le bouton Execute.
Un fichier de commande commence toujours par la définition d'un robot. Par exemple :
robot "-S main_gauche -R inria.car"Pour le reste la syntaxe des fichiers de commande est identique à celle utilisé pour les fichiers de commandes xjpdraw. On dispose ainsi de variables : elle commence par un % suivie d'un nombre. On peut faire sur ces variables tous les calculs utilisant les opérations mathématiques les plus courantes. On dispose aussi de test , de boucles etc..
La position du robot se fait avec l'ordre pos_data suivie de valeur qui peuvent être des nombres ou des variables. Le nombre de valeur est celui correspondant aux positions cartésiennes.
La sauvegarde dans un fichier xjpdraw se fait par l'instruction save suivi d'un nom de fichier entre ". Le nom peut être indexé par une variable comme dans "toto".%0. Si toto1. L'instruction save_art permet de sauver (après avoir écrit le fichier xjpdraw du robot) la valeur des variables articulaires.
Les instructions face_view, side_view, top_view, perspective_view permettent de modifier le point de vue du robot.
L'instruction close permet de refermer le fichier xjpdraw couramment ouvert alors que new effectue la même chose en invalidant le robot courant.
L'instruction interrupt permet d'interrompre le déroulement du fichier de commande. Le programme demande alors dans la fenêtre où l'on a lancé le programme si l'on continue. Il faut faire très attention que cette fenêtre soit visible.
D'autre part toute ligne entre /* et */ est considéré comme un commentaire.
/*------------------------------- Visualisation d'un robot de type main gauche. Le robot est visualise dans son deplacement selon l'axe z en perspective. Apres cela on desine le robot dans sa position courante en vue de cote et on sauve cette vue dans le fichier xjpdraw "toto" View of a Gough type robot. The robot will move along the z axis. Then we draw the side view of the robot and save it in the xjpdraw file "toto" -----------------------------*/ robot "-S main_gauche -R inria.car" %0=40 /* the loop for displaying the robot in a z axis motion */ for %0 from 40; (%0 < 50); step 0.1 bloc pos_data 0,0,%0,0,0,0 end_bloc /* end of the loop */ side_view save "toto" quit
Jean-Pierre Merlet