The Initialization File for the Fast Research Interface Library
The constructor of the class FastResearchInterface requires the specification of an initialization file. This initialization file contains basic parameters to set-up the features provided by the Fast Research Interface Library. A sample file may be seen here:
# Initialization file for the KUKA Fast Research Interface of the Light-Weight Robot IV
[RobotName]
Name=980039
[Priorities]
#Priority range: 1..63
KRCCommunicationThread=60
TimerThread=55
MainThread=50
OutputConsoleThread=5
[ControlValues]
# Cycle time in seconds
CycleTime=0.002
[Logging]
NumberOfLoggingFileEntries=60000
LoggingPath=/home/lwrcontrol/output
LoggingFileName=LWR-Scope.dat
Note line 15 (CycleTime), which defines the control sample time (here: 2 milliseconds).
Description of all parameters of the initialization file
-
Section RobotName
-
Name: A string that contains the robot name (to enable the simultaneous usage of multiple robot arms)
-
Section Priorities
-
KRCCommunicationThread: The priority of the thread communicating with the KRC unit via a UDP socket connection (see also FastResearchInterface::KRCCommunicationThreadMain()). It is recommended to use a high (or even the highest) priority for this thread as it is of major importance to immediately respond to received messages. This may minimize the latency and the jitter of the UDP communication channel between the KRC unit and the remote host.
-
TimerThread: As the timing quality of the VxWorks platform is not necessarily sufficient, users can (optionally) use this local timer for their control algorithms. The timer is managed by this thread, which provides the timer service via a simple condition variable (see also FastResearchInterface::TimerThreadMain() and FastResearchInterface::WaitForTimerTick()).
-
MainThread: This priority is assigned to the thread that calls the constructor of the class FastResearchInterface.
-
OutputConsoleThread: In order to enable error (and debug) information output (e.g., to
stdout), the class Console is used. An object of this class contains an output thread (Console::ConsoleThreadMain()) that is supposed to run at a low priority.
-
Section ControlValues
-
CycleTime: The communication cycle time in seconds. This value has to be the same as used by the KRL function call of
friStart() (cf. KRL File: FRIControl.src). The KRC unit sends messages to the remote host in isochronous time intervals whose width is specified by this value.
-
Section Logging
- See also:
- InitializationFileEntry