Beruflich Dokumente
Kultur Dokumente
User Manual
User Manual for the RSI Force Control Package for
KUKA Robot Control KR C1, KR C2 and KR C3
Software Version V4.0 and higher
Version:
Date:
1.1
25.1.2005
1
Product Description .......................................................................................................... 4
2
Setup ................................................................................................................................. 6
2.1 Hardware Requirements ................................................................................................... 6
2.2 Software Requirements..................................................................................................... 6
2.3 Installation Procedure ....................................................................................................... 7
2.4 Mounting the Sensor......................................................................................................... 7
2.5 Safety Notes ...................................................................................................................... 8
3
Programming Instructions................................................................................................. 9
3.1 Principle of Force Control ................................................................................................ 9
3.2 Classic Example: Cube on Sloping Plane....................................................................... 11
3.2.1 Pressing (Figure 5)...................................................................................................... 11
3.2.2 Pressing with orientation compensation (Figure 6) .................................................... 12
3.2.3 Pressing towards a joining bevel (Figure 8) ............................................................... 13
3.2.4 Pressing towards a joining bevel with orientation compensation (Figure 9).............. 14
3.3 Configuration Program FTCtrlConfig ............................................................................ 15
3.3.1 Property Sheet Sensor Settings ................................................................................... 17
3.3.2 Property Sheet Force Control...................................................................................... 18
3.3.3 Property Sheet Break Condition ................................................................................. 18
3.3.4 Property Sheet Path Limit........................................................................................... 19
3.3.5 Property Page Controller Tuning ................................................................................ 20
3.4 Integration of Force Control into KRL ........................................................................... 21
3.4.1 Force Control on User Layer (FTCtrlTech)................................................................ 21
3.4.1.1 FTCtrlInit................................................................................................................. 22
3.4.1.2 FTCtrlInitComp ....................................................................................................... 22
3.4.1.3 FTCtrlCalibSens ...................................................................................................... 23
3.4.1.4 FTCtrlOnBreak ........................................................................................................ 23
3.4.1.5 FTCtrlOnCP............................................................................................................. 23
3.4.1.6 FTCtrlOffCP............................................................................................................ 23
3.4.1.7 FTCtrlForce ............................................................................................................. 23
3.4.1.8 FTCtrlTorque........................................................................................................... 23
3.4.1.9 FTCtrlEnable ........................................................................................................... 23
3.4.1.10
FTCtrlBreakTime ................................................................................................. 24
3.4.2 Force Control On Expert Layer .................................................................................. 24
3.4.2.1 RSI Basics................................................................................................................ 24
3.4.2.2 RSI Structure of the Force Control.......................................................................... 24
3.4.2.3 Combination of Technology Package and Expert Programming ............................ 26
3.4.2.4 Motion Programming .............................................................................................. 26
3.4.3 Gravity Compensation ................................................................................................ 27
3.5 Visualization of measurements....................................................................................... 28
3.5.1 RSIMonitor ................................................................................................................. 28
3.5.2 User layer commands for RSIMonitor with FTCtrl.................................................... 29
3.5.2.1 FTCtrlMonitorInit.................................................................................................... 29
3.5.2.2 FTCtrlMonitorStart.................................................................................................. 29
3.5.2.3 FTCtrlMonitorStop.................................................................................................. 29
3.5.3 Network configuration for RSIMonitor ...................................................................... 29
3.5.3.1 RSIMonitor running on robot controller ................................................................. 30
FTCtrl User Manual
-2-
Version 1.1
-3-
Version 1.1
Product Description
The control and programming of robots is usually done by specifying positions (PTP) or trajectories (LIN, CIRC) that the robot shall move to or shall execute. This is basically only possible if the robot has no contact to its environment and thereby the positions can be reached
without collisions. However as soon as the robot has contact to a work piece, a decisive role
befits the contact forces and torques particularly if these forces and torques have an influence
on the process to be carried out. These process forces can not or can only be insufficiently
influenced by conventional mechanisms of robot programming. Therefore tools are often used
that at least can limit the process forces by mechanical compliances. Although there are expensive tools it is still difficult to set the nominal process forces and to keep them during the
complete process. In particular component tolerances and position tolerances also can have a
considerable influence on the process forces.
Force control offers a solution to these problems. The force control extends the KUKA robot
by the ability to control process forces, contact forces and torques at programmable nominal
values. Thereby the force-controlled robot can autonomously move to the position where the
programmable forces are applied to a work piece or tool without programming an explicit
move command (e.g. LIN {}). The appearing contact forces and torques are measured and
processed with a high frequency (every 12 ms). The necessary software is implemented in the
real time core of the robot control. This guarantees a high quality of the force control. It can
correspondingly be reacted very fast to deviations of the required nominal forces or torques.
Some application examples help to clarify the variety of usage possibilities:
Keeping of process forces independently of the parts position and tolerance (sticking,
polishing)
Setting and keeping an accurate-defined force, even if the environment conditions are
changing, for instance due to displacement of sticking material, or due to carry off material by a polishing disk.
-4-
Version 1.1
Besides the flexible, configurable contact force control the FTCtrl-Package offers a series of
safety relevant monitoring functions:
The FTCtrl- package is completely integrated (both hardware and software) into the KUKArobot control. The usage is organized in several layers: A graphical user interface is provided
to enter robot-specific and application dependent characteristic quantities and parameters.
Based on these inputs a configuration file is produced that contains all settings for the forcecontrolled processing step. The actual processing step can be programmed as usual with the
robot programming language KRL whereby a set of selected force/torque KRL-commands are
available. In addition, there is the possibility to program freely the force control on an RSI
expert level.
-5-
Version 1.1
Setup
2.1
Hardware Requirements
One Force-/Torque-Sensor
Force-/Torque-sensors are available for load ranges from few [N] up to several [kN]
and thus a wide application spectrum is covered. More information on request from
Amatec Robotics GmbH.
2.2
Software Requirements
FTCtrl package is based on RSI- Interface. RSI (Robot- Sensor- Interface) is the KUKA
Interface for integration of real-time sensor systems to the robot controller.
-6-
Version 1.1
2.3
Installation Procedure
The force control software will be installed by calling the Setup.exe in root directory of the
installation media. In a dialog window (Figure 1) RSI has to be chosen first when it isnt still
installed in a valid version. If the KR C software is still running when the installer is started a
reboot is necessary to finish installation.
2.4
-7-
Version 1.1
good
bad
robot
flange
robot
flange
sensor
sensor
2.5
Safety Notes
Danger for the robot system and further assets of the user
All safety regulations of a robot system have to be applied without exceptions for a system
with force control [1].
In addition the integration of sensors into the robot system requires an extension of the general safety regulations:
At sensor mode unexpected movements and path corrections may occur if a
KRL program is selected that contains instructions of the FTCtrl package and
the drives are switched on!
At normal robot operating the robot moves exactly on a programmed trajectory (program operating mode) or the robot is controlled by the operator via pressing keys of the operating
panel (Setup mode). In any case the operator can anticipate the behavior of the robot. However if using force control, the robot proceeds due to sensor measurements. Thus the movements of the robot are not in principle foreseeable absolutely, because external and sometimes
unknown factors (e.g. contact forces) influence the robot trajectory.
Unexpected movements can be also caused by:
Wrong controller tuning, this means wrong controller parameters instable controller
-8-
Version 1.1
To avoid risks for body and life no persons are being allowed to stay within the
workspace of a force-controlled robot. This yields also for the T1- mode, since
by the consideration of the sensor data for the computation of the robot trajectory, running the robot with reduced speed is not guaranteed.
The following safety regulations have to be taken care at application of the force control:
Programming Instructions
3.1
The generalized task of force control is to execute a robot motion depending on external
forces and torques acting on the robot tool/work piece. In principle the following cases are
relevant for practical applications:
In analogy for torque control a rotation is carried out into the direction of torque.
-9-
Version 1.1
Practical example: Pressing flatly the underside of a work piece on a pad (sticking,
polishing, grinding)
The torque having an effect on a body always refers to a defined reference point. Thereby a
torque around the reference point leads to rotation around this point. At use of the FTCtrl
package the current TCP is fixed as a reference point automatically. As usual the application
programmer can adjust the reference point of the force control as TCP [2]. He only has to take
care that the measured TCP also is selected during the force-controlled processing step.
For the spatial description of the force acting on the tool in the reference point, the introduction of the control coordinate system is necessary (Figure 3). This force can be divided into
the three components of an orthogonal coordinate system. The force control is done by three
single controllers for the directions of the control coordinate system. In analogy the torque
vector acting on the tool is divided into three components and is feed into three independent
torque controllers. In summary up to six independent controllers can be involved for
force/torque control. The control coordinate system is optionally positioned either in the origin of the tool center point or in a coordinate system with origin at the tool center point but
with same orientation as the base coordinate system.
It is possible to limit degrees of freedom of the sensor motion by switching on or switching
off the individual controllers working in the control coordinate system. If for example only
the controller in X-direction is activated the force control system only reacts on forces in Xdirection with a movement to this direction. If in contrary all six degrees of freedom are active the tool can move to any arbitrary position by the appropriate load. The task of the user is
to determine a proper configuration for his application.
TCP
control coordinate system
- 10 -
Version 1.1
degree of
freedom
for FT
control
programmed
path
3.2
3.2.1
Fx
-
Fz
50
Mz
-
My
-
Mx
-
Motion:
The cube drives into Z- direction as far as its right bottom edge reaches the sloping plane.
Explanation:
After reaching the contact position the nominal force of 50 N is applied and the robot comes
to standstill since the difference between nominal and actual force is controlled to zero.
FTCtrl User Manual
- 11 -
Version 1.1
3.2.2
Fx
-
Fz
50
Mz
-
My
0
Mx
-
Motion:
The cube drives into negative Z-direction. At contact of the right bottom edge the cube rotates
about the Y axis till it is laid up flat.
Explanation:
At the edge a force acts on the cube in normal direction of the plane. This forces leads to a
torque around the control point. Since the nominal value for the torque around Z is zero, the
acting pull-out torque is avoided by rotation around Y.
- 12 -
Version 1.1
base
tool
3.2.3
Fx
0
Fz
50
Mz
-
My
-
Mx
-
Motion:
The cube is moved into negative Z direction. After the right bottom edge touches the plane,
the cube glides down the sloping plane.
- 13 -
Version 1.1
Explanation:
At the edge a force acts on the cube in normal direction of the plane. This force contains a Xcomponent in the control coordinate system. Because the nominal force is zero, the control
evades by moving into negative X-direction.
3.2.4
Fx
0
Fy
-
Fz
50
Mz
-
My
0
Mx
-
- 14 -
Version 1.1
The translation in negative X-direction does not end with the alignment of the cube on the
sloping plane but the cube continues gliding. The desired set values can not be reached with
that arrangement.
3.3
The force control can be flexibly configured for the specific application requirements through
an extensive set of parameters. The Windows program FTCtrlConfig serves for input of these
parameters. It can be started from the KUKA BOF in menu <Monitor> (Figure 10).
- 15 -
Version 1.1
Expert:
Key combination
ALT key + TAB key:
FTCtrl User Manual
Function
Switches the input focus to the next control
Switches back the input focus to the previous control
Switches to the next property sheet
Returns from FTCtrlConfig to BOF (user)
Opens a menu (e.g. ALT + f: file menu)
Closes an open menu
Function
Changes to arbitrary application
- 16 -
Version 1.1
3.3.1
Setting Arrangement:
Describes the assembly of the sensor regarding the robot. The position and orientation of the
sensor coordinate system are specified with respect to the flange coordinate system. The rotations are specified by Euler angles in ZYX-representation.
Setting Maximum Load:
In order to protect the sensor from overload and therefore from damage, the admissible measuring range of the sensor has to be defined. Thereby the maximum values to be entered refer
to the sensor coordinate system and not to the control coordinate system. If the maximum load
is exceeded a confirmation message pops up. The movement of the robot and the execution of
the KRL program will be stopped. After confirmation the robot motion can be continued provided that the measuring values are again in the admissible region. The monitoring also works
if the force control is not active, but only in the program region between ST_ON and
ST_OFF. See also [3].
- 17 -
Version 1.1
3.3.2
3.3.3
- 18 -
Version 1.1
tolerance interval, the so-called break condition is fulfilled and the control goal is reached.
The control process will be ended.
Setting Timer: Waiting Time
With the first fulfillment of the break condition a timer is started. After expiry of the predefined time interval the break signal is set.
Setting Timer: Max. Time:
If the sensor motion is not finished within the maximum time the break signal will be set also.
3.3.4
It is possible to limit the maximum travel distance of the force control in all directions of the
control coordinate system. In case of overstepping, the break signal is fired. The path that is
moved due to a superimposed CP movement, remains unconsidered at the monitoring.
- 19 -
Version 1.1
3.3.5
- 20 -
Version 1.1
3.4
RSI is the basis of the FTCtrl software. It is the software interface for the sensor integration
into the KRC. The functionality of the force control may be used via the KRL on two different levels depending on knowledge stand of the user.
Technology Package FTCtrl (User):
Via menu items inline-forms for the FTCtrl-instructions are. Thereby a quick integration of
force control is possible without having detailed knowledge. Mostly all force control applications can be programmed on this level.
RSI Programming FTCtrl (Expert):
Programming on base of the RSI interface. Also applications that exceed the standard application case can be programmed with the necessary expert knowledge.
In principle it is possible to combine both methods. It can absolutely make sense to extend a
base application programmed with technology package functions by RSI programming if necessary.
3.4.1
Menu <Technology> contains the technology package <FTCtrl Tech> after installation of
FTCtrl.
- 21 -
Version 1.1
3.4.1.1
FTCtrlInit
Initializes the force control. Can be called multiple times in the KRL program if a new Initfile has to be read. At calling time the sensor will be offset-compensated. For that reason the
robot must be in the start position of the force control. No outer forces and torques must act
on the tool yet, because otherwise these are added to the static force/moment parts (sensor
offset, mass of the tool). However these forces/torques shall just be eliminated by the compensation.
Input field Initfile:
List field Sensor:
3.4.1.2
FTCtrlInitComp
The force control is initialized with dynamic forces due to gravity (see also 3.4.3). Therefore
details on the load are necessary:
FTCtrl User Manual
- 22 -
Version 1.1
3.4.1.3
FTCtrlCalibSens
3.4.1.4
FTCtrlOnBreak
Executes a pure sensor-guide movement. This is ended either by satisfying the break conditions or by occurring of a path or time transgression.
3.4.1.5
FTCtrlOnCP
Activates force control. The following CP movements of the KRL program are executed with
superimposed force control.
3.4.1.6
FTCtrlOffCP
3.4.1.7
FTCtrlForce
3.4.1.8
FTCtrlTorque
3.4.1.9
FTCtrlEnable
- 23 -
Version 1.1
3.4.1.10
FTCtrlBreakTime
Sets the timer value. If a break condition is fulfilled the timer started. After its expiry an "OnBreak" movement is ended;
List field Time:
3.4.2
3.4.2.1
RSI Basics
The functional operating of the FTCtrl Tech Software is connected closely to the RSI. A
deeper understanding requires a certain knowledge of this interface for the sensor integration.
RSI enables to create a structure of objects from the KRL environment that are connected
with each other through a signal bus. These RSI objects are evaluated in parallel to the execution of the KRL program in the order defined by the signal flow in real time. New RSI objects
can be added to the per default available objects by so-called RSI drivers. Thereby the system
is arbitrarily expandable.
At creation a handle is assigned to the object. With this handle the object can be referenced in
the remaining KRL program.
A detailed explanation can be found in the RSI-documentation [3].
The force control requires a RSI-driver for the F/T Sensor ( ATI, JR3 or DLR) as well as the
driver for the force control. These are automatically loaded after installation and therefore the
programmer can apply these objects in his KRL program.
3.4.2.2
The basic structure of the force control is quite simple (Figure 18)
Fx
Fy
DLRSENS
Fz
Mz
FTCTRL
My
Mx
- 24 -
Version 1.1
;Declarations
INT HSens, HFT
;Variables for storing handles of RSI-objects
CHAR StrIniFile[2];Variable for storing configuration file name
DECL RSIERR err
;Variable for storing return value
DECL FTCSTAT reas ;Variable for storing break reason of sensor motion
...
;Create a DLRSENS object
err=ST_DLRSENS(HSens,0)
;Assigning the configuration file name
StrIniFile[]=inifile.ftc
;Create a FTCTRL object. Connect inputs with
;outputs of DLRSENS object
err=ST_FTCTRL(HFT,0,HSens,1,HSens,2,HSens,3,HSens,4,HSens,5,HS
ens,6,RSIBREAK,StrIniFile[])
...
;Switching on sensor data processing (RSI command)
err=ST_ON()
;Sensor-guided motion (RSI command)
ST_SKIPSENS()
;Query break reason
err=ST_FTCTRL_GETBREAKREASON(HFT,reas)
...
;-------------------------------------------------------------------------------------------------Explanations to creation of FTCtrl object:
1. The parameters1-14 of ST_FTCTRL serve for the integration in RSI (Handle, Container,
signal connection).
2. Parameter 15 of ST_FTCTRL defines the index of a digital output. This output is set by the
object if a break condition of the sensor motion is fulfilled.
3. Parameter 16 of ST_FTCTRL defines the initialization file of the object. It contains the
parameters of the objects key functionalities.
- 25 -
Version 1.1
4. Via the outputs 1-6 of the FTCTRL object one gets the load that is transformed into the
control coordinate system. An additional functionality can be realized by connecting further signal processing RSI objects. Example: User-defined break condition.
5. Via output 7 one gets the status of the force control.
1.Bit
2.Bit
3.Bit
4.Bit
5.Bit
6.Bit
3.4.2.3
The FTCtrlTech instructions simplify the usage by encapsulating the real RSI instructions into
folders. For instance the sensor object and the FTCtrl object are created and connected together by technology instruction Init. Input is simplified by using inline forms.
To access the RSI objects created with FTCtrlTech (e.g. to set new parameter values), one
uses the global variables that are defined in file rsiLib.dat:
INT
INT
INT
INT
FTCtrlHFT
FTCtrlHSens
FTCtrlHFT
FTCtrlContainer
3.4.2.4
Motion Programming
It is relatively circumstantial to stop the robot movement in KRL [4]. According to the user
friendliness RSI encapsulates the stopping mechanism. Special RSI motion instructions carry
out movements that can be stopped by setting a defined output ($OUT[RSIBREAK]) [3].
The force control sets the RSI break output if one of the following three conditions is fulfilled:
Break condition
Path limit violation
Time limit violation
In case of a RSI-movement and if the force control sets the RSI break output, the movement
will be interrupted.
If the reason for the break shall be subsequently used in further KRL program, the global
variable FTCtrlBreak can be used.
FTCtrl User Manual
- 26 -
Version 1.1
3.4.3
Gravity Compensation
In principle the F/T Sensor measures the resultant of external force acting on the tool and the
force due to its gravity. Since the control shall only relate to the contact forces there is a necessity to compensate the gravity.
If the orientation of the sensor does not change during the force control, then a compensation
is possible by simple calibration of the sensor. For that purpose the corresponding function of
its RSI object is called (Table 3) for the sensor at load free tool in the desired orientation
FTC Compliance
JR3 F/T Sensor
ATI Sensor
ST_FTCSENS_CALIB(ObjID)
ST_JR3SENS_CALIB(ObjID)
ST_ATISENS_CALIB(ObjID)
DLRSENS
Fx Mess
Fx Komp
Fy Mess
Fy Komp
Fz Mess
Mz Mess
FTCOMP
Fz Komp
Mz Komp
My Mess
My Komp
Mx Mess
Mx Komp
FTCTRL
Figure 19: RSI structure of the force control with gravity compensation
Usage of the FTCOMP-object requires accurate details on the load at the sensor:
While the orientation of the sensor should be known from the assembly, the tools weight and
center of mass are frequently not given. The KRL utility program RSIFTLoadDetermination allows the determination of the required data by measuring the sensor for certain orientations. Note that the orientation of the sensor coordinate system has been entered with respect to the flange coordinate system also for this KRL program.
- 27 -
Version 1.1
3.5
3.5.1
Visualization of measurements
RSIMonitor
A useful functionality is the visualization of forces and torques. Windows program RSIMonitor supports to show RSI- signals in a scrollchart diagram. It can be started from KUKABOF in menu <Monitor> (Figure 20). Monitor receives data from the real-time part of the
controller via TCP/IP. So the monitor program is able to run on any computer in a network
area with the controller.
- 28 -
Version 1.1
3.5.2
3.5.2.1
FTCtrlMonitorInit
3.5.2.2
FTCtrlMonitorStart
3.5.2.3
FTCtrlMonitorStop
3.5.3
The robot controller is based on the two operating systems VxWorks (Real-time kernel) and
Windows (GUI) sharing the same hardware. Sensor data acquisition in real-time requires to
transfer data via a TCP/IP network to the Windows based RSIMonitor program. The different
kinds of network configurations are explained in the following.
- 29 -
Version 1.1
Windows
Router
IP see Windows
Network properties
IP: 192.0.1.2
Shared Memory
MFC Network Card
IP: 192.0.1.1
Visualisation PC
IP see entry
in VxWin.ini
VxWorks
Robot Controller
3.5.3.1
The network connection between VxWorks and Windows on the robot controller is configured by default. The target IP- address to send sensor data to Windows is 192.0.1.2. It is
no further configuration necessary for running the RSIMonitor program on the robot controller itself.
3.5.3.2
3.5.3.2.1
For a direct connection from VxWorks to an external computer the network card integrated on
the MFC- card can be used. For this configuration the boot sequence in file
C:\Windows\Vxwin.ini has to be changed (s. Figure 23). With selection of the predefined line for MFC or MFC2 and with setting up parameter e to a IP- address for VxWorks
the network card is available for the real-time OS. Network setup is accomplished by establishing a physical connection between MFC network card and the target computer for example with a Cross Connect cable.
- 30 -
Version 1.1
3.5.3.2.2
Router connection
When using the MFC network card for a Windows network there is a way to send data first
from real-time kernel to Windows (IP: 192.0.1.2) and after that route data with a special router software to a target computer. In difference to a direct connection (3.5.3.2.1) no
more further network card is required to integrate both VxWorks and Windows on the robot
controller into a TCP/IP network.
The program router.exe is installed in C:\KRC\TP\FTCtrl\Util. If necessary it
should start automatically on booting with the Windows Autostart feature. When the main
window is minimized it can be opened with a double click on its symbol in the right part of
the Windows taskbar (left to the clock).
For the robot controller Windows OS a route has to be defined where TCP/IP packages
should be transferred to. This is done in the context menu of the node <localhost> with
the command Insert a new route (s. Figure 24).
- 31 -
Version 1.1
In a dialog window (Figure 25) the port and the target IP address is entered.
3.5.3.3
The real-time part of RSIMonitor still send the sensor data to the robot controller
Windows OS (IP: 192.0.1.2). That is set in the Inline form to initialize the RSIMonitor in the KRL code (s. 3.5.2.1)
The TCP/IP port set in the inline form, in the router program and in the RSIMonitor itself has to correspond.
The IP address has to be valid. Please take care that there are no IP address conflicts by using the same address for different devices.
Functionality of RSIMonitor
- 32 -
Version 1.1
4
4.1
Appendix
Abbreviations
KRL:
TCP:
CP Motion:
KCP:
BOF:
MFC:
OS:
4.2
[1]
[2]
[3]
[4]
[5]
4.3
References
Seminar Manual: Basics of Robot Programming, Introduction, Safety, chapter 3, KUKA
Roboter GmbH
Seminar Manual: Basics of Robot Programming, Setup, chapter3, Security, KUKA Roboter GmbH
Documentation Robot Sensor Interface (RSI), KUKA Roboter GmbH
Seminar Manual: Advanced Robot Programming, Programming, chapter.3.9.4,
Breaking Interrupt- Procedures
FTCtrl KRL- Command Reference, Amatec Robotics GmbH
Utility Programs
RSIFTLoadDetermination:
Determination of load data with F/T Sensor.
- 33 -
Version 1.1