Добавлена реализация контроллера, для работы с физическим роботом
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
/**
|
||||
|
||||
The following license terms and conditions apply, unless a redistribution
|
||||
agreement or other license is obtained by KUKA Deutschland GmbH, Augsburg, Germany.
|
||||
|
||||
SCOPE
|
||||
|
||||
The software “KUKA Sunrise.Connectivity FRI Client SDK” is targeted to work in
|
||||
conjunction with the “KUKA Sunrise.Connectivity FastRobotInterface” toolkit.
|
||||
In the following, the term “software” refers to all material directly
|
||||
belonging to the provided SDK “Software development kit”, particularly source
|
||||
code, libraries, binaries, manuals and technical documentation.
|
||||
|
||||
COPYRIGHT
|
||||
|
||||
All Rights Reserved
|
||||
Copyright (C) 2014-2018
|
||||
KUKA Deutschland GmbH
|
||||
Augsburg, Germany
|
||||
|
||||
LICENSE
|
||||
|
||||
Redistribution and use of the software in source and binary forms, with or
|
||||
without modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
a) The software is used in conjunction with KUKA products only.
|
||||
b) Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the disclaimer.
|
||||
c) Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the disclaimer in the documentation and/or other
|
||||
materials provided with the distribution. Altered source code of the
|
||||
redistribution must be made available upon request with the distribution.
|
||||
d) Modification and contributions to the original software provided by KUKA
|
||||
must be clearly marked and the authorship must be stated.
|
||||
e) Neither the name of KUKA nor the trademarks owned by KUKA may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
DISCLAIMER OF WARRANTY
|
||||
|
||||
The Software is provided "AS IS" and "WITH ALL FAULTS," without warranty of
|
||||
any kind, including without limitation the warranties of merchantability,
|
||||
fitness for a particular purpose and non-infringement.
|
||||
KUKA makes no warranty that the Software is free of defects or is suitable for
|
||||
any particular purpose. In no event shall KUKA be responsible for loss or
|
||||
damages arising from the installation or use of the Software, including but
|
||||
not limited to any indirect, punitive, special, incidental or consequential
|
||||
damages of any character including, without limitation, damages for loss of
|
||||
goodwill, work stoppage, computer failure or malfunction, or any and all other
|
||||
commercial damages or losses.
|
||||
The entire risk to the quality and performance of the Software is not borne by
|
||||
KUKA. Should the Software prove defective, KUKA is not liable for the entire
|
||||
cost of any service and repair.
|
||||
|
||||
|
||||
|
||||
\file
|
||||
\version {1.16}
|
||||
*/
|
||||
|
||||
#ifndef _KUKA_FRI_CLIENT_APPLICATION_H
|
||||
#define _KUKA_FRI_CLIENT_APPLICATION_H
|
||||
|
||||
/** Kuka namespace */
|
||||
namespace KUKA
|
||||
{
|
||||
/** Fast Robot Interface (FRI) namespace */
|
||||
namespace FRI
|
||||
{
|
||||
|
||||
// forward declarations
|
||||
class IClient;
|
||||
class TransformationClient;
|
||||
class IConnection;
|
||||
struct ClientData;
|
||||
|
||||
/**
|
||||
* \brief FRI client application class.
|
||||
*
|
||||
* A client application takes an instance of the IConnection interface and
|
||||
* an instance of an IClient interface to provide the functionality
|
||||
* needed to set up an FRI client application. It can be used to easily
|
||||
* integrate the FRI client code within other applications.
|
||||
* The algorithmic functionality of an FRI client application is implemented
|
||||
* using the IClient interface.
|
||||
*/
|
||||
class ClientApplication
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* \brief Constructor without transformation client.
|
||||
*
|
||||
* This constructor takes an instance of the IConnection interface and
|
||||
* an instance of the IClient interface as parameters.
|
||||
* @param connection FRI connection class
|
||||
* @param client FRI client class
|
||||
*/
|
||||
ClientApplication(IConnection& connection, IClient& client);
|
||||
|
||||
/**
|
||||
* \brief Constructor with transformation client.
|
||||
*
|
||||
* This constructor takes an instance of the IConnection interface and
|
||||
* an instance of the IClient interface and an instance of a
|
||||
* TransformationClient as parameters.
|
||||
* @param connection FRI connection class
|
||||
* @param client FRI client class
|
||||
* @param trafoClient FRI transformation client class
|
||||
*/
|
||||
ClientApplication(IConnection& connection, IClient& client, TransformationClient& trafoClient);
|
||||
|
||||
/** \brief Destructor. */
|
||||
~ClientApplication();
|
||||
|
||||
/**
|
||||
* \brief Connect the FRI client application with a KUKA Sunrise controller.
|
||||
*
|
||||
* @param port The port ID
|
||||
* @param remoteHost The address of the remote host
|
||||
* @return True if connection was established
|
||||
*/
|
||||
bool connect(int port, const char *remoteHost = NULL);
|
||||
|
||||
/**
|
||||
* \brief Disconnect the FRI client application from a KUKA Sunrise controller.
|
||||
*/
|
||||
void disconnect();
|
||||
|
||||
/**
|
||||
* \brief Run a single processing step.
|
||||
*
|
||||
* The processing step consists of receiving a new FRI monitoring message,
|
||||
* calling the corresponding client callback and sending the resulting
|
||||
* FRI command message back to the KUKA Sunrise controller.
|
||||
* @return True if all of the substeps succeeded.
|
||||
*/
|
||||
bool step();
|
||||
|
||||
protected:
|
||||
|
||||
IConnection& _connection; //!< connection interface
|
||||
IClient* _robotClient; //!< robot client interface
|
||||
TransformationClient* _trafoClient; //!< transformation client interface
|
||||
ClientData* _data; //!< client data structure (for internal use)
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif // _KUKA_FRI_CLIENT_APPLICATION_H
|
||||
|
||||
Reference in New Issue
Block a user