11 EASY ROB Chapter 09
11 EASY ROB Chapter 09
11 EASY ROB Chapter 09
API - 9
Application Program Interface
The below text will give a basic overview about the topics
• Kinematics
• Forward Kinematics
• Inverse Kinematics
• Trajectory Generation
IX-1
9 A P I - APPLICATION PROGRAM INTERFACE
IX-2
A P I - APPLICATION PROGRAM INTERFACE
Result: er_kin.dll
IX-3
9 A P I - APPLICATION PROGRAM INTERFACE
• rob_kin_inv(frame *base_to_tip)
Kinematic
Robot Chain
Output:
Robot Joints
*inq_q_solut()
IX-4
A P I - APPLICATION PROGRAM INTERFACE
Before the robot starts to move to its new target location, the
preparation routine, which returns the required motion time for
that move, is called. Afterwards, supposed the preparation was
successful, the execution routine is called in every interpolation
step to calculate intermediate locations for the robots TCP.
Many exported functions give full access to the current motion
planning values such as programmed speeds and
accelerations.
IX-5
9 A P I - APPLICATION PROGRAM INTERFACE
Result: er_ipo.dll
IX-6
A P I - APPLICATION PROGRAM INTERFACE
API-DYN - Dynamics
IX-7
9 A P I - APPLICATION PROGRAM INTERFACE
Folder: .\easy_rob\er_dvlp\
Desired VC++ project er_dyn.dsw
and actual C file: dyn_user.cpp
locations Functions: int dyn_cntrl_user_1..12 Control signals for
and speeds (void **dyn_cntrl_usr_ptr) each joint:
Input: Pointer for user defined data structure, float *inq_uc()
Current desired and actual locations,
Control parameter:
Example: PPI-Cascade
*inq_cntrl_kpp(): superimposed PosCntrl
EASY-ROB *inq_cntrl_kpv(): P - underlying VelCntrl
Data Base *inq_cntrl_kiv(): I - underlying VelCntrl
*inq_cntrl_aux1..3(): auxiliary values
Library: gear ratio, robot attributes, etc.
easyrobw.lib Variable Output: Error, actual joint error,
control signal float *inq_uc()
Control Example see file dyn_user.cpp
parameter, dyn_cntrl_user_1(void **usrptr)
sample time Result Dynamic Link Library Dll er_dyn.dll
in folder .\easy_rob\
Result: er_dyn.dll
The user defined structure allows the user to store all needed
data for this specific controller (adaptive-, state variable
feedback-, force controller, etc.), such as parameter or status
data, which are needed for the next sampling step. When the
routine dyn_cntrl_user_x() is called for the first time, this user
pointer is NULL and allows the user to allocate memory and to
defined all initial data settings. In the next step, EASY-ROB™
will return this pointer, thus all data are available for further
calculations.
IX-8
A P I - APPLICATION PROGRAM INTERFACE
Folder: .\easy_rob\er_dvlp\
Control VC++ project er_dyn.dsw
signals for C file: dyn_user.cpp Actual joint position
each joint Functions: int dyn_model_user_1..12
*inq_uc() *inq_q_dyn()
(void **dyn_model_usr_ptr) actual joint speed
Input: Pointer for user defined data structure, *inq_v_dyn()
Control signal from position controller
Model parameter:
gear ratio, robot attributes, etc.
Variable Output: Error, actual joint values:
EASY-ROB float *inq_q_dyn()
Data Base float *inq_v_dyn()
Example see file dyn_user.cpp
Library: dyn_model_user_1(void **usrptr)
easyrobw.lib Result Dynamic Link Library Dll er_dyn.dll
in folder .\easy_rob\
Robot model
parameter,
model
sample time
Result: er_dyn.dll
The user defined structure allows the user to store all needed
data for this specific dynamic robot model. This pointer works in
the same manner as for the position controller. Inside the API
for the robot model, it is possible to integrate high sophisticated
calculations to solve the inverse dynamic robot model with
consideration of nonlinearities for frictions, coriolis and gravity
forces, inertias and maybe elasticities in the gear boxes. The
solution for the complete model can be solved using Runge
Kutta for example.
IX-9
9 A P I - APPLICATION PROGRAM INTERFACE
IX-10
A P I - APPLICATION PROGRAM INTERFACE
A selection of
"4 - Inverse Kinematic
No"
in the Dialog in Figure
API-08
allows the user to choose
the function for the
inverse kinematics
Figure API-10: Selection Dialog for inverse solution defined in
kinematics er_kin.dll.
"3 - DLL inv. kin
#2"
will select function
"inv_kin_user_2(frame *)"
Menu: Robotics
-> Robot Motion Planner
-> Ipo Data
will open the Input Dialog
to set the control data for
the motion planner, such
as ipo step size, vq =
joint speed,
vx = cartesian speed,
Figure API-11: Input Dialog for Motion
Planner ipo data joint acceleration, ov =
override, etc.
Inside the API, you can
read and write all ipo
data, using the functions:
vq = *inq_ipo_path_vq()
vx = *inq_ipo_path_vx()
ov =
*inq_ipo_path_ov_pro()
IX-11
9 A P I - APPLICATION PROGRAM INTERFACE
Menu: Robotics
-> Robot Motion Planner
-> Ipo Joint Code
will open the Selection
Dialog to prompt the user
to choose the function for
the user defined motion
planner for the "Joint"
Figure API-12: Selection Dialog for joint motion type.
motion planner code This selection will enable
the 2 functions,
ipo_jnt_prep_user_1()
and
ipo_jnt_exec_user_1().
IX-12
A P I - APPLICATION PROGRAM INTERFACE
C- Program Examples
Inverse Kinematics
/*
EASY-ROB Development V3.0
Stefan Anton
modul: inv_user.cpp
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "..\er_dvlp\er_dvlp.h"
#define NUM_DOFS_2 6
#define NUM_CONFIGS_2 8
IX-13
9 A P I - APPLICATION PROGRAM INTERFACE
int *warnings,*verpolt;
int num_dofs,num_configs;
frame *T,b0Tt;
// lenghts l1z = 0.5 l2z = 0.6 l3z = 0.4 l4z = 0 l5z = 0 l6 = 0.15
l1z = achs_length[0]; // see also length "lz,lx,ly" in ’univ_inv.rob’ file
l1x = achs_offsets1[0];
l1y = achs_offsets2[0];
l2z = achs_length[1];
l2x = achs_offsets1[1];
l2y = achs_offsets2[1];
IX-14
A P I - APPLICATION PROGRAM INTERFACE
delta_theta2 = atan(l2x/l2z);
l2 = sqrt( l2x*l2x + l2z*l2z );
l3z = achs_length[2];
l3x = achs_offsets1[2];
l3y = achs_offsets2[2];
delta_theta3 = atan(l3x/l3z);
l3 = sqrt( l3x*l3x + l3z*l3z );
l6 = achs_length[5];
T = &b0Tt;
// substract the transformation from the robot base to the first joint ’bT0()’,
// see also Figure API-02 Transformation Chain
// see also in ’univ_inv.rob’ file: => ! base to Joint 1 "bT0"
mul_invT_T(T,inq_bT0(),bTt);
px = T->p[0]-T->a[0]*l6;
py = T->p[1]-T->a[1]*l6;
pz = T->p[2]-T->a[2]*l6-l1z;
rxy = sqrt(px*px+py*py);
if (fabs(ly)>0.0) {
rx = rxy*rxy - ly*ly;
if (rx<0.0) rx=0.0;
else rx = sqrt( rx );
delta_theta1 = rob_kin_atan2(ly,rx);
} else {
rx = rxy;
delta_theta1 = 0.0;
}
sig1 = -1.0;
sig2 = -1.0;
soln = 0; // soln counts the nunmber of solutions
IX-15
9 A P I - APPLICATION PROGRAM INTERFACE
if (rr<KIN_EPSI) {
rob_kin_set_warnings(WARN_UNREACH);
return( WARN_UNREACH );
}
if (warning==WARN_OK) {
theta[0] = -sig1*delta_theta1 + rob_kin_atan2(sig1*py,sig1*px);
}
else {
for (i=kk*4;i<(kk+1)*4;i++) warnings[i] = WARN_UNREACH;
soln = (kk+1)*4;
}
IX-16
A P I - APPLICATION PROGRAM INTERFACE
sig2 *= -1.0;
theta[1] = sig1*(PI/2.0-rob_kin_atan2(pz,rxm)-sig2*acos(c2))
- delta_theta2;
c1 = cos( theta[0] );
s1 = sin( theta[0] );
nx = (T->n[0]*c1+T->n[1]*s1)*c23-T->n[2]*s23;
ny = -T->n[0]*s1+T->n[1]*c1;
nz = (T->n[0]*c1+T->n[1]*s1)*s23+T->n[2]*c23;
ox = (T->o[0]*c1+T->o[1]*s1)*c23-T->o[2]*s23;
oy = -T->o[0]*s1+T->o[1]*c1;
oz = (T->o[0]*c1+T->o[1]*s1)*s23+T->o[2]*c23;
ax = (T->a[0]*c1+T->a[1]*s1)*c23-T->a[2]*s23;
ay = -T->a[0]*s1+T->a[1]*c1;
az = (T->a[0]*c1+T->a[1]*s1)*s23+T->a[2]*c23;
sig3 = -1.0;
IX-17
9 A P I - APPLICATION PROGRAM INTERFACE
Motion Planning
To be defined,
Dynamics
To be defined,
IX-18
A P I - APPLICATION PROGRAM INTERFACE
Nr. Name
of
the
Function
Description
Table 2. Kinematics
IX-19
9 A P I - APPLICATION PROGRAM INTERFACE
<==
4 " 8 ' ( ) * + $ & ' ! & $ % & " # 9 , ( -! * ' . 0 ( ) * + $ . 1 0 " 8 ' ) ! ' & " # 9 2 4 ) * + $ ' ! $ % ' ! ) "8 # $ 9 0
% * -% 5 - * ' $ 6 * ( ) * + $ " 8 ' ! * 7
# " + $ 8 6 "! 8 * - 3 $ % ' ! )
, 9 0: 0; 0C ) ! ' & "# 9 C 2
6 $ $ $ % & ' ! & ( ) * + $ & "# 9 , 2
5 ! "# 1 & + * -& 1 , 4 B < J . 1 ! 0 4 B < J . 1 " 0 4 B < J . 1 " 2 4 ) * + $ 5 -' " E - " % * ' " ! 8
1 ! 1 @" . 1 "
6 ! "# B & + * -& B , 4 B < J . 1 ! 0 4 B < J . 1 " 0 4 B < J . 1 " 2 4 ) * + $ ) " $ 8 ' * ' " ! 8 5 -' " E - " % * ' " ! 8
1 ! 1 " . 1 "
7 ! "# "8 & 1 , 4 B < J . 1 ! 0 4 B < J . 1 "2 8 $ ) 6 $ + * ' ) "9
1 ! "8 , 1 "2
8 ! "# + 5 -& " 8 1 & 1 , 4 B < J . 1 ! 0 4 B < J . 1 " 0 4 B < J . 1 " 2 4 ) * + $ 5 -' " E - " % * ' " ! 8
1 ! "8 , 1 " 2 . 1 "
9 ! "# + 5 -& 1 & " 8 1 , 4 B < J . 1 ! 0 4 B < J . 1 " 0 4 B < J . 1 " 2 4 ) * + $ 5 -' " E - " % * ' " ! 8
1 ! 1 " . "8 , 1 " 2
10 ! "# "8 % ) & 1 , 4 B < J . 1 "! 0 4 B < J . 1 "! 0 "8 ' "# 9 2 8 % ) $ + $ 8 ' 1 ) * 8 6 + * ' ) "9
"# 9 A 1 "! 1 "! . 1 "!
"# 9 A 1 "! 1 "! . 1 "!
11 ! "# "8 % ) & B , 4 B < J B "! 0 4 B < J . B "! 0 "8 ' "# 9 2 8 % ) $ + $ 8 ' B ! ' + * ' ) "9
"# 9 A B "! B "! . B "!
"# 9 A B "! B "! . B "!
12 ! "# % E : & B , 4 B < J . B ! 0 4 B < JJ . B "2 > ! E : "8 * ' ) "9 B ! B "
13 ! "# + 5 -& 1 & E ! 6 , ( - ! * ' . E ! 0 4 B < . 1 0 ( -! * ' . E " 2 1 )* 8 6 (! )+ $ 6 * $ % '! )
E! 1 . E"
14 ! "# ) ! N & " 8 & 1 & + * -& 1 , ( ) * + $ . 1 " 8 0 ( ) * + $ . 1 " 8 2 4 ) * + $ 5 -' " E - " % * ' " ! 8
1 "8 1@ "8 . 1 "8
15 ! "# ) ! N & " 8 & B & + * -& B , ( ) * + $ . 1 " 8 0 ( ) * + $ . 1 " 8 2 4 ) * + $ ) " $ 8 ' * ' " ! 8 5 -' " E - " % * ' " ! 8
1 "8 1 "8 . 1 "8
16 ! "# ) ! N & "8 & ( ) * + $ & "# $ 8 ' , ( ) * + $ . 1 2 K $ ' 6 4 ) * + $ 1 # $ 8 ' + * ' ) "9
17 ! "# ) ! N & " 8 & ) ! ' , " 8 ' ) ! ' & " # 9 0 # ! 5 N -$ / 0 ( ) * + $ . 1 2 > * -% 5 - * ' $ 6 4 ) * + $ 1
/ I * 8 -$ " 8 ) * #
) ! @' & " # 9 " 6 @
B 1&F 0B 1&G !)B @ 1&H
18 ! " # ) ! N & " 8 & ' ) * 8 6 , ( ) * + $ . 1 0 # ! 5 N -$ 9 0 # ! 5 N - $ : 0 # ! 5 N -$ ; 2 > * -% 5 - * ' $ 6 4 ) * + $ 1
1 , "# $ 8 ' 9 0: 0 ; 2
19 ! "# # D & ' ! & ( ) * + $ , B @ = &
O . ) # D 0 ( ) * + $ . 1 2 > * -% 5 - * ' $ 6 4 ) * + $ 1 ( ) ! +
O
E * )* + $ '$ )0 6 $ $ > D * E '$ )
20 "8 ' ) ! N & "8 &
! "8 ' & ' ) * 8 6 , "8 '
! "8 ' & # ! ( 2 > D $ % 6 Q $ ' D $ ) ' D $
! "8 ' "6
) ! ' * ' "! 8 * - ! ) ' ) * 8 6 -* ' "! 8 * -?
! "8 ' & # ! ( "6 8 5 + N $ ) ! (
! "8 '
B $ ' 5 ) 8 " (
! " 8 ' " 6 ' ) * 8 6 -* ' " ! 8 * -
21 "8 ' ) ! N & "8 &
! "8 ' & ) ! ' , "8 '
! "8 ' & # ! ( 2 > D $ % 6 Q $ ' D $ ) ' D $
! "8 ' "6
) ! ' * ' "! 8 * - ! ) ' ) * 8 6 -* ' "! 8 * -?
! "8 ' & # ! ( "6 8 5 + N $ ) ! (
! "8 '
B $ ' 5 ) 8 "(
! "8 ' "6 ) ! ' * ' "! 8 * -
22 ( -! * ' ) ! N & " 8 & ' ! &
J , " 8 '
! " 8 ' & # ! ( 2 B $ ' 5 ) 8 6 P ? "(
! "8 ' "6
) ! ' * ' " ! 8 * - 0 $ -6 $
23 ( -! * ' ) ! N & " 8 & ' ! & B <
, " 8 '
! " 8 ' & # ! ( 2 B $ ' 5 ) 8 6 P ? "(
! "8 '
" 6 ) ! ' * ' " ! 8 * - 0 $ -6 $
IX-20
A P I - APPLICATION PROGRAM INTERFACE
B C
gamma beta
A
25 ( -! * ' * 6 6 * , ( -! * ' N $ ' * 0 ( -! * ' 6 0 ( - ! * ' 6 2 1 ) " * 8 -$ > * -% 5 - * ' " ! 8 A
8 A N $ ' * 0 < 0 =
B $ '5 )8 A * + + *
26 ( -! * ' * 6 6 * , ( - ! * ' N $ ' * 0 ( -! * ' 6 0 ( -! * ' 6 2 1 ) " * 8 -$ > * -% 5 - * ' " ! 8 A
8 A N $ ' * 0 < 0 =
B $ ' 5 ) 8 A * -( *
27 ( -! * ' 6 6 6 * , ( -! * ' 6 0 ( - ! * ' 6 0 ( -! * ' 6 2 1 ) " * 8 -$ > * -% 5 - * ' " ! 8 A
8 A < 0 = 0 >
B $ ' 5 ) 8 A * -( *
28 ( -! * ' 6 * 6 6 6 * , ( -! * ' 6 0 ( -! * ' # $ -' * 0 ( -! * ' 6 0 ( -! * ' 6 0 ( -! * ' 6 2 1 ) " * 8 -$ > * -% 5 - * ' " ! 8 A
8 A < 0 # $ -' * 0 = 0 > 0
* -( *
6 * 6 6 6 * , < 0 # $ -' * . B <
0 = 0 > 0
2
gamma delta
?7 . B <
A
29 ( ) * + $ ." 8 / & 1 , ! " # 2 B ! N ! ' = * 6 $ ' ! 1 "E
30 ( ) * + $ ." 8 / & N 1 ' , ! " # 2 K * + $ * 6 . "8 / & 1 , 2
31 ( ) * + $ ." 8 / & N 1 , ! " # 2 B ? = * 6 $ ' !
8 ' ! ( "8 ? % D * "8
( ) * + $ ." 8 / & ' 1 Q , ! " # 2 1 ! ! - ( ) * + $ A B ! N ! ' 1 "E ' ! 1 > P
32
, Q "6 Q ) "6 ' 2
( - ! * ' ." 8 / & / & 6 ! - 5 ' , ! " # 2
$ 6 ") $ #
8 ' * 9 "6 * -5 $ 6
33
34 ( - ! * ' ." 8 / & & 6 ! - 5 ' , ! " # 2
$ 6 " ) $ #
! " 8 ' 6 E $ $ # * -5 $ 6
35 ( - ! * ' ." 8 / & * & 6 ! - 5 ' , ! " # 2
$ 6 ") $ #
! "8 ' * % % $ - * -5 $ 6
36 ( ) * + $ ." 8 / & N 1 Q , ! " # 2 B ! N ! ' = * 6 $ '! 1 > P
37 ( ) * + $ ." 8 / & " 1 N , ! " # 2 ! ) -# ' ! ) ! N ! ' N * 6 $
( ) * + $ ." 8 / & " 1 N & 6 ' ) ' , ! " # 2 K ' * ) ' ( ) * + $ A Q ! ) -# ' ! ) ! N ! ' N * 6 $
38
Q * ) 8 & "# 9@ A L
<B & M
IX-21
9 A P I - APPLICATION PROGRAM INTERFACE
41
+ ! 8 " ' ! ) " 8 ( " -$
moni_msg.dat
42 "8 ' ) ! N & "8 & ! ) ' ) * 8 6 , ( ) * + $ . 1 2 > * -% 5 - * ' $ ( ! ) Q * ) # " 8 $ + * ' " %
1 "6 ) ! N ! ' N * 6 $ ' ! 1 "E ?
, ) ! N ! ' N * 6 $ ' ! 1 > P " 6 * -6 !
% * -% 5 - * ' $ # 0 . " 8 / & N 1 Q , 2 2
43 " 8 ' ) ! N & " 8 & / & " 8 & ' ) * $ - & ) * 8 $ , ( -! * ' . / 2 ( ' D $ ) ! N ! '
! "8 ' "6 ) ! ' * ' "! 8 * -0
' D "6 ) ! 5 ' "8 $ + * $ 6 6 5 ) $ ' D * ' . /
* ) $ Q "' D "8 I P 0 P
44 "8 ' ) ! N & "8 & "8 , ( ) * + $ . N 1 ' 2 > * -% 5 - * ' $ 6 ' D $ " 8 $ ) 6 $
"8 $ + * ' "% 6 ! -5 ' "! 8 ( ! ) % 5 ) ) $ 8 '
-! * # $ # ) ! N ! ' ?
N 1 ' A ) ! N ! ' N * 6 $ ' ! 1 "E
B $ 6 5 -' A . " 8 / & / & 6 ! - 5 ' , 2
! '$ A
1 D $ 5 6 $ ) # $ ( "8 $ # "8 $ ) 6 $
"8 $ + * ' "% 6 ! -5 ' "! 8 , < P I 3 2 "6
54
* 8 - $ 6 % * -% 5 - * ' $ 6 N : ' D $
"8 $ ) 6 $ "8 $ + * ' "% 6
6J ! - 8 A % ! 8 ( " 5 ) * ' " ! 8 8 5 + N $ )
9 * + E -$ A
( -! * ' . / " 8 / & / , 2
6 ! -5 ' " ! 8 * - 5 $ 6 ( ! ) ' D $
! " 8 '
% ! 8 ( " 5 ) * ' "! 8
IX-22
A P I - APPLICATION PROGRAM INTERFACE
5+ N$)!(
4
58 "8 ' "8 / & 8 5 + & E * 6 6 " &
8 ' 6 , ! "# 2
5 + N $ ) ! ( E * 6 6 " $ 8 '?
"8 ' "8 / & 8 5 + & % ! 8 ( " 6 , ! "# 2 5 + N $ ) ! ( % ! 8 ( " 5 ) * ' "! 8
59
60 "8 ' "8 / & % ! 8 ( " , ! "# 2 > 5 ) ) $ 8 ' B ! N ! ' > ! 8 ( " 5 ) * ' "! 8
5+ N$)
! '$ A
% ! 8 ( " 5 ) * ' "! 8 ) $ ' 5 ) 8
B @ = &
O ." 8 / & ) ! N & # D & * % ' " , ! " # 2
@O L " 8 $ + * ' " % 6
61
B =&
O
.J # D " 8 / & ) ! N & # D & * % ' " , 2
9 * + E -$ A
< % % $ 6 6 '!
O E * )* + $ '$ ) ! ( 'D $
( ") 6 ' ' * % ' " $
! "8 ' A
D ?' D $ ' * 0
D ?#
D ? * 0
D ? * -( *
62 B @ = &
O ." 8 / & ) ! N & # D & E * 6 6 " , ! " # 2
O L "8 $ + * ' "% 6
* % % $ 6 6 '! 'D $
O E * )* + $ '$ )
( ) ! + ' D $ E * 6 6 " $
! "8 ' ?
1 ) * 8 6 ( ! ) + * ' "! 8 ( ) ! + ' D $
! @" 8 ' ' D $ ?
B = &
O .)# D
B @ = &
O ." 8 / & ) ! N & # D & E * 6 6 " , ! " # 2
O "8 $ + * ' "% 6
63
* % % $ 6 6 '! 'D $
O E * )* + $ '$ )
( ) ! + ' D $ E * 6 6 " $
! "8 ' ?
1 ) * 8 6 ( ! ) + * ' "! 8 ( ) ! + ' D $
'D $
! "8 ' ?
B @ = &
O .)# D
( - ! * ' ." 8 / & D ! + $ E ! 6 , ! " # 2 B ! N ! ' < ' ' ) "N 5 ' $ 6 A
64
O ! + $ E ! 6 "' "! 8
65 ( - ! * ' ." 8 / & 6 Q $ & + * 9 , ! " # 2 B ! N ! ' < ' ' ) " N 5 ' $J 6 A
* 9 ! "8 ' K
K ! ( ' Q * ) $ J 8 # 6 Q "' % D
66 ( -! * ' . " 8 / & 6 Q $ & + " 8 , ! " # 2 B ! N ! ' < ' ' ) " N 5 'J $ 6 A
"8 ! "8 ' K
K ! ( ' Q * ) $ J 8 # 6 Q "' % D
67 ( -! * ' . " 8 / & & + * 9 , ! " # 2 B ! N ! ' < ' ' ) "N 5 ' $ 6 A
* 9 ! " 8 ' 3 $ -! % " ' :
( -! * ' . " 8 / & * & + * 9 , ! " # 2 B ! N ! ' < ' ' ) "N 5 ' $ 6 A
68
* 9 ! " 8 ' < % % $ -$ ) * ' " ! 8
( -! * ' . " 8 / & ' & + * 9 , ! " # 2 B ! N ! ' < ' ' ) "N 5 ' $ 6 A
69
* 9 ! "8 ' 1 ! ) / 5 $ 6
% D * ) ." 8 / & ) ! N ! ' 8 * + $ , ! " # 2 B ! N ! ' < ' ' ) "N 5 ' $ 6 A
70
B!N!'8*+ $
71 % D * ) ." 8 / & " 8 & # " ) $ % ' " ! 8 & * % ' " , ! " # 2
J " ) $ % ' " ! 8 ! ( * % ' " $
8 ' ?
9 * + E -$ A H H H H F
B ! N ! ' D * 6
! "8 ' 0
! "8 ' I "8 H I
IX-23
9 A P I - APPLICATION PROGRAM INTERFACE
# ") $ % ' "! 8 0
! "8 ' "6 "8 F I # ") $ % ' "! 8
6L $ $ " 8 / & " 8 & ' : E $ & * % ' " , ! " # 2
72 % D * ) ." 8 / & " 8 & ' : E $ & * % ' " , ! " # 2 J 9" 8 * $ + + E * - $' " % A 6 1 ' : 1 E 1 $ B ! B ( * % ' " $
8 ' ?
B ! N ! ' D * 6
! "8 ' 0
! "8 ' I * ) $
79 % D * ) ." 8 / & " 8 & % * - % , " 8 ' E * 6 6 " &
8 ' & 8 ! 2 K ' ) "8 ( ! ) + * ' D ?
$ E $ 8 # $ 8 % :
( 5 8 % ' "! 8
80 " 8 ' ." 8 / & " 8 & * ' ' * % D & # ! ( , ! " # 2 < ''* % D + $ 8 ' 8 5 + N $ ) (! ) E * 6 6 " $
! "8 ' ?
"8 ' . "8 & * ' ' & # ! (
"8 / & "8 & * ' ' * % D & # ! ( , 2
"8 & * ' ' & # ! ( "6 ' D $ * ' ' * % D + $ 8 '
8M 5 + N $ ) ! ( ' D $ ( " ) 6 ' E * 6 6 " $
! " 8 '
81 ( ) * + $ ." 8 / & " 8 & * % D 6 & 1 & E * 6 6 " , " 8 ' E * 6 6 " &
8 ' & 8 ! 2 8 " $ ) 6 * - > ! ! ) # "8 * ' $ 6
* % % $ 6 6 ' ! ' D $ 1 ) * 8 6 ( ! ) + * ' "! 8
( ) ! + ' D $
! "8 ' ' D $
?
82 ( ) * + $ ." 8 / & " 8 & * % D 6 & 1 & E * 6 6 " , " 8 ' E * 6 6 " &
8 ' & 8 ! 2 8 " $ ) 6 * - > ! ! ) # "8 * ' $ 6
* % % $ 6 6 ' ! ' D $ 1 ) * 8 6 ( ! ) + * ' "! 8
()! + 'D $ 'D $
! "8 ' ?
83 ( ) * + $ ." 8 / & " 8 & 1 & E * 6 6 " , " 8 ' E * 6 6 " &
8 ' & 8 ! 2 1 $ + E ! )* ): ()* + $ 5 6 $ # '!
% * -% 5 - * ' $ ' D $ " 8 $ + * ' " % % D * " 8
84 "8 ' + ! 8 "& + 6 , % D * ) . ( + ' 0 ? ? ? 2 K * $ 6 * + $ 6 6 * $ "8 ' ! ' D $
+ ! 8 " ' ! ) " 8 ( " -$
moni_msg.dat
J 9 * + E -$ A
+ ! 8 "& + 6 , C + 6 # 6 C 0
IX-24
A P I - APPLICATION PROGRAM INTERFACE
J 9 * + E -$
moni_msg.dat
+ $ 6 6 * $ Q "8 # ! Q
93 # ! 5 N -$ . " 8 / & 5 8 " & ' ) * 8 6 & ' ! -& ) * # , ! " # 2
98
1 * ) $ ' -! % * ' " ! 8 0 ) ! N ! ' N * 6 $ ' !
1 "E
Table 3. Dynamics
Nr. Name
of
the
Function
Description
IX-25
9 A P I - APPLICATION PROGRAM INTERFACE
Nr. Name
of
the
Function
Description
IX-26
A P I - APPLICATION PROGRAM INTERFACE
Table 5. Tag
Nr. Name
of
the
Function
Description
IX-27
9 A P I - APPLICATION PROGRAM INTERFACE
Table 6. Collision
Nr. Name
of
the
Function
Description
Table 6. Stop On
Nr. Name
of
the
Function
Description
IX-28