MoveIt Pro Behavior Interface  5.0.1
Library for developing custom behaviors for use in MoveIt Pro
yaml_parsing_tools.hpp File Reference
#include <dynmsg/message_reading.hpp>
#include <dynmsg/msg_parser.hpp>
#include <dynmsg/typesupport.hpp>
#include <dynmsg/yaml_utils.hpp>
#include <Eigen/Dense>
#include <tl_expected/expected.hpp>
#include <string>
#include <std_msgs/msg/header.hpp>
#include <geometry_msgs/msg/pose.hpp>
#include <geometry_msgs/msg/pose_stamped.hpp>
#include <trajectory_msgs/msg/joint_trajectory.hpp>
#include <moveit_studio_sdk_msgs/msg/behavior_parameter.hpp>
#include <moveit_studio_vision_msgs/msg/object_subframe.hpp>
#include <yaml-cpp/yaml.h>
Include dependency graph for yaml_parsing_tools.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  YAML::convert< Eigen::Isometry3d >
 Macro to add YAML support for a given ROS message. More...
 
struct  YAML::convert< std::vector< std::string > >
 Decodes top level of structured YAML into a vector of strings. More...
 
struct  YAML::convert< BehaviorParameterList >
 Decodes structured YAML into a vector of BehaviorParameter ROS messages. More...
 

Namespaces

 moveit_studio
 
 moveit_studio::behaviors
 
 YAML
 

Macros

#define ROS_MESSAGE_YAML_PARSER(package, message)
 

Typedefs

using YAML::BehaviorParameterList = std::vector< moveit_studio_sdk_msgs::msg::BehaviorParameter >
 

Functions

template<class T >
void moveit_studio::behaviors::parseROSMessage (const YAML::Node &node, const InterfaceTypeName &interface_type, T &rhs)
 Templated function to parse any ROS message from a YAML Node. More...
 
template<typename T >
void moveit_studio::behaviors::saveROSMessage (YAML::Node &node, const InterfaceTypeName &interface_type, T msg)
 Templated function to save any ROS message to a YAML Node. More...
 
template<typename T >
tl::expected< T, std::string > moveit_studio::behaviors::parseParameter (const YAML::Node &yaml, const std::string &parameter_name)
 Helper function for parsing a parameter from a YAML::Node. More...
 

Macro Definition Documentation

◆ ROS_MESSAGE_YAML_PARSER

#define ROS_MESSAGE_YAML_PARSER (   package,
  message 
)
Value:
namespace YAML \
{ \
template <> \
struct convert<package::msg::message> \
{ \
static bool decode(const Node& node, package::msg::message& rhs) \
{ \
if (!node.IsMap()) \
{ \
return false; \
} \
moveit_studio::behaviors::parseROSMessage(node, InterfaceTypeName{ #package, #message }, rhs); \
return true; \
} \
static Node encode(const package::msg::message& rhs) \
{ \
YAML::Node node; \
moveit_studio::behaviors::saveROSMessage(node, InterfaceTypeName{ #package, #message }, rhs); \
return node; \
} \
}; \
}
Definition: yaml_parsing_tools.hpp:95
void parseROSMessage(const YAML::Node &node, const InterfaceTypeName &interface_type, T &rhs)
Templated function to parse any ROS message from a YAML Node.
Definition: yaml_parsing_tools.hpp:36
void saveROSMessage(YAML::Node &node, const InterfaceTypeName &interface_type, T msg)
Templated function to save any ROS message to a YAML Node.
Definition: yaml_parsing_tools.hpp:53