Kuka LBR iiwa Primary Multi Mode Driver, supports communication over FRI and JAVA interfaces. More...
#include <KukaDriver.hpp>
Public Types | |
enum | ParamIndex { RobotName, RobotModel, LocalUDPAddress, LocalUDPPort, RemoteUDPAddress, LocalHostKukaKoniUDPAddress, LocalHostKukaKoniUDPPort, RemoteHostKukaKoniUDPAddress, RemoteHostKukaKoniUDPPort, KukaCommandMode, KukaMonitorMode } |
typedef std::tuple< std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string > | Params |
Public Member Functions | |
void | construct () |
void | construct (Params params) |
bool | destruct () |
KukaState::time_point_type | get (time_point_tag) |
Get the timestamp of the most recent armState. More... | |
template<typename OutputIterator > | |
void | get (OutputIterator output, grl::revolute_joint_angle_open_chain_state_tag) |
template<typename OutputIterator > | |
void | get (OutputIterator output, grl::revolute_joint_torque_open_chain_state_tag) |
template<typename OutputIterator > | |
void | get (OutputIterator output, grl::revolute_joint_torque_external_open_chain_state_tag) |
template<typename OutputIterator > | |
void | get (OutputIterator output, grl::cartesian_external_force_tag) |
const Params & | getParams () |
template<typename OutputIterator > | |
void | getWrench (OutputIterator output) |
KukaDriver (Params params=defaultParams()) | |
bool | run_one () |
void | set (const flatbuffer::ArmState &armControlMode) |
template<typename Range > | |
void | set (Range &&range, grl::revolute_joint_angle_open_chain_command_tag) |
Set the joint positions for the current interpolation step. More... | |
template<typename Range > | |
void | set (Range &&range, grl::revolute_joint_torque_open_chain_command_tag) |
Set the applied joint torques for the current interpolation step. More... | |
void | set (double duration_to_goal_command, time_duration_command_tag tag) |
Set the time duration expected between new position commands in ms. More... | |
template<typename Range > | |
void | set (Range &&range, grl::cartesian_wrench_command_tag) |
Set the applied wrench vector of the current interpolation step. More... | |
~KukaDriver () | |
Static Public Member Functions | |
static const Params | defaultParams () |
Public Attributes | |
boost::asio::io_service | device_driver_io_service |
std::unique_ptr< boost::asio::io_service::work > | device_driver_workP_ |
std::unique_ptr< std::thread > | driver_threadP |
volatile std::size_t | m_attemptedCommunicationConsecutiveFailureCount = 0 |
volatile std::size_t | m_attemptedCommunicationConsecutiveSuccessCount = 0 |
volatile std::size_t | m_attemptedCommunicationCount = 0 |
volatile std::size_t | m_haveReceivedRealDataCount = 0 |
Kuka LBR iiwa Primary Multi Mode Driver, supports communication over FRI and JAVA interfaces.
The most effective configuration of this driver is to command the KUKA in JAVA mode and receive robot status updates via FRI mode.
Definition at line 41 of file KukaDriver.hpp.
typedef std::tuple< std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string, std::string > grl::robot::arm::KukaDriver::Params |
Definition at line 70 of file KukaDriver.hpp.
Definition at line 44 of file KukaDriver.hpp.
|
inline |
Definition at line 90 of file KukaDriver.hpp.
|
inline |
Definition at line 158 of file KukaDriver.hpp.
|
inline |
Definition at line 94 of file KukaDriver.hpp.
|
inline |
Definition at line 101 of file KukaDriver.hpp.
|
inlinestatic |
Definition at line 73 of file KukaDriver.hpp.
|
inline |
Definition at line 96 of file KukaDriver.hpp.
|
inline |
Get the timestamp of the most recent armState.
Definition at line 327 of file KukaDriver.hpp.
|
inline |
Definition at line 362 of file KukaDriver.hpp.
|
inline |
Definition at line 370 of file KukaDriver.hpp.
|
inline |
Definition at line 378 of file KukaDriver.hpp.
|
inline |
Definition at line 386 of file KukaDriver.hpp.
|
inline |
Definition at line 154 of file KukaDriver.hpp.
|
inline |
Definition at line 394 of file KukaDriver.hpp.
|
inline |
spin once
Definition at line 171 of file KukaDriver.hpp.
|
inline |
set the mode of the arm. Examples: Teach or MoveArmJointServo
Definition at line 246 of file KukaDriver.hpp.
|
inline |
Set the joint positions for the current interpolation step.
This method is only effective when the client is in a commanding state.
state | Object which stores the current state of the robot, including the command to send next |
range | Array with the new joint positions (in radians) |
tag | identifier object indicating that revolute joint angle commands should be modified |
Definition at line 263 of file KukaDriver.hpp.
|
inline |
Set the applied joint torques for the current interpolation step.
This method is only effective when the client is in a commanding state. The ControlMode of the robot has to be joint impedance control mode. The Client Command Mode has to be torque.
state | Object which stores the current state of the robot, including the command to send next |
torques | Array with the applied torque values (in Nm) |
tag | identifier object indicating that the torqe value command should be modified |
Definition at line 284 of file KukaDriver.hpp.
|
inline |
Set the time duration expected between new position commands in ms.
The driver will likely be updated every so often, such as every 25ms, and the lowest level of the driver may update even more frequently, such as every 1ms. By providing as accurate an estimate between high level updates the low level driver can smooth out the motion through interpolation (the default), or another algorithm. See LowLevelStepAlgorithmType template parameter in the KukaFRIdriver class if you want to change out the low level algorithm.
duration_to_goal_command | std::chrono time format representing the time duration between updates |
Definition at line 305 of file KukaDriver.hpp.
|
inline |
Set the applied wrench vector of the current interpolation step.
The wrench vector consists of: [F_x, F_y, F_z, tau_A, tau_B, tau_C]
F ... forces (in N) applied along the Cartesian axes of the currently used motion center. tau ... torques (in Nm) applied along the orientation angles (Euler angles A, B, C) of the currently used motion center.
This method is only effective when the client is in a commanding state. The ControlMode of the robot has to be Cartesian impedance control mode. The Client Command Mode has to be wrench.
state | object storing the command data that will be sent to the physical device |
range | wrench Applied Cartesian wrench vector, in x, y, z, roll, pitch, yaw force measurments. |
tag | identifier object indicating that the wrench value command should be modified |
Definition at line 354 of file KukaDriver.hpp.
boost::asio::io_service grl::robot::arm::KukaDriver::device_driver_io_service |
Definition at line 406 of file KukaDriver.hpp.
std::unique_ptr<boost::asio::io_service::work> grl::robot::arm::KukaDriver::device_driver_workP_ |
Definition at line 407 of file KukaDriver.hpp.
std::unique_ptr<std::thread> grl::robot::arm::KukaDriver::driver_threadP |
Definition at line 408 of file KukaDriver.hpp.
volatile std::size_t grl::robot::arm::KukaDriver::m_attemptedCommunicationConsecutiveFailureCount = 0 |
Definition at line 403 of file KukaDriver.hpp.
volatile std::size_t grl::robot::arm::KukaDriver::m_attemptedCommunicationConsecutiveSuccessCount = 0 |
Definition at line 404 of file KukaDriver.hpp.
volatile std::size_t grl::robot::arm::KukaDriver::m_attemptedCommunicationCount = 0 |
Definition at line 402 of file KukaDriver.hpp.
volatile std::size_t grl::robot::arm::KukaDriver::m_haveReceivedRealDataCount = 0 |
Definition at line 401 of file KukaDriver.hpp.