13 ompl::base::ConstraintPtr YAMLToPointConstraint(
const RobotPtr &robot,
const YAML::Node &node)
28 return std::make_shared<plan::PointConstraint>(node[
"name"].as<
std::string>(), robot,
29 node[
"ee"].as<std::string>(), base,
33 ompl::base::ConstraintPtr YAMLToLineConstraint(
const RobotPtr &robot,
const YAML::Node &node)
51 auto constraint = std::make_shared<plan::LineConstraint>(
52 node[
"name"].as<
std::string>(), robot, node[
"ee"].as<std::string>(), base,
61 ompl::base::ConstraintPtr YAMLToCircleConstraint(
const RobotPtr &robot,
const YAML::Node &node)
77 exp = node[
"exp"].as<
unsigned int>();
81 base = node[
"base"].as<std::string>();
83 auto constraint = std::make_shared<plan::CircleConstraint>(
84 node[
"name"].as<
std::string>(), robot, node[
"ee"].as<std::string>(), base,
96 const YAML::Node &node)
109 map.
emplace(name, YAMLToLineConstraint(robot, node));
111 else if (type ==
"point")
112 map.
emplace(name, YAMLToPointConstraint(robot, node));
114 else if (type ==
"circle")
115 map.
emplace(name, YAMLToCircleConstraint(robot, node));
122 const YAML::Node &node)
127 if (!node[
"constraints"].IsSequence())
130 for (
const auto &constraint : node[
"constraints"])
131 YAMLToConstraint(robot, map, constraint);
145 YAMLToConstraints(robot, map, result.second);
154 SE2EZ_ERROR(
"Failed to load file \"%1%\"", filename);
Eigen::VectorXd toVector(const YAML::Node &node)
Convert a sequence of doubles in YAML to an Eigen vector.
void throwParsingError(const YAML::Node &node, const std::string &fmt, Args &&... args)
Convenience function to print out a YAML error message with line and column information.
const std::pair< bool, YAML::Node > loadFileToYAML(const std::string &path)
Loads a file to a YAML node.
std::map< std::string, ompl::base::ConstraintPtr > loadConstraints(const RobotPtr &robot, const std::string &filename)
A shared pointer wrapper for se2ez::Robot.
#define SE2EZ_ERROR(fmt,...)
bool isNode(const YAML::Node &node)
Returns true if node is a valid YAML node.
const std::string resolvePath(const std::string &path)
Resolves file paths to their canonical form.