Public Member Functions | List of all members
grl::robot::arm::LinearInterpolation Struct Reference

Default LowLevelStepAlgorithmType This algorithm is designed to be changed out. More...

#include <KukaFRIdriver.hpp>

+ Collaboration diagram for grl::robot::arm::LinearInterpolation:

Public Member Functions

bool hasCommandData ()
 
 LinearInterpolation ()
 
 LinearInterpolation (const KukaState &armState_)
 
template<typename ArmDataType , typename CommandModeType >
void operator() (ArmDataType &, CommandModeType &)
 
template<typename ArmData >
void operator() (ArmData &friData, revolute_joint_angle_open_chain_command_tag)
 
template<typename ArmData >
void operator() (ArmData &friData, revolute_joint_torque_open_chain_command_tag)
 
template<typename ArmData >
void operator() (ArmData &friData, cartesian_wrench_command_tag)
 

Detailed Description

Default LowLevelStepAlgorithmType This algorithm is designed to be changed out.

Todo:
Generalize this class using C++ techinques "tag dispatching" and "type traits". See boost.geometry access and coorinate_type classes for examples

Definition at line 84 of file KukaFRIdriver.hpp.

Constructor & Destructor Documentation

§ LinearInterpolation() [1/2]

grl::robot::arm::LinearInterpolation::LinearInterpolation ( )
inline

Default constructor

Todo:
verify this doesn't corrupt the state of the system

Definition at line 88 of file KukaFRIdriver.hpp.

§ LinearInterpolation() [2/2]

grl::robot::arm::LinearInterpolation::LinearInterpolation ( const KukaState armState_)
inline

Definition at line 90 of file KukaFRIdriver.hpp.

Member Function Documentation

§ hasCommandData()

bool grl::robot::arm::LinearInterpolation::hasCommandData ( )
inline
Todo:
make this accessible via a nonmember function
Todo:
check if duration remaining should be greater than zero or greater than the last tick size

Definition at line 237 of file KukaFRIdriver.hpp.

§ operator()() [1/4]

template<typename ArmDataType , typename CommandModeType >
void grl::robot::arm::LinearInterpolation::operator() ( ArmDataType &  ,
CommandModeType &   
)
inline

Definition at line 99 of file KukaFRIdriver.hpp.

§ operator()() [2/4]

template<typename ArmData >
void grl::robot::arm::LinearInterpolation::operator() ( ArmData &  friData,
revolute_joint_angle_open_chain_command_tag   
)
inline
Bug:
motion interpolation and scaling doesn't seem to move in quite the right way, it is much slower and doesn't go to the right place.
Todo:
maybe this should be the revolute_joint_angle_interpolated_open_chain_state_tag()?
See also
kukaFRIalgorithm.hpp
Todo:
correctly pass velocity limits from outside, use "copy" fuction in Kuka.hpp, correctly account for differing robot models. This should be in KukaFRIdriver at the end of this file.

Definition at line 106 of file KukaFRIdriver.hpp.

§ operator()() [3/4]

template<typename ArmData >
void grl::robot::arm::LinearInterpolation::operator() ( ArmData &  friData,
revolute_joint_torque_open_chain_command_tag   
)
inline
Todo:
look in FRI_Client_SDK_Cpp.zip to see if position must be set for joint torques. Ref files: LBRTorqueSineOverlayClient.cpp, LBRTorqueSineOverlayClient.h, friLBRCommand.cpp, friLBRCommand.h
Note
encode() needs to be updated for each additional supported command type

Definition at line 211 of file KukaFRIdriver.hpp.

§ operator()() [4/4]

template<typename ArmData >
void grl::robot::arm::LinearInterpolation::operator() ( ArmData &  friData,
cartesian_wrench_command_tag   
)
inline
Todo:
look in FRI_Client_SDK_Cpp.zip to see if position must be set for cartesian wrench. Ref files: LBRWrenchSineOverlayClient.cpp, LBRWrenchSineOverlayClient.h, friLBRCommand.cpp, friLBRCommand.h

Definition at line 227 of file KukaFRIdriver.hpp.


The documentation for this struct was generated from the following file: