Flexiv RDK APIs  2.1
Functions
utility.hpp File Reference
#include "data.hpp"
#include <Eigen/Eigen>
#include <algorithm>
#include <sstream>
Include dependency graph for utility.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool flexiv::rdk::utility::IsSingleArmGroup (JointGroup group)
 Whether the specified group represents a single arm.
 
bool flexiv::rdk::utility::PrimitiveStateTrue (const PrimitiveStates &primitive_states, const std::string &state_name)
 Check whether one primitive state is true. More...
 
bool flexiv::rdk::utility::PrimitiveStateTrueForGroups (const std::map< JointGroup, PrimitiveStates > &primitive_states, const std::string &state_name)
 Check whether one primitive state is true for all groups included in [primitive_states]. More...
 
bool flexiv::rdk::utility::PrimitiveStateTrueForGroups (const std::map< JointGroup, PrimitiveStates > &primitive_states, const std::map< JointGroup, std::string > &state_names)
 Check whether one primitive state is true for each group included in [primitive_states], using a per-group state name. More...
 
std::array< double, 3 > flexiv::rdk::utility::Quat2EulerZYX (const std::array< double, 4 > &quat)
 Convert quaternion to Euler angles with ZYX axis rotations. More...
 
double flexiv::rdk::utility::Rad2Deg (double rad)
 Convert radians to degrees for a single value.
 
template<size_t N>
std::array< double, N > flexiv::rdk::utility::Rad2Deg (const std::array< double, N > &rad_arr)
 Convert radians to degrees for an array.
 
std::vector< double > flexiv::rdk::utility::Rad2Deg (const std::vector< double > &rad_vec)
 Convert radians to degrees for a vector.
 
template<typename T >
std::string flexiv::rdk::utility::Vec2Str (const std::vector< T > &vec, size_t decimal=3, const std::string &separator=" ")
 Convert an std::vector to a string. More...
 
template<typename T , size_t N>
std::string flexiv::rdk::utility::Arr2Str (const std::array< T, N > &arr, size_t decimal=3, const std::string &separator=" ")
 Convert an std::array to a string. More...
 
std::string flexiv::rdk::utility::FlexivTypes2Str (const rdk::FlexivDataTypes &variant, size_t decimal=3, const std::string &separator=" ")
 Convert the commonly used std::variant to a string. More...
 
bool flexiv::rdk::utility::ProgramArgsExistAny (int argc, char **argv, const std::vector< std::string > &ref_strings)
 Check if any provided strings exist in the program arguments. More...
 
bool flexiv::rdk::utility::ProgramArgsExist (int argc, char **argv, const std::string &ref_strings)
 Check if one specific string exists in the program arguments. More...
 

Detailed Description

Definition in file utility.hpp.

Function Documentation

◆ Arr2Str()

template<typename T , size_t N>
std::string flexiv::rdk::utility::Arr2Str ( const std::array< T, N > &  arr,
size_t  decimal = 3,
const std::string &  separator = " " 
)
inline

Convert an std::array to a string.

Parameters
[in]arrstd::array of any type and size.
[in]decimalDecimal places to keep for each floating-point number in the array.
[in]separatorCharacter to separate between numbers.
Returns
The converted string.
Examples
basics1_display_robot_states.cpp, basics5_zero_force_torque_sensors.cpp, intermediate5_realtime_cartesian_pure_motion_control.cpp, intermediate6_realtime_cartesian_motion_force_control.cpp, and intermediate7_robot_dynamics.cpp.

Definition at line 162 of file utility.hpp.

◆ FlexivTypes2Str()

std::string flexiv::rdk::utility::FlexivTypes2Str ( const rdk::FlexivDataTypes variant,
size_t  decimal = 3,
const std::string &  separator = " " 
)
inline

Convert the commonly used std::variant to a string.

Parameters
[in]variantstd::variant used by multiple rdk::Robot functions.
[in]decimalDecimal places to keep for each floating-point number in the variant.
[in]separatorCharacter to separate between numbers in the vector.
Returns
The converted string.
Examples
basics3_primitive_execution.cpp, and basics8_global_variables.cpp.

Definition at line 177 of file utility.hpp.

◆ PrimitiveStateTrue()

bool flexiv::rdk::utility::PrimitiveStateTrue ( const PrimitiveStates primitive_states,
const std::string &  state_name 
)
inline

Check whether one primitive state is true.

Parameters
[in]primitive_statesPrimitive states.
[in]state_namePrimitive state name to check, e.g. "reachedTarget".
Returns
True if the state exists and its integer value is non-zero.

Definition at line 30 of file utility.hpp.

◆ PrimitiveStateTrueForGroups() [1/2]

bool flexiv::rdk::utility::PrimitiveStateTrueForGroups ( const std::map< JointGroup, PrimitiveStates > &  primitive_states,
const std::map< JointGroup, std::string > &  state_names 
)
inline

Check whether one primitive state is true for each group included in [primitive_states], using a per-group state name.

Parameters
[in]primitive_statesPrimitive states keyed by joint group.
[in]state_namesPrimitive state names keyed by joint group.
Returns
True if every included group has a matching state name entry and its integer value is non-zero.

Definition at line 66 of file utility.hpp.

◆ PrimitiveStateTrueForGroups() [2/2]

bool flexiv::rdk::utility::PrimitiveStateTrueForGroups ( const std::map< JointGroup, PrimitiveStates > &  primitive_states,
const std::string &  state_name 
)
inline

Check whether one primitive state is true for all groups included in [primitive_states].

Parameters
[in]primitive_statesPrimitive states keyed by joint group.
[in]state_namePrimitive state name to check, e.g. "reachedTarget".
Returns
True if all included groups contain the state and its integer value is non-zero.
Examples
basics3_primitive_execution.cpp, basics5_zero_force_torque_sensors.cpp, intermediate5_realtime_cartesian_pure_motion_control.cpp, and intermediate6_realtime_cartesian_motion_force_control.cpp.

Definition at line 51 of file utility.hpp.

◆ ProgramArgsExist()

bool flexiv::rdk::utility::ProgramArgsExist ( int  argc,
char **  argv,
const std::string &  ref_strings 
)
inline

Check if one specific string exists in the program arguments.

Parameters
[in]argcArgument count passed to main() of the program.
[in]argvArgument vector passed to main() of the program, with argv[0] being the program name.
[in]ref_stringsReference string to check against.
Returns
True if the program arguments contain this specific reference string.
Examples
intermediate1_realtime_joint_position_control.cpp, intermediate2_realtime_joint_impedance_control.cpp, intermediate3_realtime_joint_torque_control.cpp, intermediate5_realtime_cartesian_pure_motion_control.cpp, and intermediate6_realtime_cartesian_motion_force_control.cpp.

Definition at line 237 of file utility.hpp.

◆ ProgramArgsExistAny()

bool flexiv::rdk::utility::ProgramArgsExistAny ( int  argc,
char **  argv,
const std::vector< std::string > &  ref_strings 
)
inline

Check if any provided strings exist in the program arguments.

Parameters
[in]argcArgument count passed to main() of the program.
[in]argvArgument vector passed to main() of the program, where argv[0] is the program name.
[in]ref_stringsReference strings to check against.
Returns
True if the program arguments contain one or more reference strings.
Examples
basics1_display_robot_states.cpp, basics2_clear_fault.cpp, basics3_primitive_execution.cpp, basics4_plan_execution.cpp, basics5_zero_force_torque_sensors.cpp, basics6_gripper_control.cpp, basics7_update_robot_tool.cpp, basics8_global_variables.cpp, basics9_logging_behavior.cpp, intermediate1_realtime_joint_position_control.cpp, intermediate2_realtime_joint_impedance_control.cpp, intermediate3_realtime_joint_torque_control.cpp, intermediate4_realtime_joint_floating.cpp, intermediate5_realtime_cartesian_pure_motion_control.cpp, intermediate6_realtime_cartesian_motion_force_control.cpp, and intermediate7_robot_dynamics.cpp.

Definition at line 217 of file utility.hpp.

◆ Quat2EulerZYX()

std::array<double, 3> flexiv::rdk::utility::Quat2EulerZYX ( const std::array< double, 4 > &  quat)
inline

Convert quaternion to Euler angles with ZYX axis rotations.

Parameters
[in]quatQuaternion input in [w,x,y,z] order.
Returns
Euler angles in [x,y,z] order [rad].
Note
The return value, when converted to degrees, is the same Euler angles used by Move primitives.
Examples
basics3_primitive_execution.cpp.

Definition at line 85 of file utility.hpp.

◆ Vec2Str()

template<typename T >
std::string flexiv::rdk::utility::Vec2Str ( const std::vector< T > &  vec,
size_t  decimal = 3,
const std::string &  separator = " " 
)
inline

Convert an std::vector to a string.

Parameters
[in]vecstd::vector of any type and size.
[in]decimalDecimal places to keep for each floating-point number in the vector.
[in]separatorCharacter to separate between numbers.
Returns
The converted string.
Examples
intermediate1_realtime_joint_position_control.cpp, intermediate2_realtime_joint_impedance_control.cpp, intermediate3_realtime_joint_torque_control.cpp, intermediate5_realtime_cartesian_pure_motion_control.cpp, and intermediate7_robot_dynamics.cpp.

Definition at line 139 of file utility.hpp.