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

Convenience class that describes the default setup for UR5 (with robotiq gripper and load cell) Will first attempt to load configuration and description from the robowflex_resources package. See https://github.com/KavrakiLab/robowflex_resources for this package. If this package is not available, then ur_description / robotiq packages will be used. More...

#include <ur5.h>

+ Inheritance diagram for robowflex::UR5Robot:

Public Member Functions

 UR5Robot ()
 Constructor. More...
 
bool initialize ()
 Initialize the robot with manipulator kinematics. 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 DEFAULT_URDF {"package://ur_description/urdf/ur5_robotiq_robot_limited.urdf.xacro"}
 Default URDF. More...
 
static const std::string DEFAULT_SRDF {"package://ur5_robotiq85_moveit_config/config/ur5_robotiq85.srdf"}
 Default SRDF. More...
 
static const std::string DEFAULT_LIMITS {"package://ur5_robotiq85_moveit_config/config/joint_limits.yaml"}
 Default Limits. More...
 
static const std::string DEFAULT_KINEMATICS {"package://ur5_robotiq85_moveit_config/config/kinematics.yaml"}
 Default kinematics. More...
 
static const std::string RESOURCE_URDF {"package://robowflex_resources/ur/robots/ur5_robotiq_robot_limited.urdf.xacro"}
 URDF from robowflex_resources. More...
 
static const std::string RESOURCE_SRDF {"package://robowflex_resources/ur/config/ur5/ur5_robotiq85.srdf.xacro"}
 SRDF from robowflex_resources. More...
 
static const std::string RESOURCE_LIMITS {"package://robowflex_resources/ur/config/ur5/joint_limits.yaml"}
 Limits from robowflex_resources. More...
 
static const std::string RESOURCE_KINEMATICS {"package://robowflex_resources/ur/config/ur5/kinematics.yaml"}
 kinematics from robowflex_resources 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 UR5 (with robotiq gripper and load cell) Will first attempt to load configuration and description from the robowflex_resources package. See https://github.com/KavrakiLab/robowflex_resources for this package. If this package is not available, then ur_description / robotiq packages will be used.

Definition at line 26 of file ur5.h.

Constructor & Destructor Documentation

◆ UR5Robot()

UR5Robot::UR5Robot ( )

Constructor.

Definition at line 35 of file ur5.cpp.

35  : Robot("ur5")
36 {
37 }
Robot(const std::string &name)
Constructor.

Member Function Documentation

◆ initialize()

bool UR5Robot::initialize ( )

Initialize the robot with manipulator kinematics.

Returns
True on success, false on failure.

Definition at line 39 of file ur5.cpp.

40 {
41  bool success = false;
42 
43  // First attempt the `robowflex_resources` package, then attempt the "actual" resource files.
45  {
46  RBX_INFO("Initializing UR5 with `ur_description`");
48  }
49  else
50  {
51  RBX_INFO("Initializing UR5 with `robowflex_resources`");
53  }
54 
55  loadKinematics("manipulator");
56 
57  return success;
58 }
bool initialize(const std::string &urdf_file)
Initializes a robot from a kinematic description. A default semantic description is used.
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.
static const std::string RESOURCE_KINEMATICS
kinematics from robowflex_resources
Definition: ur5.h:47
static const std::string DEFAULT_SRDF
Default SRDF.
Definition: ur5.h:40
static const std::string DEFAULT_LIMITS
Default Limits.
Definition: ur5.h:41
static const std::string DEFAULT_URDF
Default URDF.
Definition: ur5.h:39
static const std::string RESOURCE_URDF
URDF from robowflex_resources.
Definition: ur5.h:44
static const std::string RESOURCE_LIMITS
Limits from robowflex_resources.
Definition: ur5.h:46
static const std::string RESOURCE_SRDF
SRDF from robowflex_resources.
Definition: ur5.h:45
static const std::string DEFAULT_KINEMATICS
Default kinematics.
Definition: ur5.h:42
#define RBX_INFO(fmt,...)
Output a info logging message.
Definition: log.h:118
std::string resolvePackage(const std::string &path)
Resolves package:// URLs to their canonical form. The path does not need to exist,...

Member Data Documentation

◆ DEFAULT_KINEMATICS

const std::string UR5Robot::DEFAULT_KINEMATICS {"package://ur5_robotiq85_moveit_config/config/kinematics.yaml"}
staticprivate

Default kinematics.

Definition at line 42 of file ur5.h.

◆ DEFAULT_LIMITS

const std::string UR5Robot::DEFAULT_LIMITS {"package://ur5_robotiq85_moveit_config/config/joint_limits.yaml"}
staticprivate

Default Limits.

Definition at line 41 of file ur5.h.

◆ DEFAULT_SRDF

const std::string UR5Robot::DEFAULT_SRDF {"package://ur5_robotiq85_moveit_config/config/ur5_robotiq85.srdf"}
staticprivate

Default SRDF.

Definition at line 40 of file ur5.h.

◆ DEFAULT_URDF

const std::string UR5Robot::DEFAULT_URDF {"package://ur_description/urdf/ur5_robotiq_robot_limited.urdf.xacro"}
staticprivate

Default URDF.

Definition at line 39 of file ur5.h.

◆ RESOURCE_KINEMATICS

const std::string UR5Robot::RESOURCE_KINEMATICS {"package://robowflex_resources/ur/config/ur5/kinematics.yaml"}
staticprivate

kinematics from robowflex_resources

Definition at line 47 of file ur5.h.

◆ RESOURCE_LIMITS

const std::string UR5Robot::RESOURCE_LIMITS {"package://robowflex_resources/ur/config/ur5/joint_limits.yaml"}
staticprivate

Limits from robowflex_resources.

Definition at line 46 of file ur5.h.

◆ RESOURCE_SRDF

const std::string UR5Robot::RESOURCE_SRDF {"package://robowflex_resources/ur/config/ur5/ur5_robotiq85.srdf.xacro"}
staticprivate

SRDF from robowflex_resources.

Definition at line 45 of file ur5.h.

◆ RESOURCE_URDF

const std::string UR5Robot::RESOURCE_URDF {"package://robowflex_resources/ur/robots/ur5_robotiq_robot_limited.urdf.xacro"}
staticprivate

URDF from robowflex_resources.

Definition at line 44 of file ur5.h.


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