Robowflex  v0.1
Making MoveIt Easy
robowflex::R2Robot Class Reference

Convenience class that describes the default setup for R2 (R2C6 full). More...

#include <r2.h>

+ Inheritance diagram for robowflex::R2Robot:

Public Member Functions

 R2Robot ()
 Constructor. More...
 
bool initialize (const std::vector< std::string > kinematics)
 Initialize the robot with a few kinematics groups. More...
 
robot_trajectory::RobotTrajectoryPtr loadSMTData (const std::string &filename)
 Loads telemetry data from SMT from an HDF5 file into a robot trajectory. More...
 
- Public Member Functions inherited from robowflex::Robot
 Robot (const std::string &name)
 Constructor. More...
 
 Robot (Robot const &)=delete
 
void operator= (Robot const &)=delete
 
bool initialize (const std::string &urdf_file)
 Initializes a robot from a kinematic description. A default semantic description is used. More...
 
bool initializeKinematics (const std::string &kinematics_file)
 Initialize a robot with a kinematics description. More...
 
bool initialize (const std::string &urdf_file, const std::string &srdf_file, const std::string &limits_file="", const std::string &kinematics_file="")
 Initializes a robot from a kinematic and semantic description. All files are loaded under the robot's namespace. More...
 
bool initializeFromYAML (const std::string &config_file)
 Initializes a robot from a YAML config which includes URDF (urdf) and optional the SRDF (srdf), joint limits (joint_limits), IK plugins (kinematics) and a default state (robot_state). All files are loaded under the robot's namespace. The names of the YAML keys are in parenthesis. More...
 
bool loadYAMLFile (const std::string &name, const std::string &file)
 Loads a YAML file into the robot's namespace under name. More...
 
bool loadYAMLFile (const std::string &name, const std::string &file, const PostProcessYAMLFunction &function)
 Loads a YAML file into the robot's namespace under name, with a post-process function. More...
 
std::string loadXMLFile (const std::string &file)
 Loads an XML or .xacro file into a string. More...
 
void setURDFPostProcessFunction (const PostProcessXMLFunction &function)
 Sets a post processing function for loading the URDF. More...
 
bool isLinkURDF (tinyxml2::XMLDocument &doc, const std::string &name)
 Checks if a node link exist with named name_link. More...
 
void setSRDFPostProcessFunction (const PostProcessXMLFunction &function)
 Sets a post processing function for loading the SRDF. More...
 
void setLimitsPostProcessFunction (const PostProcessYAMLFunction &function)
 Sets a post processing function for loading the joint limits file. More...
 
void setKinematicsPostProcessFunction (const PostProcessYAMLFunction &function)
 Sets a post processing function for loading the kinematics plugin file. More...
 
void setSRDFPostProcessAddPlanarJoint (const std::string &name)
 Adds a planar virtual joint through the SRDF to the loaded robot with name name. This joint will have three degrees of freedom: <name>/x, <name>/y, and <name>/theta. Will apply this joint between the world and the root frame. More...
 
void setSRDFPostProcessAddFloatingJoint (const std::string &name)
 Adds a planar virtual joint through the SRDF to the loaded robot with name name. This joint will have three degrees of freedom: <name>/x, <name>/y, and <name>/theta. Will apply this joint between the world and the root frame. More...
 
bool loadKinematics (const std::string &group, bool load_subgroups=true)
 Loads the kinematics plugin for a joint group and its subgroups. No kinematics are loaded by default. More...
 
const std::stringgetModelName () const
 Get the robot's model name. More...
 
const std::stringgetName () const
 Get the robot's name. More...
 
const robot_model::RobotModelPtr & getModelConst () const
 Get a const reference to the loaded robot model. More...
 
robot_model::RobotModelPtr & getModel ()
 Get a reference to the loaded robot model. More...
 
urdf::ModelInterfaceConstSharedPtr getURDF () const
 Get the raw URDF Model. More...
 
const std::stringgetURDFString () const
 Get the raw URDF Model as a string. More...
 
srdf::ModelConstSharedPtr getSRDF () const
 Get the raw SRDF Model. More...
 
const std::stringgetSRDFString () const
 Get the raw SRDF Model as a string. More...
 
const IO::HandlergetHandlerConst () const
 Get the underlying IO handler used for this robot. More...
 
IO::HandlergetHandler ()
 Get the underlying IO handler used for this robot. More...
 
const robot_model::RobotStatePtr & getScratchStateConst () const
 Get a const reference to the scratch robot state. More...
 
robot_model::RobotStatePtr & getScratchState ()
 Get a reference to the scratch robot state. More...
 
robot_model::RobotStatePtr cloneScratchState () const
 Allocate a new robot state that is a clone of the current scratch state. More...
 
robot_model::RobotStatePtr allocState () const
 Allocate a new robot state. More...
 
void setState (const std::vector< double > &positions)
 Sets the scratch state from a vector of joint positions (all must be specified) More...
 
void setState (const std::map< std::string, double > &variable_map)
 Sets the scratch state from a map of joint name to position. More...
 
void setState (const std::vector< std::string > &variable_names, const std::vector< double > &variable_position)
 Sets the scratch state from a vector of joint names and their positions. More...
 
void setState (const sensor_msgs::JointState &state)
 Sets the scratch state from a joint state message. More...
 
void setState (const moveit_msgs::RobotState &state)
 Sets the scratch state from a robot state message. More...
 
void setStateFromYAMLFile (const std::string &file)
 Sets the scratch state from a robot state message saved to a YAML file. More...
 
void setGroupState (const std::string &name, const std::vector< double > &positions)
 Sets the group of the scratch state to a vector of joint positions. More...
 
std::vector< double > getState () const
 Gets the current joint positions of the scratch state. More...
 
moveit_msgs::RobotState getStateMsg () const
 Get the current scratch state as a message. More...
 
void setStateMsgGroupState (moveit_msgs::RobotState &state, const std::string &group, const std::vector< double > &positions) const
 Set the group state of a MoveIt RobotState message. More...
 
std::vector< std::stringgetJointNames () const
 Gets the names of joints of the robot. More...
 
bool hasJoint (const std::string &joint) const
 Checks if a joint exists in the robot. More...
 
const RobotPosegetLinkTF (const std::string &name) const
 Get the current pose of a link on the scratch state. More...
 
const RobotPose getRelativeLinkTF (const std::string &base, const std::string &target) const
 Get the current pose of a link target in the frame of base. More...
 
bool setFromIK (const IKQuery &query)
 Sets a group of the scratch state from an IK query. If the IK query fails the scratch state retains its initial value. More...
 
bool setFromIK (const IKQuery &query, robot_state::RobotState &state) const
 Sets a robot state from an IK query. If the IK query fails the scratch state retains its initial value. More...
 
bool validateIKQuery (const IKQuery &query, const robot_state::RobotState &state) const
 Validates that a state satisfies an IK query's request poses. More...
 
double distanceToIKQuery (const IKQuery &query, const robot_state::RobotState &state) const
 Returns the distance of the state to satisfying the IK query. More...
 
std::vector< std::stringgetSolverTipFrames (const std::string &group) const
 Get the tip frames for the IK solver for a given joint model group group. More...
 
std::string getSolverBaseFrame (const std::string &group) const
 Get the base frame for the IK solver given a joint model group group. More...
 
bool toYAMLFile (const std::string &file) const
 Dumps the current configuration of the robot as a YAML file. More...
 
bool dumpGeometry (const std::string &file) const
 Dumps the names of links and absolute paths to their visual mesh files to a YAML file. More...
 
bool dumpTransforms (const std::string &filename) const
 Dumps the tranforms of all links of a robot at its current state to a file. More...
 
bool dumpPathTransforms (const robot_trajectory::RobotTrajectory &path, const std::string &filename, double fps=30, double threshold=0.0) const
 Dumps the tranforms of all links of a robot through a robot trajectory to a file. More...
 
bool dumpToScene (const std::string &filename) const
 Dumps the current scratch configuration of the robot to a YAML file compatible with a scene. More...
 

Static Private Attributes

static const std::string URDF
 Default URDF. More...
 
static const std::string SRDF
 Default SRDF. More...
 
static const std::string LIMITS
 Default Limits. More...
 
static const std::string KINEMATICS
 Default kinematics. More...
 
static const std::string CACHED
 IK Cache location. More...
 
static const std::vector< std::stringSAMPLERS
 Constraint samplers. More...
 
static const std::map< std::string, std::stringCREEPY
 Faster IK chains. More...
 

Additional Inherited Members

- Public Types inherited from robowflex::Robot
typedef std::function< bool(YAML::Node &)> PostProcessYAMLFunction
 A function that runs after loading a YAML file and can modify its contents. Returns true on success, false on failure. More...
 
typedef std::function< bool(tinyxml2::XMLDocument &)> PostProcessXMLFunction
 A function that runs after loading a XML file and can modify its contents. Returns true on success, false on failure. More...
 
- Static Public Attributes inherited from robowflex::Robot
static const std::string ROBOT_DESCRIPTION = "robot_description"
 Default robot description name. More...
 
static const std::string ROBOT_SEMANTIC = "_semantic"
 Default robot semantic description suffix. More...
 
static const std::string ROBOT_PLANNING = "_planning"
 Default robot planning description suffix. More...
 
static const std::string ROBOT_KINEMATICS = "_kinematics"
 Default robot kinematics description suffix. More...
 
- Protected Member Functions inherited from robowflex::Robot
bool loadURDFFile (const std::string &urdf_file)
 Loads the URDF file. More...
 
bool loadSRDFFile (const std::string &srdf_file)
 Loads the SRDF file. More...
 
void initializeInternal (bool namespaced=true)
 Initializes and loads the robot. Calls post-processing functions and creates scratch state. More...
 
void loadRobotModel (const std::string &description)
 Loads a robot model from the loaded information on the parameter server. More...
 
void updateXMLString (std::string &string, const PostProcessXMLFunction &function)
 Updates a loaded XML string based on an XML post-process function. Called after initial, unmodified robot is loaded. More...
 
- Protected Attributes inherited from robowflex::Robot
const std::string name_
 Robot name. More...
 
IO::Handler handler_
 IO handler (namespaced with name_) More...
 
std::string urdf_
 The URDF as a string. More...
 
std::string srdf_
 The SRDF as a string. More...
 
PostProcessXMLFunction urdf_function_
 URDF post-processing function. More...
 
PostProcessXMLFunction srdf_function_
 SRDF post-processing function. More...
 
PostProcessYAMLFunction limits_function_
 Limits YAML post-processing function. More...
 
PostProcessYAMLFunction kinematics_function_
 Kinematics plugin YAML post-processing function. More...
 
std::shared_ptr< robot_model_loader::RobotModelLoader > loader_
 Robot model loader. More...
 
robot_model::RobotModelPtr model_
 Loaded robot model. More...
 
std::map< std::string, robot_model::SolverAllocatorFnimap_
 Kinematic solver allocator map. More...
 
kinematics_plugin_loader::KinematicsPluginLoaderPtr kinematics_
 Kinematic plugin loader. More...
 
robot_state::RobotStatePtr scratch_
 Scratch robot state. More...
 

Detailed Description

Convenience class that describes the default setup for R2 (R2C6 full).

Definition at line 23 of file r2.h.

Constructor & Destructor Documentation

◆ R2Robot()

robowflex::R2Robot::R2Robot ( )

Constructor.

Member Function Documentation

◆ initialize()

bool robowflex::R2Robot::initialize ( const std::vector< std::string kinematics)

Initialize the robot with a few kinematics groups.

Parameters
[in]kinematicsList of kinematics solvers for planning groups to load.
Returns
True on success, false on failure.

◆ loadSMTData()

robot_trajectory::RobotTrajectoryPtr robowflex::R2Robot::loadSMTData ( const std::string filename)

Loads telemetry data from SMT from an HDF5 file into a robot trajectory.

Parameters
[in]filenameFilename to load.
Returns
A robot trajectory corresponding to the data.

Member Data Documentation

◆ CACHED

const std::string robowflex::R2Robot::CACHED
staticprivate

IK Cache location.

Definition at line 47 of file r2.h.

◆ CREEPY

const std::map<std::string, std::string> robowflex::R2Robot::CREEPY
staticprivate

Faster IK chains.

Definition at line 49 of file r2.h.

◆ KINEMATICS

const std::string robowflex::R2Robot::KINEMATICS
staticprivate

Default kinematics.

Definition at line 46 of file r2.h.

◆ LIMITS

const std::string robowflex::R2Robot::LIMITS
staticprivate

Default Limits.

Definition at line 45 of file r2.h.

◆ SAMPLERS

const std::vector<std::string> robowflex::R2Robot::SAMPLERS
staticprivate

Constraint samplers.

Definition at line 48 of file r2.h.

◆ SRDF

const std::string robowflex::R2Robot::SRDF
staticprivate

Default SRDF.

Definition at line 44 of file r2.h.

◆ URDF

const std::string robowflex::R2Robot::URDF
staticprivate

Default URDF.

Definition at line 43 of file r2.h.


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