5 #include <ompl/geometric/SimpleSetup.h> 6 #include <ompl/geometric/planners/rrt/RRTConnect.h> 11 using namespace se2ez;
16 std::make_shared<Geometry>(
Geometry::BOX, Eigen::Vector2d{0.2, 0.2}, Eigen::Vector3d{0, 0, 0})
20 std::make_shared<Geometry>(
Geometry::BOX, Eigen::Vector2d{0.2, 0.2}, Eigen::Vector3d{0, 0, 0}),
24 std::make_shared<Geometry>(
Geometry::BOX, Eigen::Vector2d{0.5, 1.5}, Eigen::Vector3d{0, 0.5, 0}),
27 auto f_1 = std::make_shared<Frame>(
"l1",
28 Eigen::Vector3d{0, 0, 0},
30 Eigen::Vector2d{-2, -2},
31 Eigen::Vector2d{2, 2},
34 auto f_2 = std::make_shared<Frame>(
"l2",
35 Eigen::Vector3d{0, 0, 0},
37 Eigen::Vector2d{-2, -2},
38 Eigen::Vector2d{2, 2},
41 auto f_b = std::make_shared<Frame>(
"box",
42 Eigen::Vector3d{0, 0, 0},
45 auto robot = std::make_shared<Robot>();
46 robot->attachFrame(f_1);
47 robot->attachFrame(f_2);
48 robot->attachFrame(f_b);
53 planner.
setPlanner<ompl::geometric::RRTConnect>();
54 planner.
setStartGoal(
math::toVector({-1.5, 0, 0, 1.5, 0, 0}),
math::toVector({1.5, 0, 0, -1.5, 0, 0}));
56 ompl::base::PlannerStatus solved = planner.
setup->solve(1.0);
64 planner.
setup->simplifySolution();
ompl::geometric::SimpleSetupPtr setup
virtual void initialize()
Floating joint, free movement in SE(2). Continuous rotation, uses SE(2) metric.
std::shared_ptr< T > setPlanner(Args &&... args)
Eigen::VectorXd toVector(double x)
Converts a single double value into a 1 x 1 matrix.
bool setStartGoal(const std::string &start, const std::string &goal)